Warning: session_start(): open(/var/lib/php/sessions/sess_slfmcrnp9c9aufnggq5nmv0bhl, 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 data = [[
-- rule 1
who is x y [input]
+ x y is a trader [statement]
=> a trader
-- test input
john doe is a guy
who is john doe?
-- expected output
a guy
]];
static new L> rules; // text, comment, ID
static new L fulfillments;
p-exp {
TreeMap sections = minusSignSectionsCI(data);
for (S ruleID, ruleText : keysStartingWith(sections, "rule")) {
new LS comments;
LS lines = tlft(ruleText);
for i over lines: {
S s = lines.get(i);
PairS p = splitTrailingSquareBracketStuff(s);
if (nempty(p.b))
comments.add("in " + (i+1) + " = " + p.b);
lines.set(i, p.a);
}
rules.add(t3(lines(lines), lines(comments), ruleID));
}
dm_gazelle_wireStatementConditions();
pnlStruct(rules);
for (S input : tlft(sections.get("test input"))) {
gazelle_gatherFulfillments(ll(nu GazelleLine(text := input)), fulfillments, debug := true);
//GazelleEvalContext ctx = gazelle_stdEvalContext(rules);
pnl(dm_gazelle_reasonAboutChatInput(null, input));
}
}
static L> dm_allRulesFromRulesModuleWithCommentsAndIDs() {
ret rules;
}
svoid dm_gazelle_setRuleComments_verbose(S ruleID, S comments) {
set(objectWhere(rules, c := ruleID), b := comments);
}
static PairS dm_textAndCommentForRule(S ruleID) {
T3 t = objectWhere(rules, c := ruleID);
ret t == null ? null : pair(t.a, t.b);
}
static Pair dm_gazelle_addRuleWithComment(S text, S comment) {
T3 t = objectWhere(rules, a := text, b := comment);
if (t != null) ret pair(t.c, false);
S id = aGlobalID();
rules.add(t3(text, comment, id));
ret pair(id, true);
}
static L dm_gazelle_fulfillmentsForRule(S ruleID) {
ret objectsWhere(fulfillments, rule := ruleID);
}
static GazelleEvalContext dm_gazelle_stdEvalContext() {
ret dm_gazelle_stdEvalContext(dm_allRulesFromRulesModuleWithCommentsAndIDs());
}
static GazelleEvalContext dm_gazelle_stdEvalContext(L> rules) {
ret gazelle_stdEvalContext(rules);
}