Warning: session_start(): open(/var/lib/php/sessions/sess_cs8322k7o185r11obb7qihb9tc, 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
set flag DynModule.
cmodule ListeningComprehension > DynModule {
S processedInput, text;
transient ReliableSingleThread rstCalc = dm_rstWithPostDelay(this, r calc, 500);
transient int maxResults = 500;
transient bool skipBadPredictions = true;
transient JTree jTree;
transient GazelleTree root;
transient double qualityCutOff = -0.75;
transient JLabel lblInfo;
S switchableFields() { ret "skipBadPredictions maxResults"; }
enhanceFrame { internalFrameIcon(f, gazelle_frameIcon()); }
start {
hotwire_addSharedClasses(RuleEngine2, GazelleTree, GazelleEvalContext);
dm_vmBus_onMessage('gazelleRulesChanged, rstCalc);
}
visualize {
jTree = jDynamicTree(null, func(GazelleTree tree) -> L {
dm_gazelle_getChildren(tree, +qualityCutOff, dialogHistory := tlft(text))
}, makeChildrenIsFast := true);
onTreeSelectionChanged(jTree, r updateInfo);
treePopupMenu(jTree, voidfunc(JPopupMenu menu, final GazelleTree e) {
addMenuItem(menu, "Copy line", rThread { copyTextToClipboard(e.line) });
addMenuItem(menu, "Make rule...", rThread {
S s = e.line;
GazelleTree ee = e;
while ((ee = ee.parent) != null)
s = ee.line + "\n+ " + s;
dm_gazelle_newRuleDialog_3(s, "in = dialog");
});
addMenuItem(menu, "Enter", rThread {
LS history = e.history();
/*if (oddLength(history))
setField(input := popLast(history));*/
setField(text := lines(history));
});
});
ret jvsplit(0.25,
withMargin(withTitle("Input Text", onChange(dm_textArea('text), rstCalc))),
northCenterAndSouthWithMargins(
rightAlignedButtons(
"Make rule...", rThread { dm_gazelle_newRuleDialog_2(firstLine(text)) }),
jscroll(jTree),
vstackWithSpacing(
rightAlignedButtons(
treeDependentButton(jTree, "Mark good", rMark('good)),
treeDependentButton(jTree, "Mark bad", rMark('bad)),
treeDependentButton(jTree, "Mark funny", rMark('funny)),
jPopDownButton_noText(
"Export Rule Engine", rThread exportEngine)
),
lblInfo = jlabel()
)));
}
Runnable rMark(fS judgement) {
ret rThread {
GazelleTree e = selected();
e.judgement = judgement;
jTree_fireUserObjectChanged(jTree, e);
saveEntry(e);
};
}
GazelleTree selected() {
ret (GazelleTree) jtree_selectedUserObject(jTree);
}
void calc {
root = new GazelleTree(joinLinesWithBarOrPunctuation(text));
jTree_setRootObject(jTree, root);
jtree_collapseAndOpenRootNode(jTree);
processedInput = text;
}
void saveEntry(GazelleTree e) {
S modifiedRule = e.ctx.engine.formatForUser(e.mr.applyMapping().asText());
dm_gazelle_saveAppliedRule(
+modifiedRule,
judgement := e.judgement,
matchedRuleStruct := struct(e.mr));
}
void updateInfo enter {
S s = " ";
GazelleTree e = selected();
if (e != null && e.mr != null) {
RuleEngine2.Rule r = e.mr.rule;
s = "Rule: " + r.globalID + " (" + newLinesToSpaces_trim(r.text) + ")";
}
setText(lblInfo, s);
}
void exportEngine enter {
showText("Rule Engine", structWordWrap(root.ctx));
}
}