Skip to content

Donald Mc loses its family to a post-nominal reading — the comma-less twin of #380 #454

Description

@derek73
'Donald Mc'   →  given='Donald'  family=''    suffix='Mc'      ← now
'Donald Mc'   →  given='Donald'  family='Mc'                   ← wanted

Smith vd has the same defect (family='', suffix='vd'). Both are the comma-less twin of #380, which fixed Berg, Jan vdfamily='vd Berg' only for the comma form.

rules.md#P6's Accepted clause is false today

the attachment is scoped to the comma form, and the comma-less shapes keep their positional reading.
"Jong Anke de" → family="de"

Measured, that holds for de and do and fails for mc and vd:

'Jong de'    family='de'                ✓ positional
'Smith do'   family='do'                ✓ positional
'Donald Mc'  family=''   suffix='Mc'    ✗
'Smith vd'   family=''   suffix='vd'    ✗

P6's own Accepted says the precedence "sweeps in every word that is both particle and suffix vocabulary — today vd, do and mc", so all three were in scope; only do behaves. The clause's only example is de-shaped, which is why no test catches it.

The cause is one missing vocabulary marking, and it is #342's cause too

SUFFIX_ACRONYMS_AMBIGUOUS is what gates S2's words-to-spare guard. The guard already exists and already works:

word ambiguous? two-token three-token
ma yes Jack Ma → family Ma John Smith Ma → suffix Ma
do yes Smith do → family do
mc no Donald Mc → family '' John Smith MC → suffix MC
vd no Smith vd → family '' John Smith VD → suffix VD
rai no Aishwarya Rai → family '' Aishwarya Rai Bachchan → family Bachchan

The three-token column is already right in every row — a genuine credential after a full name is never at risk. The bug is only where consuming the word empties the family, which is exactly what the words-to-spare guard exists to prevent. So this is #342 again with a different word, and marking mc/vd ambiguous should let the existing guard produce the wanted reading without touching John Smith MC.

Under decisions.md#vocabulary-collisions C-i's "under uncertainty, default to AMBIGUOUS", mc and vd arguably belong in that subset already: both are in NON_GIVEN_NAME_PARTICLES, so each is a name element in the position the credential claim acts on. And C-ii decided vd's collision in the particle's favour — a decision the comma-less case currently contradicts.

Worth measuring before deciding

  • Does marking vd ambiguous disturb Berg, Jan vd reads the Dutch van der abbreviation as a post-nominal decoration #380's comma attachment? P6 is keyed on vocabulary, and Berg, Jan vd / Berg, abdul vd both read family='vd Berg' today.
  • John van Mc already reads family='van Mc' — a particle chain ahead of it wins. Check the fix does not double up.
  • The differential will move. Donald mc is currently classified by fix(suffix-routing) a two-token name ending in a trailing credential acronym in the 1.4.0 ledger; once fixed it stops diffing that way and the rule needs narrowing or deleting, which the dormancy check will announce.
  • Jack M.A. stays as it is — decisions.md#ma-do gates the dotted spellings separately, and that reading is decided.

Kept separate from #342 deliberately: that issue is "rai should not be credential vocabulary at all", whereas mc and vd legitimately ARE credentials and the fix is the guard rather than the wordlist.

Found reviewing #453; recorded in decisions.md's "differential-ledger, the fields-only arc" section as a rules.md defect rather than a ledger one.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions