static S ai_specReturn_answerToExternalQuestion(S q, Var answer) { answer.set("[Calculating...]"); q = switcheroo(q); print("Switcheroo to: " + q); T3 t = ai_tripelize(q); print("Have triple: " + t); if (t == null) ret "[Couldn't tripelize]"; /*t = ai_switcherooTriple(t); print("Have switched triple: " + t);*/ T3 tFact = ai_tripleWithoutQuestionMark(t); if (has_verbose(tFact)) ret "Yes"; T3 tNot = ai_negateTriple(t); if (has_verbose(tNot)) ret "No"; ret "[No answer found for: " + ai_renderTriple(t) + "]"; } static double ai_specReturn_answerToExternalQuestion_defaultTimeout = 10.0; static S ai_specReturn_answerToExternalQuestion(fS q) { final new Var answer; evalWithTimeoutReleasingDBLock(ai_specReturn_answerToExternalQuestion_defaultTimeout, r { setVarUnlessNull(answer, ai_specReturn_answerToExternalQuestion(q, answer)) }); ret answer!; }