Skip to content

Vocabulary model and language packs (tracking) #747

Open
6 of 9 issues completed
Open

Description

@derek73

Goal. Describe each vocabulary word by its readings — what the word can be in a name (a generation suffix, a credential, a family particle, a salutation…) and the properties of each reading — instead of base sets plus marker subsets. Then build language packs on top: choosing a language settles the words that are ambiguous only because the default serves every language.

The default keeps working for names of any language, as today. A pack prefers its language, settling clashes where that language has a vocabulary reading; a strict pack also drops other languages' name readings.

Where things are

  • The model and every decision so far: decisions/vocabulary-model
  • The data: nameparser/vocab/<language>.toml, compiled by tools/vocab/build.py (the parser never reads the TOML)
  • A reference for editing the TOML and a design overview of the later phases: the docs sub-issue below

Status

Phase What State
1 Per-word TOML format, compiled to today's sets; no parse moves done: #737, #744 (2.6)
1, data Classify the words still in und.toml by language and kind done: #765 (particles, #749), #769 and #773 (titles, #750), #778 and #780 (credentials and the rest, #751)
2 Ambiguity derived from clashing readings; the ambiguity gate extended to every reading kind done: #752 (2.6–2.7, phases 2a–2m); title words left over are #913
3 Language packs: a choice of languages turns on readings and prefers them mostly done (3.0): 3a #941, 3b #945, 3c #946, 3j file-strict #986, packs ne #955, hi/bn #958, cs/sk/sl/hr #957 and #973, ga/gd/pt-BR #956, es/pt #964; 3i set aside. Open: an is pack, #345's transliterated honorifics, père (#684). See #753
4 Order and shapes, the rules a pack can choose, the output model mostly done (3.0): 4a Token.reading #942/#944, 4b generation/credentials #947, 4c patronymic #948, 4d surname2 #951, 4e render order #943, 4f [rules] #953, 4g two_given_names #954, 4h shape inventory #974, 4i the Lexicon surface by reading #989/#991/#992/#997. Open: particle phrases completing a given name (#704), render patterns. See #754

Classification (master af450cd8): every word is in the file of a language whose names it occurs in, except bon and dí, two particles of unrecorded origin left in und.toml; whether they stay is #766. Recompute with uv run python tools/vocab/query.py --file und.

Sub-issues track each piece. Related questions are linked under the phase they belong to.

Activity

  1. self-assigned this
    on Oct 19, 2026
  2. pinned this issue on Oct 19, 2026
  3. added this to the 3.0 milestone on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions