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
Josep Carod i Rovira reads family Rovira — Catalan and Polish link surnames with i, which is not a conjunction #397
Catalan (and Polish) link two surnames with i, but i is not in CONJUNCTIONS, so the link is not joined:
"Josep Lluis Carod i Rovira" -> given='Josep' middle='Lluis Carod i' family='Rovira'
"Josep Carod i Rovira" -> given='Josep' middle='Carod i' family='Rovira'
The family should be the whole link (Carod i Rovira), which is how Spanish y already parses today:
"Juan Garcia y Lopez" -> family='Garcia y Lopez'
Why it was left out, and what measurement says
i is the Roman numeral I (suffixes.py:18), and the concern was the collision. Measured by adding i to a custom Lexicon's conjunctions, generation markers do not collide the way expected — every one of these is unchanged:
input
result
what protects it
John Smith I, john smith i
suffix='I'
a generation marker is trailing, and classified before grouping
John I Smith
middle='I'
P3's bare-Latin-capital veto: a capital single letter is an initial and never joins
john i smith
middle='i'
P3's three-word carve-out
Maier, Amy I, Jr.
unchanged
the only name in all three corpora (783 lines) with a bare i token
The collision is real, but it lands somewhere else
A word can hold both tags. With i added it carries conjunctionandvocab:suffix, and _is_rootname() returns False for a suffix piece — so i shrinks the total that P3's carve-out tests (total < 4 in _group.py:200). It therefore needs one more name word than y does before it joins:
with i added to conjunctions:
"Josep Lluis Carod i Rovira" -> family='Carod i Rovira' fixed
"Josep Carod i Rovira" -> family='Rovira' NOT fixed
"Juan Garcia y Lopez" -> family='Garcia y Lopez' (y counts itself toward total)
given + two surnames is the commonest Catalan shape, so adding the word alone fixes the longer names and leaves the common one behind.
What needs deciding
Add i at all — it serves Catalan and Polish.
If yes: should a word carrying both conjunction and vocab:suffix count toward the carve-out's rootname total? That is a C-ii question (set-vs-set collision, docs/design/decisions.md), and it is what decides whether Josep Carod i Rovira is fixed.
rules.md#P3's prose says the vocabulary holds six single-letter conjunctions (y e и і й و); this makes seven. decisions.md#3-0-reevaluations already records that which single letters a tradition wants joined is per-locale policy — i is another instance of it.
Activity
docs(group): cite P3 where the carve-out actually is
feat(vocab): add "abd", and let a dual-membership word join
feat(vocab): add "abd", and let a dual-membership word join
feat(vocab): add "abd", and let a dual-membership word join
docs(mechanisms): SIMULATE-EVERY-OPTION
docs: three workflow notes and one field-note extension
refactor(group): one spelling for "this piece is a marker"
fix(differential,guards): give the two NOT-WANTED regressions their o…
fix(differential,guards): retire the fields-only catch-all for four b…
docs(decisions): record the fields-only ledger arc
16 remaining items
fix(derek73#397): review -- the link joins between NAME words, and a …
test(derek73#397/derek73#461): record the ledger diffs at every baseline
docs(derek73#397/derek73#461): the rules, the decisions and the relea…
fix(derek73#397): a generation repairs as a generation; docs review
refactor(derek73#397): one call answers both sides of a link, and the…
fix(#535): a link the walk stops at, and a released particle title, a…
fix(derek73#538): a delimiter core is stepped over beside a link
docs(derek73#535/derek73#538): decision records, release notes and pr…
ci: collect coverage on 3.14 alone, the job that uploads it
Split the eight two-signal rules: P8, P9, C13, and S2's periods claus…
Require a Standing block in new decisions files, and backfill the fiv…
Give the conjunctions, bound given names and birth markers their lang…
Give decisions/M2 a Standing block (#762) (#818)
Give decisions/P1, P2, P3, P6 and P7 a Standing block (#762) (#824)
docs(decisions): Standing blocks for six named-topic files (#762) (#832)