Skip to content

Vocabulary model and language packs (tracking) #747

Open
4 of 8 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 not started: the first phase that changes behavior
3 Pack semantics (prefer and strict) needs phase 2 and the language tags
4 Order and shapes, the rules a pack can choose, the output model (surname2, patronymic, an empty family) mostly independent of 2 and 3

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
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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions