import fol if __name__ == '__main__': kb = fol.kb.Kb() try: if False: kb.tell('Est(ALICE, X0, S0)') kb.tell('Proche(X0, X1)') kb.tell('Proche(X1, X2)') kb.tell('Proche(X2, X3)') kb.tell('Proche(X3, X4)') kb.tell('(Est(ALICE, x, s) & Proche(x, y)) -> Poss(go(x, y), s)') kb.tell('Poss(go(x, y), s) -> Est(ALICE, y, do(go(x, y), s))') answer = kb.ask('Est(ALICE, x, y)') print(answer) else: kb.tell('Friend(ALICE, BOB)') kb.tell('Friend(BOB, CLAIRE)') kb.tell('Friend(x, y) -> Friend(y, x)') kb.tell('(Friend(x, y) & Friend(y, z)) -> Friend(x, z)') answer = kb.ask('Friend(ALICE, x)') print(answer) # print('--------------------------------') # [print(b) for b in kb.base] except KeyboardInterrupt: pass