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.
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.
rules.md#M2says 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_delimitersis 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 movemaiden.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.