Warning: session_start(): open(/var/lib/php/sessions/sess_6l785o7o3ohf73iuatv9tqprvc, 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
static Triple ai_tripelize(S s) {
T3 t = ai_parseTriple(s);
if (t != null) ret t;
S x = "";
if (endsWith(s, "?")) x = " (?)"; // statement with question mark, e.g. "Al Gore invented the Internet?"
t = ai_tripelize_impl(dropCertainPunctuationAtEnd(s, ":;,?!."));
if (t == null) null;
ai_fixTriple(t);
//print("After fix: " + t);
if (nempty(x) && t != null && !endsWith(t.a, "?") && !endsWith(t.b, "?") && !endsWith(t.c, "?")) t.b += x;
if (endsWith(s, "!") && eq(t.b, ".")) t.b = "!";
ret t;
}
static Triple ai_tripelize_impl(S s) {
L original = ai_tripelize_prepare(s);
if (l(original) <= 1) null; // no tokens
original = simpleSpaces(original);
L tok = original;
S a = get(tok, 1);
T3 triple;
ret optional triple = ai_tripelize_dash(s, original);
ret optional triple = ai_tripelize_exclamCommand(s, original);
ret optional triple = ai_tripelize_howLongEtc(s, original);
if (ai_questionWord_1(a)) { tok = subList(tok, 2); a = get(tok, 1); }
S before = trimJoinSubList(original, 0, indexOfSubList(original, tok));
if (ai_yesNoQuestionWord_1(a) && neqicOneOf(a, "am", "are", "is")) {
L tok2 = subList(tok, 2);
int i = indexOfFirstVerb(tok2);
S v = get(tok2, i);
if (v != null) {
S middle = trimJoinSubList(tok2, 0, i);
S rest = trimJoinSubList(tok2, i+1);
v = ai_tripelize_helperVerb(a, v);
ret triple(joinWithSpace2(before, middle), v, rest);
}
}
// sentence starting with verb - instruction or question?
if (isVerb(a)) {
if (ai_yesNoQuestionWord_1(a)) {
// question
tok = subList(tok, 2);
int i = ai_splitTwoNounPhrases(tok);
//int i = ai_endOfNounPhrase(tok);
ret triple(
trimJoinSubList(tok, 0, i),
a + "?",
trimJoinSubList(tok, i));
} else {
// instruction
ret triple(a, ".", join(subList(tok, 2)));
}
}
int i = ai_endOfNounPhrase(tok);
int j = indexOfFirstVerb(tok, i);
if (j < 0) ret triple(s, ".", ".");
ret triple(
joinWithSpace2(before, trimJoinSubList(tok, 0, j)),
tok.get(j),
trimJoinSubList(tok, j+2));
}