The Necessity Tile
Someone asked me how to say "I need to go" on Sesla. The honest answer was: you can't, not in one nice sentence. You can tap Ben and Gitmek and the engine will give you "Gidiyorum" — I'm going — which is a different thing. To express obligation in Turkish you have to reach for a grammatical construction the app didn't know about yet.
1
New Tile
6
Person Forms
1123
Tests Passing
What Turkish does that English doesn't
English handles necessity with a stack of helper verbs: I need to go, I have to go, I must go. Three little words wrap around a bare infinitive. Turkish takes the verb itself and rebuilds it.
Benim gitmem gerek — literally "my going is necessary" — is the form a Turkish parent uses with a child a dozen times a day. Banyoya gitmem gerek. Yatmam gerek. Annemi aramam gerek. Three things happen at once:
- The subject pronoun goes genitive: Ben → Benim, Sen → Senin, O → Onun.
- The verb's infinitive ending
-mak / -mekdrops to a verbal noun-ma / -me, then takes a possessive suffix matching the subject's person: git-me-m, git-me-n, git-me-si. - The particle gerek sits at the end as the only piece that doesn't change.
For the verb yıkamak (to wash), the full set looks like this:
| Person | Pronoun | Verb |
|---|---|---|
| 1sg | Benim | yıkamam gerek |
| 2sg | Senin | yıkaman gerek |
| 3sg | Onun | yıkaması gerek |
| 1pl | Bizim | yıkamamız gerek |
| 2pl | Sizin | yıkamanız gerek |
| 3pl | Onların | yıkamaları gerek |
Six forms. One particle. Every verb in the app suddenly has a necessity flavor — which is a lot of expressive surface for one new tile.
Adding a tile vs. adding a grammar branch
The data side was easy: a single new symbol, ses-1176,
labeled Gerek in Turkish and necessary in English,
placed in the verbs category.
The engine side was a separate small fork. Sesla's sentence builder normally looks at the tapped tiles, finds the last verb, and runs it through tense / person / negation. The necessity construction doesn't fit that pipeline cleanly — it isn't a tense, it changes the verb's category from finite to nominal. So I gave it its own early branch:
final hasNecessity = nonEmpty.any((t) =>
_necessityMarkers.contains(t.trim().toLowerCase()));
final hasVerb = hasNecessity &&
nonEmpty.any((t) => extractTurkishVerbStem(t) != null);
if (hasVerb && !isConditional) {
return _buildNecessitySegment(nonEmpty);
}
Inside the branch, the only real new piece is a verbal-noun helper
that takes a verb stem and a person, applies -ma/-me
with the right back/front vowel, and then layers the matching
possessive suffix on top. Turkish vowel harmony is the rule that
makes the suffix shape change: yaz-ma-m with a back-vowel
stem, git-me-m with a front-vowel stem, and Sesla already
had a fourWay vowel-class detector from earlier work,
so most of the plumbing was reuse.
Movement verbs needed one extra touch. If the input is Ben + Ev + Gitmek + Gerek, the location noun in the middle has to take the dative case to match its head verb. The non-necessity pipeline already does this, so I just propagated the same rule through the new branch:
Ben + Ev + Gitmek + Gerek → Benim eve gitmem gerek.
Compound infinitives — verbs whose lemma is two words like yemek yemek (to eat a meal) or resim çizmek (to draw) — keep their object verbatim and only conjugate the head. So Ben + Yemek yemek + Gerek becomes Benim yemek yemem gerek, not the slightly horrible yemek yememem.
The implicit subject
My first benchmark assumed a hard rule: no pronoun typed → default to 1st person → emit Benim yazmam gerek. The test failed, because what the engine actually produced was Yazmam gerek — and that's correct. Turkish drops the genitive pronoun freely when context is clear. Yazmam gerek is what a person says when they're about to grab a pen; nobody adds Benim unless they're being emphatic. So the engine was right and the test was wrong. Adjusted the expectation, kept the behavior.
Nine new benchmark cases lock the rule in: one for each of the six persons, one for the implicit subject, one for the dative propagation, one for compound infinitives. The full Turkish suite is at 1123 cases now and they all pass.
Why one tile is interesting
The reason this is worth a post and not a footnote is the leverage. Sesla's verb dictionary has a few hundred Turkish verbs in it. Each one already had finite forms — present, past, future, negation, questions, six persons each — and that's a lot of grammar living inside each tile.
Adding Gerek means every one of those verbs now also has a necessity reading, in all six persons, with movement-verb dative handled and compound infinitives respected. One tile, one engine branch, and the expressive surface multiplies. That's the kind of change AAC apps are supposed to be made of — small additions that pay back across the whole vocabulary, instead of fussy per-word work.
Next on the list: the same construction in English (I need to wash, I have to go), which is grammatically simpler but has its own subject-verb agreement edge cases. After that, more grammatical particles in the same shape — Turkish has a small family of them (lazım, şart) that lean on the same verbal-noun machinery. The hard part is built; the rest is wiring.