2024-04-28 16:23:47 +00:00
|
|
|
import fol
|
|
|
|
|
2024-04-24 08:56:13 +00:00
|
|
|
if __name__ == '__main__':
|
2024-04-28 16:23:47 +00:00
|
|
|
kb = fol.kb.Kb()
|
|
|
|
try:
|
2024-04-28 22:43:24 +00:00
|
|
|
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]
|
2024-04-28 16:23:47 +00:00
|
|
|
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
pass
|