Generated 2026-04-13 00:48:05 UTC | Back to ladder index | Back to docs
Status: passed
Validation: 9/9 passed
Parser failures: 0 | Apply failures: 0
Artifacts: raw run json | rendered run transcript
| # | Expected Route | Utterance |
|---|---|---|
| 1 | assert_fact | Tara is Owen's parent. |
| 2 | assert_fact | {'utterance': "he's probly parnt of uma too, same owen, sorry it's noisy", 'clarification_answers': ['He means Owen. Owen is a parent of Uma.'], 'max_clarification_rounds': 2} |
| 3 | assert_fact | Vera is parented by Uma. |
| 4 | assert_fact | before rules, is tara ancestor of vera maybe |
| 5 | assert_rule | If X is a parent of Y then X is an ancestor of Y. |
| 6 | assert_rule | And if X is an ancestor of Y and Y is an ancestor of Z then X is an ancestor of Z. |
| 7 | assert_fact | ok now is tara ancestor of vera |
| 8 | retract | {'utterance': 'nah swap that middle branch, drop owen->uma only, not tara->owen', 'clarification_answers': ['Retract parent(owen, uma).', 'Yes, remove only parent(owen, uma).'], 'max_clarification_rounds': 2} |
| 9 | assert_fact | Owen is Pru's parent. |
| 10 | assert_fact | Uma has Pru as a parent. |
| 11 | assert_fact | Wes is parented by Uma. |
| 12 | assert_fact | after the swap is tara ancestor of wes now |
| 13 | assert_fact | and tara still ancestor of vera too right |
| ID | Query | Expect | Min Rows | Max Rows |
|---|---|---|---|---|
| tara_owen_parent | parent(tara, owen). | success | 1 | |
| owen_uma_removed | parent(owen, uma). | no_results | 0 | |
| owen_pru_parent | parent(owen, pru). | success | 1 | |
| pru_uma_parent | parent(pru, uma). | success | 1 | |
| uma_vera_parent | parent(uma, vera). | success | 1 | |
| uma_wes_parent | parent(uma, wes). | success | 1 | |
| tara_wes_ancestor | ancestor(tara, wes). | success | 1 | |
| tara_vera_ancestor | ancestor(tara, vera). | success | 1 | |
| he_uma_absent | parent(he, uma). | no_results | 0 |