| 1 | assert_fact | Use parent/2, ancestor/2, lives_in/2, inside/2, in_region/2, carries/2. |
| 2 | assert_fact | Set parent(ivy, nora). Set parent(nora, owen). Set parent(nora, pia). |
| 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 | retract | {'utterance': 'the kids are at queensbridge + harbor_point, both in metro_zone, then the older one moved to rivergate', 'clarification_answers': ['Kids means Owen and Pia. Older one means Owen.', 'Set lives_in(owen, queensbridge). Set lives_in(pia, harbor_point). Set inside(queensbridge, metro_zone). Set inside(harbor_point, metro_zone). Retract lives_in(owen, queensbridge). Set lives_in(owen, rivergate). Set inside(rivergate, metro_zone).'], 'max_clarification_rounds': 2} |
| 7 | assert_fact | Set lives_in(owen, rivergate). |
| 8 | assert_fact | Set lives_in(pia, harbor_point). |
| 9 | assert_fact | Set inside(rivergate, metro_zone). |
| 10 | assert_fact | Set inside(harbor_point, metro_zone). |
| 11 | retract | {'utterance': 'she handed amber_badge to him and cobalt_badge to her, no wait keep cobalt_badge with nora', 'clarification_answers': ['She means Nora, him means Owen, and her means Pia.', 'Set carries(owen, amber_badge). Set carries(pia, cobalt_badge). Retract carries(pia, cobalt_badge). Set carries(nora, cobalt_badge).'], 'max_clarification_rounds': 2} |
| 12 | assert_fact | Set carries(owen, amber_badge). |
| 13 | assert_fact | Set carries(nora, cobalt_badge). |
| 14 | assert_fact | query ancestor(ivy, owen). |
| 15 | assert_fact | query in_region(owen, metro_zone). |
| 16 | assert_fact | query carries(nora, cobalt_badge). |