def testAncestor(self):
   v, a = self.v, self.a
   self.loadFamilyTree1()
   ancestor = RuleBasedPredicate('ancestor', (FamilyMember, FamilyMember))
   self.kb.add(ancestor)
   positive_tuples = [[a.jane, a.ann],
                               [a.tim, a.tom],
                               [a.tipsy, a.billy],
                               [a.jannet, a.billy],
                               [a.joan, a.jane],
                               [a.rebecca, a.ann],
                               [a.frank, a.jane],
                               [a.jan, a.ann],
                               [a.jill, a.ann]]
   negative_tuples = [[a.tim, a.ann],
                               [a.ann, a.billy],
                               [a.jane, a.frank],
                               [a.tom, a.debrah],
                               [a.tim, a.tammy],
                               [a.tom, a.george],
                               [a.jane, a.joan]]
   foil(ancestor, positive_tuples, negative_tuples, self.kb, ordering=None)
   self.assertFollows(ancestor(a.bob, a.jane))
   self.assertNotFollows(ancestor(a.bob, a.ian))
   self.kb.remove(ancestor)
   self.print_rules(ancestor)
 def testAncestor(self):
   v, a = self.v, self.a
   self.loadFamilyTree1()
   ancestor = RuleBasedPredicate('ancestor', (FamilyMember, FamilyMember))
   self.kb.add(ancestor)
   positive_tuples = [[a.jane, a.ann],
                               [a.tim, a.tom],
                               [a.tipsy, a.billy],
                               [a.jannet, a.billy],
                               [a.joan, a.jane],
                               [a.rebecca, a.ann],
                               [a.frank, a.jane],
                               [a.jan, a.ann],
                               [a.jill, a.ann]]
   negative_tuples = [[a.tim, a.ann],
                               [a.ann, a.billy],
                               [a.jane, a.frank],
                               [a.tom, a.debrah],
                               [a.tim, a.tammy],
                               [a.tom, a.george],
                               [a.jane, a.joan]]
   foil(ancestor, positive_tuples, negative_tuples, self.kb, ordering=None)
   self.assertFollows(ancestor(a.bob, a.jane))
   self.assertNotFollows(ancestor(a.bob, a.ian))
   self.kb.remove(ancestor)
   self.print_rules(ancestor)
Example #3
0
 def testMemberPredicate(self):
     print ""
     v, a = VariableFactory(), AtomFactory()
     kb = KnowledgeBase()
     kb.add(components)
     member = RuleBasedPredicate("member", (Term, dot))
     kb.add(member)
     positive_tuples = ((1, plist([1, 2, 3, 4])), (4, plist([1, 2, 3, 4])),
                        (5, plist([5, 4, 3, 2])), (2, plist([1, 2, 3, 4])),
                        (3, plist([1, 2, 3, 4])))
     negative_tuples = ((1, plist([2, 3, 4, 5])), (2, plist([1, 3, 4, 5])),
                        (3, plist([1, 2, 4, 5])), (4, plist([1, 2, 3, 5])),
                        (5, plist([1, 2, 3,
                                   4])), (plist([1, 2]), plist([1, 2, 3,
                                                                4])))
     foil(member, positive_tuples, negative_tuples, kb, ordering=None)
     self.assertFollows(member(11, plist([2, 3, 5, 7, 11, 13])))
     self.assertNotFollows(member(12, plist([2, 3, 5, 7, 11, 13])))
     self.print_rules(member)
 def testGrandparent(self):
   import sys
   v, a = self.v, self.a
   self.loadFamilyTree1()
   grandfather = RuleBasedPredicate('grandfather', (FamilyMember, FamilyMember))
   grandfather.arity = 2
   self.kb.add(grandfather)
   positive_tuples = [[a.frank, a.sean],
                               [a.tom, a.billy],
                               [a.george, a.jan],
                               [a.bob, a.jane],
                               [a.sean, a.ann],
                               [a.frank, a.sean]]
   negative_tuples = [[a.jannet, a.tim], 
                               [a.jane, a.alan],
                               [a.rebecca, a.sean],
                               [a.jan, a.ann]]
   foil(grandfather, positive_tuples, negative_tuples, self.kb, ordering=None)
   self.assertFollows(grandfather(a.george, a.tom))
   self.assertFollows(grandfather(a.alan, a.jane))
   self.assertNotFollows(grandfather(a.tipsy, a.billy))
   self.assertNotFollows(grandfather(a.bob, a.ian))
   self.kb.remove(grandfather)
   self.print_rules(grandfather)
Example #5
0
 def testGrandparent(self):
     import sys
     v, a = self.v, self.a
     self.loadFamilyTree1()
     grandfather = RuleBasedPredicate('grandfather',
                                      (FamilyMember, FamilyMember))
     grandfather.arity = 2
     self.kb.add(grandfather)
     positive_tuples = [[a.frank, a.sean], [a.tom, a.billy],
                        [a.george, a.jan], [a.bob, a.jane], [a.sean, a.ann],
                        [a.frank, a.sean]]
     negative_tuples = [[a.jannet, a.tim], [a.jane, a.alan],
                        [a.rebecca, a.sean], [a.jan, a.ann]]
     foil(grandfather,
          positive_tuples,
          negative_tuples,
          self.kb,
          ordering=None)
     self.assertFollows(grandfather(a.george, a.tom))
     self.assertFollows(grandfather(a.alan, a.jane))
     self.assertNotFollows(grandfather(a.tipsy, a.billy))
     self.assertNotFollows(grandfather(a.bob, a.ian))
     self.kb.remove(grandfather)
     self.print_rules(grandfather)