!752 concepts. concept Language { S name; } concept Word { S text; } concept ProbablyInLanguage { new Ref word; new Ref language; } p { loadAndAutoSaveConcepts(); print("Have " + n(countConcepts(Language), "languages") + ", " + n(countConcepts(Word), "words")); makeBot(); } synchronized answer { if "add to * *" { S langName = toLowerCase($1), text = $2; if (!hasConcept(Language, langName)) print("New language: " + langName); Language language = uniq(Language, langName); int newWords = countConcepts(ProbablyInLanguage); for (S word : codeTokens(javaTok(text))) uniq(ProbablyInLanguage, +language, word := uniq(Word, toLowerCase(word))); newWords = countConcepts(ProbablyInLanguage)-newWords; ret "Thanks. " + (newWords == 0 ? "I knew all these words already :)" : n(newWords, "new words") + " learned!"); } }