Skip to content

Move ms and miss to mul.toml whole; mark mba ambiguous - #1028

Merged
derek73 merged 3 commits into
masterfrom
feat/mul-ms-miss-mba
Nov 3, 2026
Merged

derek73 merged 3 commits into
masterfrom
feat/mul-ms-miss-mba

Conversation

@derek73

@derek73 derek73 commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

What

Follows the mul.toml audit decided in chat on 2026-11-03 ("ms, miss, mba"), measured with the strict-gap report of #1025.

Measured

On 7ce9cbf with config_diff.py at 22234c1, the first 20,000 records a group.

  • Strict losses (gaps, 83 tags). A broken record is laid to the word whose own token moved.
    • ms broke 38,117 records across tags and fixed 11; miss broke 28,537 and fixed 2. Nearly all are the UK register's title boxes.
    • On this branch both are 0. Strict zh falls from 4,832 broken to 965, fil from 4,899 to 1,066, pa from 3,008 to 155, ro from 2,577 to 60 and pl from 2,093 to 70. Strict en stays at 7,362.
  • Why ms moves whole. With its salutation alone in mul.toml, strict ko, hi, pl and zh read MS past a comma as a title: 46,838 of 51,461 names moved (A Israni, MD, MS → title 'MS').
  • ing. Moving its credential to cs, sk, de, ro, nl, fr, sr and hr and its names to en and sv was measured under all 162 configurations. It was worse both ways:
    • those eight languages' strict choices lose the gate (Alvin Ing → suffix 'Ing');
    • every other strict choice loses the credential (Daniela Ponce, Ing → given 'Ing').
  • mba, default against the base (measure.py --base, 22 steps, none failed). Every moved name in every local corpus holds mba: ctgov 20 entries, FEC 179, ORCID 26 against 7ce9cbf (27 against the merged master, by the review), PSC 12, JRC 12, GOV.UK 1.
    • Of the 58 names whose fields move, about 49 read the name better (Léon Mba, Patrick Arthur MBA ABESSO).
    • About 9 read a degree into the name, the cost the class pays for ma and meng. Where a name word can stand, the degree reads as the name: GULLEY MBA, KELLEY D. → family 'GULLEY MBA', Smith, MBA Jane, , MBA and RUH MD,MBA, RICHARD → given 'MBA'. A period-marked Smith, Mba. reads title 'Mba.', as Meng. does; brackets configured for maiden names read (MBA) as the maiden name, as (MA) and (MEng) do.
    • John Smith, MBA, John Smith MBA (in capitals) and Andrew Perkins (MBA) are unmoved.
  • Committed corpora. The snapshot moves john smith mba (ambiguities only) and the two rule examples below. CLDR, GND, Wikidata and conventions agreement are unchanged.

Docs in the same diff

  • decisions/vocabulary-model: the audit entry, its Standing line, and the Should a strict choice still read PhD, Dr and Prof? (parser_for(locales.PT, strict=True).parse("Ana Souza, PhD") → given 'PhD') #1005 entry's ms clause marked superseded.
  • decisions/suffix-acronym-collisions: the mba entry and Standing; the 2026-10-21 hold-out marked superseded.
  • Two rule examples that used MBA as the unambiguous credential take another:
    • rules/S1's (PhD MBA) becomes (PhD MSc), with decisions/S1's Standing line and the 2026-10-21 entry's head marked;
    • rules/M1's Andrew Perkins (MBA) under maiden-parens becomes (PhD). A marked member in a maiden pair reads maiden, as (MEng) does.
  • nameparser/vocab/AGENTS.md: a dual-reading word moves whole, with the ms measurement.
  • vocab/README.md's mul paragraph, locales.rst's list of shared words, the RFC's strict-losses note.
  • A release-log bullet for mba.

The rules corpus is rebuilt and the snapshot re-recorded.

Review round (5310083)

An independent review found no behavior defect; it fixed the prose and the stated limits: the 2.8.1 range, the release log's limit sentence and the decisions entry's costs (the names above), stale Ms and (MBA) examples in locales.rst, usage.rst and AmbiguityKind.SUFFIX_OR_NICKNAME's comment, the RFC's supersession note, miss's reason, and vocab/AGENTS.md's count of checks, with a note that check 13 already refuses splitting a word.

Checks

  • uv run pytest -q: 35,238 passed. -n0 -m serial: 42 passed.
  • uv run mypy, uv run ruff check.
  • sphinx-build -b doctest and -W -b html; python -m doctest README.rst.
  • tools/vocab/build.py --check.
  • Not run: Python 3.15. No code changed, only vocabulary data, tests and docs.

The audit's measurements use tools/differential/config_diff.py from #1025; this PR does not depend on it to build or test.

🤖 Generated with Claude Code

…ame)

Every strict choice reads mul.toml (#1005), and the strict-gap report
(config_diff.py gaps, #1025) ranked the salutations `ms` and `miss`, left
in en.toml, the top strict loss in most languages: 38,117 and 28,537
records broken across tags, nearly all of them the UK register's title
boxes, the class `mr` and `mrs` moved for. Each moves whole: `ms` with
its credential, since the salutation alone read `A Israni, MD, MS` title
'MS' under a strict choice without en, and `miss` with its family
reading. No default or plain-choice parse moves for either.

`mba` gains a family reading, superseding the 2026-10-21 hold-out:
`Chinedu Mba` reads family 'Mba', as 1.4.0 read it, where 2.0.0 through
2.8.0 read suffix 'Mba' with no family. A degree written in the family
part before a comma reads into the family (`GULLEY MBA, KELLEY D.`), the
cost the ambiguous class pays for `ma` and `meng`.

The audit of every other mul.toml word keeps each where it is, `ing`
included: moving it out made both the languages that write it and the
rest worse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added this to the 3.0 milestone Nov 3, 2026
@derek73 derek73 added the vocabulary Per-word vocabulary model and language packs label Nov 3, 2026
@derek73 derek73 self-assigned this Nov 3, 2026
# Conflicts:
#	docs/design/decisions/suffix-acronym-collisions.md
#	docs/release_log.rst
…se, miss's reason

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73
derek73 merged commit f48c88a into master Nov 3, 2026
20 of 21 checks passed
@derek73
derek73 deleted the feat/mul-ms-miss-mba branch November 4, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vocabulary Per-word vocabulary model and language packs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant