Warning: session_start(): open(/var/lib/php/sessions/sess_hr90o3t5esdkfa76kguk7ktrkl, 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
sbool killDB = false;
static int defaultMax = 1000; // steps to run
sS facts = [[
We want to find out what is more correct than what.
"not correct" is a candidate.
"maybe quite correct" is a candidate.
"really really correct" is a candidate.
"buggy" is a candidate.
"total garbage" is a candidate.
"incorrect" is a candidate.
"almost correct" is a candidate.
"absolutely correct" is a candidate.
"very correct" is a candidate.
[nfhwfngqkgoqtngs] (no question) and (X is a candidate.) and (Y is a candidate.) and (X <> Y) and (There is no answer to (Is X # more correct than Y?).) => (Ask (Is X # more correct than Y?))
// Note: The # is just a filler for parsing, we'll get rid of that in time. Also, you will be able to write stuff without brackets of course.
Always apply rule nfhwfngqkgoqtngs.
// Interpret answers
[iprphzfmwithvdfb] (The answer to (Is X # Y than Z?) is (yes).) => (X is Y than Z.)
Always apply rule iprphzfmwithvdfb.
[udsmtmbiedmxtxci] (The answer to (Is X # Y than Z?) is (no).) => (Z is Y than X.)
Always apply rule udsmtmbiedmxtxci.
// Transitivity!
[pglcuchrtxdmlfvh] (X is AA than Y.) and (Y is AA than Z.) => (X is AA than Z.)
Always apply rule pglcuchrtxdmlfvh.
[ijziyiplzanfwvqx] (Ask (X)) and (The answer to (X) is (Y).) => (Remove (Ask (X)))
Always apply rule ijziyiplzanfwvqx.
no question :- There is no statement with operator fxxathfdlfzgmaov.
// Just a pretty-printing statement
omrvwjslbkffaxoj hszwyiyetuuhcfwz acwmbrxqrlaplyqu
]];
sS concepts = [[
ufzlismnlhvbjqoj - (X) and (Y) and (Z) and (AA) and (AB) => (AC)
phkdhqkhzytkwdpb - (X) and (Y) and (Z) and (AA) => (AB)
txsysipmstxmjhmi - (X) and (Y) => (Z)
wziyypnyayfphdxs - (X) => (Y)
xikyminwmeahxiws - There is no answer to (X).
pxavyqesoqyqbipb - The answer to (X) is (Y).
cdzttdbxadjreorm - We want to find out what is X than what.
ogqdgzepqbunuuht - X is a candidate.
hszwyiyetuuhcfwz - Is X # Y than Z?
acwmbrxqrlaplyqu - Is "X" Y than "Z"?
qgxjwufpfzkqvmxb - X is Y than Z.
ylvaoplzguvhegka - X is not Y than Z.
zxucpbfzmexohoiv - It is not true that (X).
buahjsodljsaxvaq - X <> Y
fxxathfdlfzgmaov - Ask (X)
chjllkocfhtwcgoj - Remove (X)
mzdvauejerzefagk - I don't know if (X)
omrvwjslbkffaxoj - Format operator X as template Y.
houyieutcmfdvgmz - Execute (X)
hzmtabxcmkrtffgh - Apply X
zvknqzxlrmuobnzx - Always apply rule X.
plprefzezbluijrw - no question
jexyjrtbtilmsmfw - setQuestion(X)
cuutddpitkuswthu - While (X) => (Y)
sicrogpdrtkiptun - X :- Y
zhoulgsatpswstfa - There is no statement with operator X.
ltyqczktgtjxrtlf - more correct
zveeggveflecjwvr - total garbage
wolealpbqkkqkvqq - not correct
tomkbzlqlpeiekvu - maybe quite correct
dnxyynujqydgcxcd - really really correct
trajdgvqepyhsumb - buggy
lwikikhkydtewtjc - incorrect
muxjpepnjiyjghwj - almost correct
wtnpjovqqiswlyay - absolutely correct
bmliokweerblfxco - very correct
]];
!include #1008133 // MyTruth etc.
static Lisp currentQuestion;
static Q thinkQ;
p-tt {
centerHigherConsole();
substance();
thinkQ = new Q(true);
// customize parsing and printing
set hygienicParse1_unquote;
set hygienicParse1_debug;
set englishToConceptLanguage_simple_noXYZ;
set formatXYZ_quotedVars;
// load predefined & learned statements
useConceptsAndStatements(concepts, facts);
if (killDB) deleteDB();
loadMyTruth();
printLispStatements();
lispStandardEvaluators();
bot();
thinkQ.add(r { force(defaultMax) });
}
answer {
if "lisp" { printLispStatements(); ret "ok"; }
if "print" { printPrettyFacts(); ret "ok"; }
if "rule *" { thinkQ.add(r { applyRule_random($1) }); ret "ok"; }
if "step" { thinkQ.add(f applyAlwaysRules); ret "ok"; }
if "run" { thinkQ.add(r { applyAlwaysRules(defaultMax) }); ret "ok"; }
if "force" { thinkQ.add(r { force(defaultMax) }); ret "ok"; }
}
svoid showQuestion() {
L l = lispTruth1("fxxathfdlfzgmaov");
if (l(l) > 1) warn("Multiple open questions");
if (nempty(l)) {
final Lisp q = first(l).get(0);
if (eq(currentQuestion, q)) ret;
currentQuestion = q;
print("Question: " + q);
swing {
showControls2(
centerAndSouth(
withBottomMargin(jcenteredBoldLabel(lispToEnglish_prettier(q))),
jcenteredline(answerButton("Yes"), answerButton("No"), answerButton("I don't know")));
}
}
}
svoid force(long steps) {
for (long step = 0; step < steps; step++)
applyAlwaysRules_step();
}
svoid applyAlwaysRules(long maxSteps) {
long count = 0, step = 0;
do {
count = lispChangeCount();
applyAlwaysRules_step();
} while (++step < maxSteps && lispChangeCount() != count);
}
svoid applyAlwaysRules_step() {
for (Lisp l : lispTruth1("zvknqzxlrmuobnzx"))
applyRule_random(l.raw(0)); // TODO: not only random application
for (Lisp l : lispTruth1("chjllkocfhtwcgoj")) { // Remove (X)
unemit(l);
unemit(l.get(0));
}
for (Lisp l : lispTruth1("hzmtabxcmkrtffgh")) { // Apply X
unemit(l);
applyRule_random(l.raw(0));
}
showQuestion();
}
static JButton answerButton(fS text) {
ret jbutton(text, r {
emit(lisp("pxavyqesoqyqbipb", currentQuestion, englishToLisp(text)), "button");
thinkQ.add(r { force(defaultMax) });
});
}