01 /Morphology
How words are built from smaller pieces of meaning. Turkish stacks suffixes onto a stem, so one word can carry what English spreads across a whole phrase, and every suffix shifts its vowel to match the stem.
ev·ler·iniz·den
house · plural · your · from = “from your houses”
In Grammario
Turkish words are split into a root and labeled suffixes, so a learner sees how bilmediysen is assembled instead of memorizing it whole.
In Lociros
Sudachi and pymorphy3 reduce every word to its lemma and inflection. That analysis is what the level validator checks and what the reader shows when you tap a word.
Build bilmediysen, one suffix at a time
bilmediysen = “if you did not know”
Person ending. Says who did not know.
02 /Syntax and dependencies
Sentence structure as relations between words: which word heads a clause and which words depend on it. I work in Universal Dependencies, an annotation scheme shared across languages, so a subject or an object means the same thing in Russian as in Italian.
In Grammario
spaCy, with Stanza as a fallback, parses each sentence into a dependency tree before any model is involved. Click a word for its role, lemma, and features.
In Lociros
Constructions a level forbids, like Japanese relative clauses or Russian который-clauses, are found in the analysis rather than guessed from the text.
Same relations, different order and language
VERB · root
Lemma читать. Aspect=Imp, Tense=Pres, Person=1.
03 /Agreement and case
Some words must match each other, and some words decide another word’s form. Italian and Spanish agree in gender and number. In German and Russian, verbs and prepositions require a particular case.
In Grammario
Agreement clusters group the words that must match in Italian and Spanish, governance shows which word demands which case in German and Russian, and rule-based checks flag a mismatch.
In Lociros
Cases, participles, and moods are listed per level, so an A2 Russian passage only uses the cases an A2 reader has met.
Change one word, watch the others follow
Italian: pick the subject
mia sorella è andata
feminine singular: the possessive, the noun, and the participle all take the same ending
German: pick the verb
Ich helfe dem Mann
helfen (to help) takes the dative, so the article becomes dem
04 /Typology
Languages build meaning in different ways. Turkish is agglutinative, with one suffix per meaning. Italian is fusional, with one ending carrying several. Arabic builds words by placing a consonant root into patterns. A pipeline built for one type handles the others badly.
evlerinizden
agglutinative: four pieces, four meanings
andata
fusional: -a marks feminine and singular at once
كِتَاب · مَكْتَبَة
root and pattern: k-t-b gives kitāb “book” and maktaba “library”
05 /Writing systems
Japanese mixes kanji with two syllabaries, and a kanji’s reading depends on the word it sits in. Arabic is written right to left and usually leaves out short vowels, so the root and pattern carry much of the reading.
市場
しじょう: 市 is read し and 場 is read じょう in this word
One kanji, four readings
先生
teacher生 is read せい here
06 /Graded input and CEFR
Reading helps most when the text sits just above what you already know. CEFR describes levels from A1 to C2, but text labeled for beginners often uses grammar a beginner has not learned yet.
In Lociros
Each level’s allowed grammar lives in JSON per language. A validator checks every generated passage and sends it back for a rewrite when it goes over level.
In Grammario
Sentences get a CEFR difficulty score from features of the parse, like tree depth, subordination, and morphological complexity.
The validator on a real draft
Prompt: write A1 Japanese about a morning at the market
毎朝、市場に行って、魚を買っています。
ja:te_form (て)ja:te_iru (て)Fails A1, sent back for a rewrite
07 /Languages I speak
I speak Russian and study Italian, Turkish, German, Hebrew, and Japanese, and that is where the NLP work comes from. Knowing firsthand that Turkish stacks suffixes while Italian inflects is why Grammario runs a different analysis strategy per language family instead of one generic pipeline.
EnglishNative
RussianNative
ItalianProficient
TurkishProficient
GermanBasic
HebrewBasic
JapaneseBasic