Skip to content

Ph. D. Van Johnson has no surname: a leading suffix displaces the particle like a title used to #371

Description

@derek73

A leading suffix displaces a particle out of leading position exactly as a title used to before #367, so the chain fires and the name ends with no surname:

Ph. D. Van Johnson    given='Van Johnson'   family=''   suffix='Ph. D.'

That is the same defect #367 was filed for (Sir Van Johnson → given Van Johnson, family ''), reached through a suffix-shaped leading piece rather than a title-shaped one.

Why #367 fixed only the title half

The transparency scan steps over a piece that can only be a title. Suffix pieces are deliberately not skipped, and the reason is real but was recorded backwards in that PR (corrected in #370): skipping them moves Van out of the family and into the middle for the shapes whose leading piece assign puts in given:

                       shipped                          suffix-skipping variant
Ph.D. Van Johnson      given='Ph.D.'  family='Van Johnson'   given='Ph.D.'  middle='Van'  family='Johnson'
II van Gogh            given='II'     family='van Gogh'      given='II'     middle='van'  family='Gogh'
Esq. van Gogh          given='Esq.'   family='van Gogh'      given='van'    family='Gogh'

So a blanket "skip suffixes too" trades one defect for another. Ph. D. Van Johnson gains a family name; III van Gogh and Esq. van Gogh get worse.

The distinction that matters is what assign does with the leading piece: Jr. Van Johnson is already correct because jr is in TITLES and the piece is a title. The broken shapes are the ones where the leading piece is suffix-shaped but lands in given.

Measured scope

The suffix-skipping variant is a no-op over all 751 differential corpus names and passes the full suite, so there is no baseline evidence either way — the decision rests entirely on which of the shapes above matters more.

Suggested framing

Rather than skipping suffix pieces wholesale, the question is whether a leading piece that assign will not treat as a name should participate in the leading-particle exception at all. That is a narrower rule than either alternative and would need its own measurement.

Pinned by tests/v2/pipeline/test_group.py::test_a_suffix_shaped_leading_piece_is_not_stepped_over as of #370, so a change here announces itself rather than passing silently — before that test, the mutation flipped this decision with a green suite.

Split out of #367 so that PR stays one mechanism.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions