abstract sclass Agent { Collection concepts; // input new LinkedHashSet statements; // output int duplicates; // number of already known statements emitted abstract void impl(); void emit(S s) { if (!isTruth(s) && statements.add(s)) print("> " + s + " - " + conceptLanguageToEnglish(s)); else ++duplicates; } void runLive(bool doIt) { concepts = aiConcepts(); statements.clear(); impl(); print("Have " + n(statements, "statements") + " to add"); if (doIt) { print("ADDING."); addTruth(statements); } } void doIt { runLive(true); } void testRun { runLive(false); } }