Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/design/decisions/H5-trailing-title-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
- Where that bound and the given part's own walk disagree behind a title, garbage shapes read off it, recorded and not fixed (`Smith, John Mc Prof. V, Jr.` → suffix 'Mc, Jr.', middle 'Prof. V'; the entry's `Smith, John Mc Prof. VI` has read title 'Prof.', suffix 'VI' since #784) — 2026-10-10 #623.
- Under a family-first order too, a bare title ending the name is a name word and a title between the family and the given name is read by position, the title being written in front in real family-first names: `Wang Xiaoming Senator` → middle 'Senator', `Wang Dr. Xiaoming` → given 'Dr.' under FAMILY_FIRST; the period-marked trailing title still reads (`Wang Xiaoming Dr.` → title 'Dr.') — 2026-10-30 #938.
- A title that may be a given name (rules/H9) is title vocabulary to the chain only where its title reading is written short (`abbreviation`, `maj` and `gen`): `SMITH, JOHN B. MAJ.` → title 'MAJ.', while `John Karimi Mahdi.` keeps family 'Mahdi.' — 2026-11-03 #999.
- A word ending in a period and written with a period or a hyphen inside it wears the chain's shape, so a listed title written that way chains (`Hans Meier Priv.-Doz.` → title 'Priv.-Doz.', family 'Meier'), and so does a word rules/S3 reads as a title by a chunk (`John Smith Dipl.Ing.`) — 2026-11-06 #1116. Without the final period, a title listed whole with a period inside it chains (`Maria Rossi Dott.ssa` → title 'Dott.ssa'), while a title only by a chunk (`John Smith Lt.Gov`) and one a hyphen alone joins (`John Smith Co-Founder`, `д-р`) stay name words — 2026-11-06 #1104.
- A word ending in a period and written with a period or a hyphen inside it wears the chain's shape, so a listed title written that way chains (`Hans Meier Priv.-Doz.` → title 'Priv.-Doz.', family 'Meier'), and so does a word rules/S3 reads as a title by a chunk (`John Smith Dipl.Ing.`) — 2026-11-06 #1116. Without the final period, a title listed whole with a period inside it chains (`Maria Rossi Dott.ssa` → title 'Dott.ssa'), while a title only by a chunk and one a hyphen alone joins (`John Smith Co-Founder`, `д-р`) stay name words — 2026-11-06 #1104. A word every one of whose period chunks is a title chains without a final period too (`John Smith Lt.Gov` → title 'Lt.Gov'), while one a title only by some chunk does not (`John Smith Dr.PhD` → family 'Dr.PhD') — 2026-11-07 #1131.

Elsewhere: a maiden clause in front of a trailing title is no join that hides it (`Mary Smith née Jones Prof.` → title 'Prof.'), decisions/M2's 2026-09-26 #535 entry; a bare ambiguous acronym ending the given part after a family comma is the credential, so `Doe, John Prof. MA` reads title 'Prof.', suffix 'MA', decisions/S5's 2026-09-18 #531 entry on the comma report's reach; the bound join after a family comma declines a title word this run takes (`Berg, abdul Prof.` → title 'Prof.'), decisions/P5's 2026-10-11 #637 entry; a part past the second comma makes no particle chain, so `John Smith, Jr., van der Berg Prof.` reads title 'Prof.', decisions/C7's 2026-10-11 #636 entry; a report names the field its word lands in, closing the `Dr. John of Prince` detail mismatch, decisions/A1's 2026-10-08 #626 entry; the cost of a period behind an ordinary surname that is title vocabulary (`Mary Jane King.` → title 'King.', family 'Jane') is the trailing-position bullet of decisions/vocabulary-exclusions.

