Skip to content

Ursula von der Leyen geb. Albrecht loses the maiden name — a particle chain swallows the marker where a suffix stops it #399

Description

@derek73

A bare maiden marker is recognized normally, but a particle chain running into it absorbs the marker and the maiden name with it:

Ursula Leyen geb. Albrecht          ->  family='Leyen'                       maiden='Albrecht'
Ursula von der Leyen geb. Albrecht  ->  family='von der Leyen geb. Albrecht'  maiden=''

The same words, one particle chain apart. (Ursula von der Leyen's maiden name is Albrecht.)

The boundary is precise: only a particle that is not the name's LEADING piece

A leading particle chains nothing (rule P4), so it never reaches the marker:

von Müller geb. Schmidt         ->  maiden='Schmidt'   pieces [von][Müller]                     works
zu Guttenberg geb. Schmidt      ->  maiden='Schmidt'   pieces [zu][Guttenberg]                  works
Anna von Müller geb. Schmidt    ->  maiden=''          pieces [Anna][von Müller geb. Schmidt]   mid-name chain
von der Müller geb. Schmidt     ->  maiden=''          pieces [von][der Müller geb. Schmidt]    second particle of a leading run

That last row is worth noting: a leading run of two or more particles still breaks, because the second particle is not the leading piece and its chain fires.

Why

Grouping's prefix chain absorbs everything up to the next prefix or suffix piece (_group.py:270), and its maiden-marker handling runs afterwards (_group.py:420). By then the marker is inside a merged piece and there is no marker piece left to find. A suffix bounds the chain; a maiden marker does not:

Anna von Müller MD              ->  pieces [Anna][von Müller][MD]             suffix='MD'
Anna von Müller geb. Schmidt    ->  pieces [Anna][von Müller geb. Schmidt]    maiden=''

Scope

Both name orders — the default order loses it too, so this is not a consequence of #395. Every bare marker: geb., née, nee. Jane van der Berg née Jones fails the same way. The delimited form is unaffected (Ursula von der Leyen (geb. Albrecht)maiden='Albrecht'), because extract_delimited runs before grouping.

Proposal

Give the chain's inner loop a maiden-marker stop, the way it already has a suffix stop.

Verification is structurally weak here

Of the 751 differential corpus names, 6 carry a bare maiden marker and none of them has a particle ahead of it, so the harness cannot see this class at all — a clean exit will mean nothing. Tests are the verification, and docs/design/rules.md's M1/M2 need the interaction stated with an interacts: pointer.

Also worth deciding

Whether the marker should bound P1's leading run under a family-first order. It counts as an ordinary name word for the leftover placement today, which is why de la Cruz née Vega reports given='née'.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions