Skip to content

Should a suffix delimiter inside a maiden clause count as a name word beside a link? Smith, John, PhD née Puig Mr. - i Soler keeps i Soler in the maiden name #538

Description

@derek73

With a custom suffix delimiter configured, a delimiter core standing inside a maiden clause can pass as the name word beside a Catalan link, so the link stays in the birth name where the same clause without the core ends before it.

>>> p = Parser(policy=Policy(extra_suffix_delimiters=(" - ",)))
>>> p.parse("Smith, John, PhD née Puig Mr. - i Soler").maiden
'Puig Mr. i Soler'
>>> p.parse("Smith, John, PhD née Puig Mr. i Soler").maiden
'Puig Mr.'

rules.md#M2 says a link inside the birth name does not end it where a name word of the clause stands on each side. A delimiter core is not a name word, so the first reading contradicts the rule. A core between the marker and the clause's first word is refused correctly; only one past the first word passes.

Reach. Unreachable at the default policy, where extra_suffix_delimiters is empty, and it needs a title inside the clause beside the link as well. No corpus or case-row name has the shape. Measured over 802,282 parses under 13 core-bearing policies: 288 generated texts move maiden.

The fix threads the segment's cores into the neighbour lookup so a core is skipped like a connective. It is small but touches three call sites. Pinned as it reads today in tests/v2/pipeline/test_group.py; that test is the one to update.

Found in #537, the follow-up to #536.

Activity

  1. added this to the 2.4 milestone on Sep 22, 2026
  2. added 2 commits that reference this issue on Sep 22, 2026
  3. added a commit that references this issue on Sep 27, 2026
  4. derek73 commented on Sep 27, 2026

    @derek73
    OwnerAuthor

    Fixed by #550 (merged as 81cd6f7), with the skip reading. A delimiter core is stepped over by the link's neighbour search the way a connective is, so the word on a link's side is the one past the core.

    With Policy(extra_suffix_delimiters=(" - ",)):

    • Smith, John, PhD née Puig Mr. - i Soler now keeps maiden Puig Mr., as the same text without the dash does. It had read Puig Mr. i Soler.
    • Smith, John, PhD née Puig - i Soler still keeps maiden Puig i Soler.
    • In a credential tail with no clause, a link beside a core with a credential or nothing beyond it stays a lone suffix word, and the core is dropped (Apply suffix_delimiter only at suffix-consumption sites #206). Smith, John, PhD - i Soler gives suffix PhD, i Soler.

    The boundary reading (a core ends the search on its side) was declined. It fixes the same shape, but it would push the birth-name link in … Puig - i Soler into the credentials. rules.md#P3 gains a separator sentence scoped to connectives that are also generational vocabulary. rules.md#M2 carries the two examples, and decisions.md's #538 entry records the choice. tests/v2/test_properties.py::test_a_delimiter_core_reads_as_if_it_were_not_written pins the invariant over the maiden field. Its recorded control: 6 of 81 texts disagreed before the fix and 0 after.

    Still open: #549. A core that a connective join merges into its piece survives in the suffix text. That covers a core inside a run (… Puig Dr. i - y Soler), a core the link joins across (Smith, John, Puig - i Soler), and a core beside an ordinary connective (PhD - and MD). All of these need a declared delimiter, so none is reachable at the default policy.

  5. added a commit that references this issue on Oct 4, 2026
  6. added 5 commits that reference this issue on Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions