!7 static L instructions; static volatile L topic; static WebNode source; p { typicalDownload(); instructions = indexedNodes("If starts with"); bot(); centerBiggerConsole(); consoleInput("What do you know about Gaga?"); askButton(); } answer { if "source" ret source.web.source; if "index" { pnl(keys(cachedNodeIndex())); ret "-"; } for (WebNode instruction : instructions) { WebNode op = web_operand(instruction); if (matchStart(web_unquote(op), s, m)) { WebNode i = web_operand(op); S what = web_text(i); if (eqic(what, "get topic $1")) { getTopic(m.rest()); ret anyFactAbout(source = first(topic)); } else ret "huh? " + what; } } } svoid getTopic(S topic) { main.topic = indexedNodes(topic); print("Got topic: " + topic + " => " + n(main.topic, "node")); } sS anyFactAbout(WebNode node) { if (node == null) ret "No idea"; Triple t = web_mostInterestingConnection(node); if (t == null) ret "No idea about " + node; ret web_text(t.a) + " " + t.b + " " + web_text(t.c) + "."; }