def test_collect_symbols(self): expression = "(A AND NOT B) => B <=> NOT C OR D => E" parser = PLParser() root_term = parser.parse(expression) sc = SymbolsCollector() sc.collect_symbols(root_term) result_symbols = sc.symbols expected_symbols = ["A", "B", "C", "D", "E"] self.assertSameElements(expected_symbols, result_symbols)
def test_collect_symbols(self): expression = "(A AND NOT B) => B <=> NOT C OR D => E" parser = PLParser() root_term = parser.parse(expression) sc = SymbolsCollector() sc.collect_symbols(root_term) result_symbols = sc.symbols expected_symbols = ["A", "B", "C", "D", "E"] self.assertSameElements(expected_symbols, result_symbols)
def tt_entails(self, knowledge_base, alpha): kb_sentence = knowledge_base.as_sentence() query_sentence = PLParser().parse(alpha) collector = SymbolsCollector() kb_symbols = collector.collect_symbols(kb_sentence) query_symbols = collector.collect_symbols(query_sentence) # symbols <- a list of proposition symbols in KB and alpha symbols_list = list(kb_symbols.union(query_symbols)) # return TT-Check-All(KB, alpha, symbols, []) return self.tt_check_all(kb_sentence, query_sentence, symbols_list, Model())
def tt_entails(self, knowledge_base, alpha): kb_sentence = knowledge_base.as_sentence() query_sentence = PLParser().parse(alpha) collector = SymbolsCollector() kb_symbols = collector.collect_symbols(kb_sentence) query_symbols = collector.collect_symbols(query_sentence) # symbols <- a list of proposition symbols in KB and alpha symbols_list = list(kb_symbols.union(query_symbols)) # return TT-Check-All(KB, alpha, symbols, []) return self.tt_check_all(kb_sentence, query_sentence, symbols_list, Model())
def __init__(self, root_term): self.head = None self.premise_symbols = None if root_term.type == TokenTypes.IDENTIFIER: self.head = root_term self.premise_symbols = [] elif root_term.type != TokenTypes.IMPLICATION: raise ValueError("Sentence " + str(root_term) + " isn't a horn clause") else: self.head = root_term.children[1] collector = SymbolsCollector() premise_expression = root_term.children[0] self.premise_symbols = [SymbolTerm(name) for name in collector.collect_symbols(premise_expression)]
def __init__(self, root_term): self.head = None self.premise_symbols = None if root_term.type == TokenTypes.IDENTIFIER: self.head = root_term self.premise_symbols = [] elif root_term.type != TokenTypes.IMPLICATION: raise ValueError("Sentence " + str(root_term) + " isn't a horn clause") else: self.head = root_term.children[1] collector = SymbolsCollector() premise_expression = root_term.children[0] self.premise_symbols = [ SymbolTerm(name) for name in collector.collect_symbols(premise_expression) ]