Warning: session_start(): open(/var/lib/php/sessions/sess_3q1a3r4v5scf5oeg834aonr9jc, 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 inputDiagrams = [[
CirclesAndLines(circles=[Circle(text="A [Anything]", x=d("0.26"), y=d("0.2")), Circle(text="B [Anything]", x=d("0.52"), y=d("0.49")), Circle(text="C [Anything]", x=d("0.75"), y=d("0.19"))], lines=[Arrow(a=t5, b=t26, text="likes"), Arrow(a=t26, b=t47, text="likes"), Arrow(a=t47, b=t5, text="Then: likes")], title="Transitivity of liking")
CirclesAndLines(circles=[Circle(text="John", traits=[], x=d("0.28"), y=d("0.23")), Circle(text="Mary", traits=[], x=d("0.77"), y=d("0.23")), Circle(text="Peter", traits=[], x=d("0.52"), y=d("0.52"))], lines=[Arrow(a=t5, b=t31, text="likes", traits=[]), Arrow(a=t31, b=t57, text="likes", traits=[])], title="John")
]];
static L webs;
static Web inputWeb, resultWeb;
static JTabbedPane tabs;
p-subst {
cal_lineLength(50);
webs = websFromCALStructures_vis(inputDiagrams);
inputWeb = last(webs);
think();
final CirclesAndLines cal = webToCAL_live_vis(inputWeb,
voidfunc(Web w) { inputWeb = w; think() });
setFrameWidth(700, tabs = showTabbedWebs(
"Instruction", calAutoLayout2(webToCAL_live_vis(first(webs),
voidfunc(Web w) { webs.set(0, w); think() })),
"Input", /*inputWeb,*/ calAutoLayout2(cal),
"Result", resultWeb != null ? resultWeb : jlabel("Sorry")));
think();
}
svoid think { loading {
print("Thinking.");
Web web = first(webs); // Instruction
Web patternWeb, Map patternMap = unpair cloneWebWithMap(web);
web_dropRelationsStartingWith(patternWeb, "Then:");
Web thenWeb, Map thenMap = unpair cloneWebWithReverseMap(web);
web_unpackRelationsStartingWith(thenWeb, "Then:");
Map match = web_matchAllPerms(patternWeb, inputWeb);
// Clone inputWeb to get resultWeb
Web resultWeb, Map resultMap = unpair cloneWebWithMap(inputWeb);
main.resultWeb = resultWeb;
if (match != null) {
// Then add relations from thenWeb
for (WebRelation rel : web_relationObjects(thenWeb)) {
WebNode a = mapGet(resultMap, mapGet(match, mapGet(patternMap, mapGet(thenMap, rel.a)));
WebNode b = mapGet(resultMap, mapGet(match, mapGet(patternMap, mapGet(thenMap, rel.b)));
if (a != null && b != null) {
print("Adding labels " + rel.labels + " to: " + a + " - " + b);
WebRelation rel2 = resultWeb.getRelation(a, b);
web_addLabelsFromNodeToNode(rel, rel2);
}
}
}
if (tabs != null) {
printWeb(resultWeb);
CirclesAndLines cal = webToCAL(resultWeb);
printBeautify(cal_structure(cal));
replaceTab(tabs, "Result", webToCALWithAutoLayout(resultWeb));
}
}}