static S ai_specReturn_answerToExternalQuestion(S q, Var answer) { answer.set("[Calculating...]"); 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); 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!; }