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