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.

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