!7 concept Example { S input; S verb; transient S verb_guessed; } static F1 guesser; p-subst { dbIndexing(Example, 'input); autoRestart(); for (S s : keys(gac36k())) uniq(Example, input := s); guesser = randomGuesser1(examples()); print("Making CRUD"); SimpleCRUD crud = simpleCRUD(Example); thread { guessLoop(); } /*awtCalcOnConceptChanges(crud.panel, 1000, r { guessAll(); }, true);*/ } static SS examples() { ret mapFromKeyAndValueField(list(Example), 'input, 'verb); } svoid guessLoop { repeat with sleep 5 { int changes = 0; loading "Guessing..." { for (Example e) changes += cset(e, verb_guessed := unnullStr(pcallF(guesser, e.input))); } if (changes > 0) change(); } }