def ask(self, query, mores=True): """Ask returns a substitution that makes the query true, or it returns False. It is implemented in trems of ask_generator.""" key = self.make_key(query) gvars = self.get_variables(query) iterator = self.wm[key].__iter__() try: unifier = Unify() printer = Printer() r = unifier.unify(iterator.next(), query, {}) while True: if r: for x in gvars: print x.name + ": " + str(printer.deref(x, r)) # print r if printer.query_yes_no("more solutions?", "no") == "no": return True r = unifier.unify(iterator.next(), query, {}) except StopIteration: return False