Repository navigation
Should John Smith XYZ read XYZ as a credential when no wordlist has those letters? #516
Description
Activity
PR #527 answers this issue's switch question for the single-letter shape: there is no switch. The
Lexicon.conjunctions_ambiguoussubset is the knob (removeeto restore joining, addyfor a Dutch-style reading), and the "written wholly in one case" fact is computed once per parse at classify time over the name's own words (a maiden clause and delimited content excluded). The all-caps acronym half of this issue would read that same fact at the suffix slot; the dotted half needs no case fact at all.- added a commit that references this issue
on Sep 19, 2026 Shipped in 2.4 (PR #530), as two
Policyswitches with different defaults, which is the answer to the question this issue asked.unlisted_dotted_suffixes, default True: an unlisted token of two or more alphabetic period-separated chunks joins the ambiguous credential class by shape, and the words-to-spare rule reads it.John Smith X.Y.Z.gives suffixX.Y.Z.,Jack X.Y.Z.keeps its family,John Smith, A.B.gives suffixA.B.andSmith, A.B.keeps the given-name reading from #29. All four reportsuffix-or-name. Case is irrelevant here because the periods are the signal. Whole-token vocabulary still wins (M.A.,Ph.D.), a lone trailing period is not the shape (John Smith Xyz.stays a family name), digits are not chunks (John Smith 1.4), and leading runs such asJ.R.R. Tolkienare untouched.unlisted_caps_suffixes, default False: the same for an all-caps word found in no wordlist, in a mixed-case name. It is off by default because French and Korean records write surnames in capitals. With it on,Jean Pierre DUPONTgives familyPierre, suffixDUPONT, and a swallowed family name is the worse failure. Two-wordJean DUPONTandMinjun KIMkeep their family either way. With it on,John Smith RAIandAhmad Jayadi, CHAread as credentials again, which is the payback for #342 that this issue proposed.One accident retired whether or not the first switch is on: a dotted word whose only vocabulary match was a single ASCII character was reading as a generational suffix.
Jack X.Y.I.gives familyX.Y.I.again, which is 1.4.0's reading, whileMsc.Ed.,JD.CPA,Lt.Gov.andJ.씨are untouched.Neither switch reaches the v1
ConstantsAPI.HumanNametracks the parser's defaults, so the dotted reading reaches it and cannot be turned off from there. Recorded atdecisions.md#S2.- added 7 commits that reference this issue
on Sep 22, 2026
parse("John Smith XYZ")reads middleSmith, familyXYZtoday, and so doesparse("John Smith X.Y.Z."). Every post-nominal this library recognizes, it recognizes from a wordlist, so an unlisted credential is a family name — which is fine until the wordlist is wrong in the other direction, and #342 has just made it wrong for two words on purpose. Removingraiandchain 2.3 costJohn Smith RAIits credential reading, the accepted price ofAishwarya Raikeeping her surname. This issue asks whether shape and position could pay it back.Two shapes, both position-scoped. (1) An ALL-CAPS acronym standing in the suffix position of a MIXED-CASE name:
John Smith XYZ,John Smith, XYZ. The case contrast is the signal, so an all-caps name gives none —JOHN SMITH XYZmust keep reading familyXYZ, and that carve-out is half the design. (2) A DOTTED acronym in that position regardless of case:John Smith X.Y.Z.andjohn smith x.y.z.should both read suffixx.y.z., because the periods carry the signal. Measured 2026-09-07, none of the four reads as a suffix today.The dotted half is already half-implemented by accident, which is the strongest evidence here. The interior-period split (rules.md#S3) reads a trailing dotted token chunk by chunk, and a last chunk that is a Roman numeral (
i,v,x) is suffix vocabulary, soJohn Smith X.Y.I.andJohn Smith R.A.V.DO read suffix whileJohn Smith R.A.X.does not. Same shape, same position, different answer, decided by whether the last letter happens to be I, V or X. Nothing is pinned on that and it is not a feature.Relation to #490, which proposed recognizing a credential by shape where it collides with existing vocabulary. This is #490's idea WITHOUT the collision part: the collision cases are the ones a wordlist already handles, and the gap is the letters no wordlist has. Recorded as a parking-lot bullet in
decisions.md#suffix-acronym-collisions.Relation to #383, which asks whether
Jose E Maria Santosshould join likeJose e Maria Santosdoes. That is the same signal read at a different position: a single letter is a conjunction only when the input is mixed case and the letter's case says so. Whatever criterion this issue settles on for "the input is mixed case and the word in question is upper case" is probably the criterion #383 wants too, and the two should share it rather than each growing one.What needs deciding.
suffix-or-nameambiguity.capitalized(force=True)overrides the mixed-case default for capitalization — and whether ShouldJose E Maria Santosjoin likeJose e Maria Santosdoes? (the single-letter connective's Latin-capital veto was never adjudicated) #383's case-sensitive behavior should ride the same switch or a similar one.