Expand Down Expand Up @@ -70,8 +70,9 @@ Open: none in this file.
- **Measured** against `b1d3d210` (2026-11-06, `tools/differential/measure.py --base`): the committed corpora move 2 names, rules/S3's two Accepted rows (`John Smith Dipl.Ing.`, `Smith, John Dipl.Ing.`); CLDR and GND agreement do not move. Of the local corpora, 13 names move, each a title written joined or hyphenated leaving a name field for the title: ctgov-officials 3 (`Rupert Menapace, Ao.Univ.-Prof. Dr.med.univ.` → title 'Dr.med.univ.', `Beata Mrozikiewicz-Rakowska, . Assoc.Prof.`), fec-individuals 3 (`JORDAN, HERBERT T. LT.COL.` and `TRENT, STEPHEN G LT.COL.` → title 'LT.COL.', and `DESIMONE, BETH SUSAN MR.S.` → title 'MR.S.' by its `mr` chunk), orcid-researchers 7 (`László Simon prof.dr.` → family 'Simon', `Emmanuel Kofi Gavu (Dr.-Ing.)`, `Sundari S.Pd.,M.Pd.` → family 'Sundari'); ORCID's field agreement stays 1,478,713 of 1,831,533, the 5 changed records' filers having typed the degree into the family box. One move trades one wrong family for another: `Dr. Fr Rinaldo DIRICCHARDI MUZGA - PhD; Lic.Theol.` reads family 'PhD;' where it read 'Lic.Theol.'. No other local corpus moves. Re-taken on the commit widening the hyphens to rules/O6's set, unchanged.
- **2026-11-06 #1104 — A TITLE LISTED WHOLE WITH A PERIOD INSIDE IT CHAINS WITHOUT A FINAL ONE; A TITLE ONLY BY A CHUNK, AND ONE A HYPHEN ALONE JOINS, STILL NEED IT.** #1116 kept the final period, so `Maria Rossi Dott.ssa` read family 'Dott.ssa' though `dott.ssa` is listed whole, while `John Smith Msc.Ed` reads suffix 'Msc.Ed', the trailing suffix peel reading vocabulary alone. The period was required because a bare title word ending a name is often a surname (`Mary Jane Pope`), and a word with a period inside it is none: the period inside marks it as cut short as a final one would. The narrow half of the question #1104's 2026-11-06 comment set out, taken now: classify marks a title the vocabulary lists whole whose letters a period joins, a hyphen beside it or not (`JOINED_TITLE_TAG`, `_vocab._JOINED_WORD`), and the chain takes it without the shape test, as do `_weighed` and P13's trailing title. 16 listings carry it (2026-11-06; `from nameparser import Parser; from nameparser._pipeline import _vocab; L = Parser().lexicon._sets; [w for w in L.titles if '.' in w and _vocab._JOINED_WORD.match(w)]`, no locale pack adding one): the Italian abbreviated salutations and honorifics (`sig.ra`, `sig.na`, `dott.ssa`, `prof.ssa`, `gent.mo`, `gent.ma`, `gent.le`, `ill.mo`, `ill.ma`, `preg.mo`, `preg.ma`, `ch.mo`, `ch.ma`), `dipl.-ing`, `priv.-doz` and `univ.prof`. Each reads as `Prof.` does in the same name: 30 shapes × `Dott.ssa`, `Priv.-Doz`, `Sig.ra` × 3 orders, fields and reports, none apart.
SUPERSEDES: the 2026-11-06 #1116 entry's required final period, for a title listed whole with a period inside it.
- **Left: a title only by a chunk** (`John Smith Lt.Gov`, `Dr.PhD`, `St.John`) keeps the final period: that is the any-chunk reach #1104 asks about for brackets, one answer to serve both slots.
- **Left: a title only by a chunk** (`John Smith Lt.Gov`, `Dr.PhD`, `St.John`) keeps the final period: that is the any-chunk reach #1104 asks about for brackets, one answer to serve both slots. (Answered by the 2026-11-07 #1131 entry: every chunk, so `Lt.Gov` chains and `Dr.PhD` and `St.John` keep it.)
- **Left: a title a hyphen alone joins** (`John Smith Co-Founder` → family). A hyphen joins whole words as often as abbreviations, and the one hyphenated abbreviation that ends a name in the corpora, Belarusian and Ukrainian `д-р`, is a CREDENTIAL there to CLDR (its `credentials` field; the same word is in its `title` field in front), so reading it as the title moved the family toward CLDR's and the title away from it: 9 changes against `cldr_agreement.json` in the first build, 3 title regressions among them, which this narrowing withdrew.
- **Left: a dotted title that may be a given name** (a caller's `add("x.y", kind="title").add("x.y", kind="given")`, which compiles into `titles_ambiguous`, rules/H9): classify marks only a word of `titles`, so rules/H5's H9 precedence decides it as it decides any title that may be a given name: the chain takes it with a final period only where its title reading is written short (`abbreviation=True`, as `maj` is), and otherwise it is a name word with or without one (`John Smith X.y.` → family 'X.y.'); no shipped word is one (found by the code review, the decision bullet's first wording corrected by the second-round review).
- **Pinned** by tests/v2/pipeline/test_pieces.py's test_a_listed_joined_title_reads_as_prof_does, one shape per reader of the mark (P13's connective, the maiden take, the particle run's weighed word), each of which passed the suite with its read removed until the code review's mutants found it.
- **Measured** against `34812254` (2026-11-06, `tools/differential/measure.py --base`): the committed corpora move only rules/H5's own example (`Maria Rossi Dott.ssa`); CLDR, GND and Wikidata agreement match their records; no local corpus moves. A rare writing, then, settled for its consistency with the listing, which already read it as a title in front. In brackets only the academic five read as the title (`John Smith (Dott.ssa)`, `(Prof.ssa)`, `(Univ.Prof)`, `(Dipl.-Ing)`, `(Priv.-Doz)`); the salutations and styles read as a nickname there on both trees (`Maria Rossi (Sig.ra)` → nickname 'Sig.ra', as `(Mrs)` does), so for those eleven the bare and bracketed spellings disagree as title and nickname where they disagreed as family and nickname, found by the design-docs review and left to S1, with #1104.
- 2026-11-07 #1131 — A WORD EVERY CHUNK OF WHICH IS A TITLE CHAINS WITHOUT A FINAL PERIOD. The question the 2026-11-06 #1104 entry left for brackets and the end of a name, answered with decisions/S3's entry of this date: every chunk, not any. Classify marks a word with interior periods every chunk of which is title vocabulary with `JOINED_TITLE_TAG`, as it marks a title listed whole (`_vocab.period_joined_title`), so the chain, `_weighed` and P13's trailing title take `John Smith Lt.Gov` (title 'Lt.Gov', where 1.4.0 through 2.8.2 read family 'Lt.Gov') and `Smith, John Lt.Col`, and in brackets rules/S1 reads it as the title (`John Smith (Lt.Gov)`). A word a title only by some chunk (`Dr.PhD`, `St.John`) still needs the final period, the chunk beside the title being no title. ctgov-officials' `Reva PROF.DR` reads title 'PROF.DR' (measured with decisions/S3's entry).
Loading
Loading