SSML & POS lexicons
Because conversion has already resolved ambiguity into the spelling, two useful lexicons fall out of the same data — one mapping each reformed grapheme to a pronunciation, one to a part of speech.
records (noun) vs records (verb). Euspell has already split them into distinct graphemes, each with exactly one reading. So a context-free lexicon — normally a poor fit for English — becomes exactly right, because the context is baked into the orthography.1 · A pronunciation lexicon (SSML / PLS)
To read already-converted Euspell text aloud, a TTS engine needs to pronounce the new spellings (recordz, wynd) — which are non-words to it — correctly. The answer is a W3C Pronunciation Lexicon (PLS): one role-free <lexeme> per reformed grapheme, one phoneme each.
<lexeme><grapheme>recordz</grapheme><phoneme>rɪˈkɔːrdz</phoneme></lexeme> <lexeme><grapheme>records</grapheme><phoneme>ˈrɛkərdz</phoneme></lexeme> <lexeme><grapheme>wynd</grapheme><phoneme>waɪnd</phoneme></lexeme>
Two members are pinned per diatone: the reformed spelling and the unchanged base form — because the distinction is often stress, not segments (records and recordz both end /dz/), which a TTS can't infer from converted text alone. Since Euspell is itself a phonetic respelling, deriving IPA from the grapheme is largely rule-based; stress comes from the stored part of speech.
2 · A POS lexicon for grammar checkers
The same split graphemes yield one part of speech each — a real information gain for a tagger. This helps open, POS-driven checkers:
| Target | Can consume it? | Verdict |
|---|---|---|
| LanguageTool | Yes — Morfologik tagger dictionary | The real yes |
| Harper (Rust) | Yes — per-word WordMetadata | In principle, via a metadata converter |
| Hunspell | No POS — spelling only | Stops false spell-flags, no grammar help |
| Word, Google Docs, Grammarly | Closed | Can't be helped this way |
The build
gen-pos-lexicon.js emits new spellings only— a clean supplement that adds tags for words the checker doesn't know — with CLAWS7 crosswalked to the target tagset (NN2→NNS, VVZ→VBZ, and so on):
recordz recordz VBZ # verb heteronym: unambiguous verb aahz aahz VBZ # single-spelling reform, full POS aardwolvs aardwolvs NNS
A parallel emitter reshapes the same derivation into Harper-style JSON. Both share one derivation module, so the linguistic content stays in one place.
Handing a checker these lexicons helps in one direction and hurts in the other. Any rule that looks for a particular English word stops firing the moment that word is spelled differently, so rules built on word patterns get worse. Rules about grammar rather than spelling get better, because the reformed words now carry tags where before the checker had never heard of them.
What tags cannot fix is a word like read or bow, where both senses are the same part of speech. Each spelling gets the full set of tags, so the checker knows the word and types it correctly — it just cannot tell you which of the two you meant.