!7 sS rule = [[ input(I'm a $scammer!) && fact(a $scammer $scams_people) && relationX($scams_people, $scam_people) => output(You $scam_people?!) ]]; p-exp { NLLogicChecker_v2 c = new NLLogicChecker_v2 { bool checkExpression(Exp e, Matching m) { if (e cast Func) { if (eq(e.name, "relationX")) { printStruct("Checking: " + e + " with " + sfu(m.matches)); L l = tok_splitAtComma(javaTokWithBrackets(nlLogic_text(e.arg))); printStruct(l); if (l(l) != 2) false; // TODO } } ret super.checkExpression(e, m); } }; c.matcher = new NLStringMatcher_dollarVars_underscores; c.input = "I'm a driver"; c.facts = ll("A driver drives cars"); applyNLLogicFacts_v2_verbose.set(true); applyNLLogicFacts_v2(c, vf_print(), ll(pair(aGlobalID(), nlLogic_parseRule(rule)))); }