Skip to content

Add docs/design/vocabulary-model-rfc.md, where the vocabulary model is going - #758

Merged
derek73 merged 1 commit into
masterfrom
feat/vocab-rfc-748
Oct 19, 2026
Merged

derek73 merged 1 commit into
masterfrom
feat/vocab-rfc-748

Conversation

@derek73

@derek73 derek73 commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Closes #748. Follows #757 (merged), whose nameparser/vocab/README.md it links to and which now links back. Rebased onto master as one commit after #757's squash; the earlier review rounds ran on its pre-squash commits, whose final tree this matches.

What. A design overview of the vocabulary model, beside nameparser-2.0-rfc.md. decisions/vocabulary-model stays the record and wins where they differ.

  • Why readings replaced the sets; phase 1 as shipped.
  • Phase 2: ambiguity derived from readings and a gate for every reading kind. fils is the worked case (a today vs gated table, emulated). It lists the gates that exist today as six rules, one per class of word (S3/S4/S6, S10, H3, P4, P5, P8), and restates phase 2 as making the gate a property of a reading. It covers the contested-head rule for titles at the front.
  • Phase 3: prefer and strict packs. Decision 15's asymmetry is worked through do (John Smith DO); a pack can outrank a shape rule (Ma.). It records that decisions 6 and 15 reverse Locale packs for Alexandre Dumas fils and Jiří Dienstbier ml.: generational words that collide outside their language #684's premise: a French pack keeps both French readings of fils, so the gate, not a pack, keeps Marie Fils's family name.
  • Phase 4: order versus shape (measured on Family–Title–Given), the rules a pack can choose with measured gaps, and the output model.
  • First packs: left to Vocabulary model and language packs (tracking) #747.

Also: decisions/vocabulary-model's reserved-name list gains prefer and strict, reserved in build.py since #737, and decision 11 is widened to words a file refuses (Derek, 2026-10-19), matching fils in fr.toml; the README links to the RFC.

Verification. Every "today" parse was re-measured on e9855df0; corpus counts carry their date and tree, and the review recounted 315/390 and 0/60 from the agreement records. A docs-review pass ran the twelve axes, and its findings are fixed: the gate inventory, the S3 citation, the #684 reversal, the stale reserved-name list, a Van Buren example that contradicted decision 4, the decision 11 wording against fils, and open questions now linked to their issues. Content traceable to a private source was removed, including the ranked first-pack list. A second review of that fix commit found the gate list still wrong (generation words, titles and bound given names are gated by S10, H3 and P5), the John Smith D.O. example falsified by S3, decision 11 unamended, a ranking the corpus sampling produced, and a strict-pack example decision 6 does not support; all fixed in the last commit.

🤖 Generated with Claude Code

@derek73 derek73 added docs Documentation fixes and updates design vocabulary Per-word vocabulary model and language packs labels Oct 19, 2026
@derek73 derek73 self-assigned this Oct 19, 2026
derek73 added a commit that referenced this pull request Oct 19, 2026
From the review of the fix commit on #758:
- The gates today are six rules, one per class of word (S3/S4/S6, S10,
  H3, P4, P5, P8); the list of "ungated kinds" was wrong for generation
  words, titles and bound given names. Phase 2 is restated as making the
  gate a property of a reading.
- decision 15's example is John Smith DO, which loses its suffix without
  do's credential reading; John Smith D.O. does not (rules/S3 reads the
  dotted shape). The strict-pack example is dropped: decision 6's strict
  drops name readings only.
- The surname-span measurement no longer ranks gaps; its corpora were
  built to hold second surnames.
- decisions/vocabulary-model: decision 11 widened to words a file
  refuses, as Derek decided 2026-10-19, matching fils in fr.toml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73
derek73 deleted the branch feat/vocab-readme-748 October 19, 2026 21:58
@derek73 derek73 closed this Oct 19, 2026
…s going (#748)

A design overview beside nameparser-2.0-rfc.md, distilled from the
working notes behind decisions/vocabulary-model, which stays the record
and wins where the two differ: why readings replaced the sets; phase 1
as shipped; phase 2 (ambiguity derived from readings, the gate as a
property of a reading, starting from today's six gate rules, with fils
as the worked case); phase 3 (prefer and strict packs, decision 15
worked through do, a pack outranking a shape rule, and the reversal of
#684's premise); phase 4 (order versus shape, the rules a pack can
choose, the output model). The first-pack ranking is left to #747.
Every "today" parse was measured on e9855df; corpus counts are dated.

decisions/vocabulary-model: the reserved-name list gains prefer and
strict (reserved in build.py since #737), and decision 11 is widened to
words a file refuses, as Derek decided 2026-10-19. The vocab README
links to the RFC.

Closes #748.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 reopened this Oct 19, 2026
@derek73
derek73 changed the base branch from feat/vocab-readme-748 to master October 19, 2026 21:59
@derek73
derek73 force-pushed the feat/vocab-rfc-748 branch from 4e8103a to d5f136f Compare October 19, 2026 22:00
@codecov

codecov Bot commented Oct 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.05%. Comparing base (991a6f9) to head (d5f136f).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #758   +/-   ##
=======================================
  Coverage   99.05%   99.05%           
=======================================
  Files          47       47           
  Lines        4642     4642           
=======================================
  Hits         4598     4598           
  Misses         44       44           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@derek73
derek73 merged commit c7b04e9 into master Oct 19, 2026
12 checks passed
@derek73
derek73 deleted the feat/vocab-rfc-748 branch October 19, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design docs Documentation fixes and updates vocabulary Per-word vocabulary model and language packs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the vocabulary model: a reference for editing nameparser/vocab/ and a design overview of the later phases

1 participant