Skip to content

Should John Smith, XYZ read XYZ as a credential by default, even though John Smith XYZ doesn't? #564

Description

@derek73

Policy.unlisted_caps_suffixes is off by default because an all-caps surname is a real writing convention: with it on, Jean Pierre DUPONT gives suffix DUPONT. That convention puts the capitals on the family name, either last with no comma (Jean DUPONT) or before a comma (DUPONT, Jean). It never puts them after a comma behind a full name. The reason for the off default therefore does not reach the comma position, yet the comma position is switched off with it:

>>> parse("John Smith, XYZ")
ParsedName(given='XYZ', family='John Smith')                    # no report
>>> Parser(policy=Policy(unlisted_caps_suffixes=True)).parse("John Smith, XYZ")
ParsedName(given='John', family='Smith', suffix='XYZ')          # reported SUFFIX_OR_NAME

Corpus: every corpus file under tools/differential/ holds 3 names with one comma, two or more words before it, and a single unlisted all-caps word after it in mixed-case input (measured 2026-09-30). All three are credentials, and all three put the credential in given today: Ahmad Jayadi, CHA, John Smith, RAI, The Rt Hon Kenneth Clarke QC MP, HMG.

Proposed rule

Rationale: after a comma behind two or more words, an all-caps word in mixed-case input is far likelier a credential than a given name written in capitals.

Statement: in that position, an unlisted all-caps word of three or more letters reads as a credential at the default, reported SUFFIX_OR_NAME. A two-letter word stays as it is today, because it has the same double-surname hazard as #563's dotted initials (Lloyd Webber, AL, De La Cruz, MJ).

Examples (target readings):

"John Smith, XYZ"       →  suffix="XYZ"                            ambiguity: SUFFIX_OR_NAME
"Ahmad Jayadi, CHA"     →  given="Ahmad"  family="Jayadi"  suffix="CHA"
"De La Cruz, MJ"        →  given="MJ"  family="De La Cruz"         · unchanged: two letters
"Smith, XYZ"            →  given="XYZ"                             · unchanged: one word before the comma
"John Smith XYZ"        →  family="XYZ"                            · unchanged: no comma, the DUPONT position
"Van Buren, MARTIN"     →  ?                                       · see open questions

Open questions

Related: #563, #516.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions