Warning: session_start(): open(/var/lib/php/sessions/sess_tdgo0fkrd8r1ckvpacjgnsb8t6, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
sS rule = [[
input(I'm a $scammer!)
&& fact(a $scammer $scams_people)
&& relationX($scams_people, $scam_people)
=> output(You $scam_people?!)
]];
sS input = "I'm a driver";
sS expectedOutput = "You drive cars?!";
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)));
if (l(l) != 2) false;
l = mapReplaceVars2(l, m.matches);
printStruct(l);
if (isDollarVar(second(l)) && !isDollarVar(first(l)))
ret strictPutIC(m.matches, second(l), ai_verbPhraseFromThirdPerson(first(l)));
ret eqic(second(l), first(l));
}
}
ret super.checkExpression(e, m);
}
};
c.matcher = new NLStringMatcher_dollarVars_underscores;
c.input = input;
c.facts = ll("A driver drives cars");
applyNLLogicFacts_v2_verbose.set(true);
applyNLLogicFacts_v2(c, vf_print(),
ll(pair(aGlobalID(), nlLogic_parseRule(rule))));
assertEqualsVerbose(ll(expectedOutput), c.posted);
}