def queryExist()

in data/question-gen/engine.py [0:0]


    def queryExist(self, ent):
        qns = []
        for i in ent['elements']:
            if len(i.rooms[0].name) > 1:
                if self.debug == True:
                    print('exception in queryExist. room has multiple names.',
                          i.rooms[0].name)
                continue
            elif i.rooms[0].name == []:
                if self.debug == True:
                    print('exception in queryExist. room has no name.', i.name,
                          i.rooms[0].name)
                continue

            qns.append(
                self.q_obj_builder(
                    'exist', [i], 'yes', q_type='exist_positive'))

            # generate list of object names in i.rooms[0].name in current env
            obj_present = [
                x.name for x in ent['elements']
                if len(x.rooms[0].name) != 0
                and x.rooms[0].name[0] == i.rooms[0].name[0]
            ]
            if i.rooms[0].name[0] not in self.negative_exists:
                self.negative_exists[i.rooms[0].name[0]] = []

            # generate list of object names for i.rooms[0].name not in i.rooms[0].name in current env
            obj_not_present = [
                x for x in self.global_obj_by_room[i.rooms[0].name[0]]
                if x[0] not in obj_present
                and x[0] not in self.negative_exists[i.rooms[0].name[0]]
            ]

            # create object entity and generate a no question
            if len(obj_not_present) == 0:
                continue

            self.negative_exists[i.rooms[0].name[0]].append(
                obj_not_present[0][0])
            sampled_obj = objectEntity(obj_not_present[0][0], {}, {})
            sampled_obj.addRoom(i.rooms[0])
            qns.append(
                self.q_obj_builder(
                    'exist', [sampled_obj], 'no', q_type='exist_negative'))

        return qns