Skip to content

Read the pack titles no name bears by default (#1115) - #1121

Merged
derek73 merged 2 commits into
masterfrom
feat/issue-1115-pack-titles
Nov 6, 2026
Merged

derek73 merged 2 commits into
masterfrom
feat/issue-1115-pack-titles

Conversation

@derek73

@derek73 derek73 commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Part of #1115, the pack-titles batch. Phase 3g, phase 3f and #1108 wrote the Spanish, Portuguese, Czech, Slovak and Vietnamese titles default = false so that phase 3 moved no default parse, not because of a collision. #804 made that default change for profesor. This PR makes it for the rest that no name or initials spell.

What changes

Read by default: 27 words, 36 readings. The nine doctorates have readings in both cs.toml and sk.toml.

  • es: lic, licenciado, licenciada, lcdo, lcda, ingeniero, ingeniera, arq, mtro, mtra, doctora
  • pt: doutor, doutora, professora, profa
  • cs and sk: judr, mudr, phdr, rndr, mvdr, mddr, paeddr, pharmdr, thdr
  • vi: ths, đbqh, dbqh

Listed, on by default: licda, profr, gral, tte (es) and rsdr, thlic, thmgr, plk, npor (cs). None has name bearers.

Kept the choice's, each read against its moves:

  • maestra: a schoolteacher and a family name
  • doña: a family name
  • mga: Sri Lankan initials MGA
  • bca: an English credential
  • pan, and mgr's degree reading
  • vi gs, ts, pgs: written as initials (NGO, TS would lose its given name)
Jan Novák, MUDr          given 'MUDr', family 'Jan Novák'   →  title 'MUDr', given 'Jan', family 'Novák'   (1.4.0 through 2.8.2)
Licenciado Juan Pérez    given 'Licenciado', middle 'Juan'  →  title 'Licenciado', given 'Juan'

Measured

config_diff.py diff --local all --committed against the tree without the readings, 2026-11-06 on e6a86bc9. 312 of the 8,529 matching names move:

  • by source: Mexico's DOF signatures 219, ClinicalTrials.gov 48, ORCID 26, cz-candidates 11
  • 287 change a name field, a title leaving it
  • 25 move only from suffix to title: 14 Czech doctorates after a comma, one plk.v.v. and 10 licentiates (Teemu Elomaa, Lic.Med)

Other costs, recorded in decisions/vocabulary-model's 2026-11-06 #1115 entry:

  • Doctora en Neumología leaves en as the given name
  • Lic.Yilian takes the glued name word, as Dr. does
  • one credential moves into the family
  • a family name written first that is one of these words reads as the title (Doctora, Licenciado and Lic are each borne once as a family name in ORCID or PatentsView, none written first)

The snapshot moves one committed name (ĐBQH Nguyễn Văn Anh), and its CLDR record is re-recorded: the family and given names now agree with CLDR, and the title disagrees.

Tests and docs

  • Locale rotator rows: 47 rows that proved each pack reads these words differently now form _READ_BY_DEFAULT_SINCE_1115, which asserts that the default reads each row as its pack does.
  • Vacuous tests: six tests used lic or judr as a pack-only word and now use maestra and mga. Each was checked to read under the pack and the default as the old word did on master.
  • Slavic pack test: it gains MgA rows in each comma shape, order and case.
  • Docs and pack docstrings: docs/locales.rst (two doctests), docs/usage.rst's CLI example and the pack docstrings follow.
  • Release log: the unreleased 3.0 ES/PT and CS bullets get new examples, and a Change bullet is added.

Review

The design-docs review recomputed 312, 8,529, the per-source split and the licentiate count, all exact. It read all 93 moves outside DOF and found no real name eaten, and confirmed both release examples against the 1.4.0, 2.8.0 and 2.8.2 wheels. It found eight problems, all fixed in the second commit:

Test plan

  • uv run pytest (39,122 passed) and uv run pytest -n0 -m serial
  • uv run mypy, uv run ruff check, python -m doctest README.rst
  • uv run sphinx-build -b doctest docs

🤖 Generated with Claude Code

derek73 and others added 2 commits November 6, 2026 14:41
Phase 3g, phase 3f and #1108 wrote the Spanish, Portuguese, Czech,
Slovak and Vietnamese titles default = false so phase 3 moved no
default parse, not for a collision. 27 of them now read by default
(lic, licenciado, mtro, doctora, doutor, professora, JUDr, MUDr,
PhDr, RNDr, ThS, ĐBQH, ...), and nine titles the mining found
unlisted join on by default (licda, profr, gral, tte, RSDr, ThLic,
ThMgr, plk, npor). The words a name or initials spell stay the
packs': maestra, doña, MgA, BcA, pan, GS, TS, PGS.

312 of 8,529 matching corpus names move, 219 in Mexico's DOF
signatures. The locale tests that held each word as a choice's now
hold the pack reading it as the default does; the tests that used lic
and judr as choice-only words use maestra and mga. docs/locales.rst,
the pack docstrings and the 3.0 release bullets follow.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
The design-docs review found decisions/vocabulary-model's Standing
line for phase 3g still listing the titles now read by default, the new
line pointing at it by position, and phases 3f, 3g and #1108 left
without head notes; locales.rst overstating where a bare doctorate is a
title (a bare title ending a name stays a name word); the CLI example
in usage.rst and __main__ still showing Lic as pack vocabulary; the
Slavic pack test left with no pack-only academic title, now walked with
MgA in its shapes; "27 readings" for 27 words and 36 readings; the cost
list missing 14 Czech doctorates moved from suffix to title, a
credential moved into the family and lic psych's given name; and the
notes and locales.rst saying no name bears Doctora, Licenciado and Lic,
each borne once as a family name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@derek73 derek73 added design vocabulary Per-word vocabulary model and language packs labels Nov 6, 2026
@derek73 derek73 self-assigned this Nov 6, 2026
@derek73 derek73 added this to the 3.0 milestone Nov 6, 2026
@derek73
derek73 merged commit 8c1cc70 into master Nov 6, 2026
13 checks passed
@derek73
derek73 deleted the feat/issue-1115-pack-titles branch November 6, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design vocabulary Per-word vocabulary model and language packs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant