42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import fol
|
|
|
|
if __name__ == '__main__':
|
|
kb = fol.kb.Kb()
|
|
try:
|
|
if True:
|
|
kb.tell('Est(ALICE, L0, S0)')
|
|
kb.tell('Proche(L0, L1)')
|
|
kb.tell('Proche(L1, L2)')
|
|
kb.tell('Proche(L2, L3)')
|
|
kb.tell('Proche(L3, L4)')
|
|
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)
|
|
|
|
if False:
|
|
print(f'{len(kb.base)}----------------')
|
|
[print(r) for r in kb.base]
|
|
print(f'{len(kb.base)}----------------')
|
|
print(answer)
|
|
|
|
if False:
|
|
for k, v in kb.indexes.items():
|
|
print('--------', k, '--------')
|
|
[print(p) for p in v]
|
|
|
|
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
|