You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
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
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.
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.
Activity
docs(#397): the core-beside-a-link deviation is on the record as #538,…
refactor(#535): exhaustive reader dispatch, and the comments the revi…
Merge pull request #550 from derek73/claude/535-maiden-clause-trailin…
derek73 commentedon Sep 27, 2026
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 Solernow keeps maidenPuig Mr., as the same text without the dash does. It had readPuig Mr. i Soler.Smith, John, PhD née Puig - i Solerstill keeps maidenPuig i Soler.Smith, John, PhD - i Solergives suffixPhD, 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 Solerinto 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_writtenpins 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.Fix what the PR-review-toolkit pass on #549 found
fix(derek73#538): a delimiter core is stepped over beside a link
docs(derek73#535/derek73#538): decision records, release notes and pr…
docs(derek73#535/derek73#538): scope the new claims to what holds
Part a trailing suffix part at a declared delimiter as a comma would (d…
Fix what the review of derek73#549 found