def backward_chaining(kb, query): all_variables = find_variables_symbol(query) query, var_map = standardize_variables(query) result = __backward_chaining_or(kb, query, {}) if result is not problem.FAILURE: propagate_substitutions(result) query_vars = {var: result[var_map[var]] for var in all_variables} return query_vars return result
def __parser(sentence): return parse_cnf(standardize_variables(sentence)[0])
def assert_standardize(self, expression, expected): standart, var_map = logic.standardize_variables(expression, use_global=False) self.assertEqual(standart, expected)