| 1 | assert_fact | Use parent/2, sibling/2, lives_in/2, inside/2, in_region/2, carries/2, ancestor/2 for this run. |
| 2 | assert_fact | Set parent(ian, scott). Set parent(scott, dana). |
| 3 | assert_fact | assert rule ancestor(X, Y) :- parent(X, Y). |
| 4 | assert_fact | assert rule ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z). |
| 5 | assert_fact | assert rule in_region(X, Z) :- lives_in(X, Y), inside(Y, Z). |
| 6 | assert_fact | {'utterance': "ian's granddaughter is dana and they live in salem; and salem is in oregon", 'clarification_answers': ['They means Ian and Dana.', 'Set lives_in(ian, salem). Set lives_in(dana, salem). Set inside(salem, oregon).'], 'max_clarification_rounds': 2} |
| 7 | assert_fact | Set lives_in(dana, salem). |
| 8 | assert_fact | Set inside(salem, oregon). |
| 9 | assert_fact | query ancestor(ian, dana). |
| 10 | retract | {'utterance': 'scott has a brother blake and he carries brass_key but then give that key to dana', 'clarification_answers': ['He means Blake.', 'Set sibling(scott, blake). Set carries(blake, brass_key). Retract carries(blake, brass_key). Set carries(dana, brass_key).'], 'max_clarification_rounds': 2} |
| 11 | assert_fact | Set carries(blake, brass_key). |
| 12 | retract | retract fact carries(blake, brass_key). |
| 13 | assert_fact | Set carries(dana, brass_key). |
| 14 | assert_fact | query in_region(dana, oregon). |
| 15 | assert_fact | query carries(dana, brass_key). |