Repository navigation
Should a word that is both a title and a given name report an ambiguity? (Baron Davis → title 'Baron', no given name) #348
Description
Words that are both a title and an ordinary given name are decided once, in the vocabulary file, for everybody. A word is either in TITLES — in which case it is always a title and shadows the given name — or it is kept out, in which case it is never a title no matter how much surrounding text says otherwise. There is no third state, and neither outcome reports anything: ambiguities is empty in every example below.
The two failure modes
In the list. The title reading wins even where the person's given name is the word:
parse("Baron Davis") # title='Baron' given='' family='Davis'
parse("Prince Fielder") # title='Prince' given='' family='Fielder'
parse("Hon Solo") # title='Hon' given='' family='Solo'
parse("Do Quang Minh") # title='Do' given='Quang' family='Minh'Baron and Prince are the given names of both athletes. Đỗ is one of the most common Vietnamese surnames, so Do leads a great many real names.
Out of the list. The name reading wins even where the title reading is unambiguous from context:
parse("Dean of Chemistry Robert Johns") # given='Dean of Chemistry' middle='Robert' family='Johns'
parse("Duke of Wellington") # given='Duke of Wellington' family=''The conjunction-chain machinery that recognizes Deputy Secretary of State runs correctly here and assembles the whole phrase — it just delivers it to given, because dean and duke are not title vocabulary.
Where the line currently falls
The doctrine is stated in nameparser/config/titles.py:
Cannot include things that could also be first names, e.g. "dean".
and repeated in docs/customize.rst:
That conservatism is why
deanabove isn't in the default vocabulary in the first place: "Dean" is also a common given name, and a default that swallowed it as a title would misparse "Dean Martin" for everyone.
Applied by hand across 711 entries, it lands in different places for structurally identical words. All ten below are peerage or rank words that are also established English given names:
in TITLES |
measured | out of TITLES |
measured |
|---|---|---|---|
baron |
Baron Davis → title=Baron, given='' |
earl |
Earl Campbell → given=Earl ✅ |
count |
Count Basie → title=Count, given='' |
duke |
Duke Snider → given=Duke ✅ |
prince |
Prince Fielder → title=Prince, given='' |
don |
Don Cheadle → given=Don ✅ |
chief |
Chief Keef → title=Chief, given='' |
major |
Major Harris → given=Major ✅ |
king |
King Curtis → title=King, given=Curtis |
dean |
Dean Koontz → given=Dean ✅ |
king behaves better than its four neighbours only because it is also in FIRST_NAME_TITLES, which routes the following word to given instead of family. That is a third mechanism, and it grades the damage rather than removing it — the given name is still gone.
The census of which of the 711 entries collide this way has never been taken. The table above is hand-picked, not exhaustive, and sizing it is part of the work this issue asks for.
Why neither list can simply be extended
Moving dean and duke in misparses Dean Martin and Duke Ellington for every caller — the reason they were kept out. Taking prince and baron out loses Prince Charles and every genuine honorific use. The vocabulary decision is being asked to answer a question the vocabulary cannot see, because the answer depends on the individual name, not the word.
What the codebase already has for this
The 2.0 core solved this shape twice, for other vocabularies. Both mechanisms are subsets of an existing set — they add no words, they narrow how a word already present is read — and both pair with an AmbiguityKind:
| field | narrowing signal | reported as |
|---|---|---|
suffix_acronyms_ambiguous |
punctuation — Jack Ma vs Jack M.A. |
SUFFIX_OR_NAME |
particles_ambiguous |
position — a leading particle keeps its given name | PARTICLE_OR_GIVEN |
Titles have no counterpart, and there is no TITLE_OR_GIVEN kind. Adding one is API-legal in a minor release; AmbiguityKind documents that new kinds may be added in minor releases, and ORDER is already reserved-but-unemitted on the same terms.
So the missing piece is not the reporting machinery — that exists and has a well-worn pattern. It is the narrowing signal: suffix acronyms had punctuation to key on and particles had position, and it is not obvious what titles have.
Candidate signals, none of them settled
- A period. Already works, by accident of the pre-nominal abbreviation inference described in Should a title written after the name still be a title? ("John Smith Prof." → family Prof.) #316:
parse("Dean. Robert Johns")gives title=Dean.today, whileDean Robert Johnsdoes not. Cheap and safe, but bareDean Smithis the common written form and stays undecided. - A title chain or connective.
Dean of Chemistry,Assoc Dean,The Hon— a second title word or anofmakes the title reading near-certain. Handles the excluded-word cases well; does nothing for the two-wordBaron Davisshape. - Letter case. The signal Use letter case to disambiguate suffix vs. surname: "Jack MA" vs "Jack Ma" #289 proposes for
Jack MAvsJack Ma. Whether it generalizes to titles is unclear, and it is unavailable on all-caps and all-lowercase input. - Arity. Whether a viable given name remains once the word is taken as a title. This is the signal that would actually decide
Baron Davis, and also the one most likely to change existing parses. - Report and don't decide. Keep whichever reading is more likely and emit
TITLE_OR_GIVENso callers who care can branch. Weakest behavior change; may be the right first step regardless of which signal is chosen later.
Open questions
- Is the ambiguity report alone worth shipping, ahead of any signal that changes a parse?
- Do the currently-excluded words (
dean,duke,earl,don,major) come into the vocabulary as ambiguous entries, or does this only narrow the ones already shipped? honanddocurrently produce a title on every input. Any narrowing changes that, anddoin particular affects a large class of Vietnamese names. Blast radius needs measuring on the differential harness before a rule is picked, not after.- Does
FIRST_NAME_TITLESfold into this, or stay a separate mechanism? It answers a different question (what follows a title) but overlaps in effect. - Is
TITLE_OR_GIVENthe right kind name, given the word may equally shadow a family name in family-first order?
Related
- Should a title written after the name still be a title? ("John Smith Prof." → family Prof.) #316 — the pre-nominal period inference these candidates would build on, and the same
TITLES-collides-with-surnames hazard read from the trailing end - Use letter case to disambiguate suffix vs. surname: "Jack MA" vs "Jack Ma" #289 — letter case as a disambiguation signal, for the suffix vocabulary
- Renunciate honorifics (
Swami,Guru,Baba) put the monastic name inlast#346 —Swami/Guru/Baba, the adjacentFIRST_NAME_TITLESmembership question
Activity
docs(design): record the vocabulary-collision criterion
feat(types): AmbiguityKind.TITLE_OR_NAME, reported where the title pe…
docs(design+release): the conventions are reported — #449 and #491 re…
fix(titles): prince and princess join the given-name titles
derek73 commentedon Oct 4, 2026
The surname half, under
FAMILY_FIRST(found 2026-10-04):The two inputs have the same shape (H1: a title plus one name word gives the family), so only vocabulary separates them:
grafis borne as a surname, andherrisn't. UnderFAMILY_FIRSTthe leading position is where the surname stands, so a title-and-surname word collides exactly there. Any ambiguous-title subset this issue settles should cover surname bearers (graf,king,bishop,judge, and #606'sgreve/graaf/knight) as well as given-name bearers. The declared order is also a narrowing signal: underFAMILY_FIRST, an ambiguous title word followed by exactly one name word could take the name reading (Graf Steffi→ familyGraf, givenSteffi).Dr. Kovács JánosandHerr Schmidtwould keep their titles, sincedrandherraren't surnames.derek73 commentedon Oct 21, 2026
Evidence for this question, from the title classification (#773, which listed these but left the question here).
Title words that are also borne as given names, by US SSA given-name births since 1880 (a lower bound: years under 5 births are not published), from
tools/name_usage.pyoffline sources on 2026-10-20. 31 of the 609 ASCII title words of three or more letters have at least 1,000:(The rest of the 31: knowledge, mahdi, author, pharaoh, empress, ranger, colonel, burgess.)
Each of these reads as a title when it opens a name (
Marquis Johnson,Royal Smith,Deacon Jones), asBaron Davisdoes above. decisions/vocabulary-model's decision 16 says a title that is also a given name is decided one word at a time, as decisions/salutation-titles did for the graf class; these counts are where those decisions would start. Phase 2 (#752) may change the shape of the question: a word with both a title reading and a given reading becomes a derived ambiguity.Recompute:
Read King as a given name outside a title phrase (#752 phase 2j, #348) (
Read the given names Prince and Princess as names outside a title phr…
derek73 commentedon Oct 27, 2026
The question this issue asked, whether a word that is both a title and a given name needs a third state between "always a title" and "never a title", is decided. The rest is per-word work, which moves to #913.
The mechanism is rules/H9 (the title phrase), from #894: a title word that has a given-name reading is a title only inside a title phrase (a style or modifier before it, a title that attaches to it, or
ofafter it), and a name word everywhere else. Where it stays a name and no comma has marked the given name, the parse reportstitle-or-name. Which words get a given reading is decided one word at a time, by their bearer counts (decisions/vocabulary-model's decision 16), each word's cost recorded in decisions/H9.The open questions:
Dean KoontzandMajor Harrisread given 'Dean' and 'Major' and reporttitle-or-name.Grace, which is a title only in a phrase such asHis Grace, reports nothing.Dean of Chemistry Robert Johnsnow gives title 'Dean of Chemistry', given 'Robert'.dean,justice,major,marshalandgracecame in this way in Read a title that is also a given name as a title only inside a title phrase (#752, phase 2i) #894.honanddo.doleft the titles in Should parse("Smith, Jr.") put "Jr." in title rather than suffix? #296's audit, soDo Quang Minhreads given 'Do'.honis unchanged and is listed in Should Baron, Bishop, Judge and the other title words borne as names read as names outside a title phrase? (Baron Davis→ title 'Baron', no given name) #913.FIRST_NAME_TITLESfold in? No. The given-name titles (addresses = "given") answer a different question, what follows a title, and they stay separate.title-or-name. The report names the field the word lands in, so family-first order is covered.This issue's examples on master (7e00c2f, 2026-10-27):
Prince FielderKing CurtisDean Koontztitle-or-nameDean of Chemistry Robert JohnsDo Quang MinhBaron Davis,Count Basie,Chief Keef,Hon SoloDuke of Wellingtondukeis not title vocabulary)The other words phase 2j moved, each with its cost recorded in decisions/H9 (a ruler or royal written with the bare title reads it as a name):
wing(#896),mahdiandbard(#898),buddha,siddhaandgyani(#900),sultanandsultana(#903),shaikh(#906), andsheikh,sheik,shekh,shaikandcheikh(#912). A v1Constants().titlesstill lists every title 2.6.0 listed (#904).Closing in favor of #913, which lists the title words still read as titles that are also borne as names.
Close #752's open questions in decisions/ and point the title words l…