Skip to content

State what family and the patronymic view hold where a convention has no family name (#1253, #1203) - #1367

Merged
derek73 merged 5 commits into
masterfrom
docs/issue-1253-family-and-fathers-names
Nov 13, 2026
Merged

derek73 merged 5 commits into
masterfrom
docs/issue-1253-family-and-fathers-names

Conversation

@derek73

@derek73 derek73 commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Closes #1203. Refs #1253.

This records #1253's decision in the rules, and settles #1203 (Ethiopian names) as the decision says: no default reading changes. It touches only docs; no library code changes.

What it adds

Measured (2026-11-12, master 2b39f23)

  • House of Peoples' Representatives (et_hopr, from the opensanctions-parliaments fetch of 2026-11-12, 23 datasets):
  • ORCID (config_diff.py score default 'default@middle_as_family=1' --group ET --group ER):
    • Ethiopia: 91.95% by default against 70.43% with middle_as_family (18,794 records).
    • Eritrea: 92.24% against 72.41% (232 records).
  • The matching table in the decision comment reproduces cell for cell. Under the fold, a swapped father and grandfather are consistent (Abiy Ahmed Ali / Abiy Ali Ahmed), where the default matcher keeps them apart. Under either matcher, a two-word name whose second word is the other name's grandfather is consistent too. The recipe says both.
  • The fold's other cost. A father's name written as an initial joins the family under the fold. So Dawit B. Tesfaye / Dawit Bekele Tesfaye, consistent by default, reads family family-initial, an opt-in outcome, and conflicts. Accepting family-initial on the folded matcher restores it; the recipe shows both, and the decisions entry records it as accepted. A title the vocabulary does not list (Ato) reads as the given name, so Ato Dawit Bekele Tesfaye / Dawit Bekele conflicts under either matcher.

Not re-taken: #1203's ORCID box splits and its Wikidata P734 count. The decisions entry quotes them as the issue's 2026-11-08 figures.

Found while writing it

Checks

  • uv run pytest, on the head after merging master (972addf): 46,001 passed. Python 3.15 in its own environment: 45,969 passed.
  • uv run pytest -n0 -m serial: 35 passed.
  • mypy and ruff: clean.
  • sphinx-build -b doctest docs (846 tests on 1305d26, 0 failures) and -W -b html: clean.
  • python -m doctest README.rst: clean.
  • Snapshot: no reading moves. The rules corpus gains the two O4 examples, read by default.
  • No release-log bullet: a docs-only change like this has none in recent releases.

Reviews

Round Review Found Done
1 (974e17f) design-docs-reviewer The Background said the Kyrgyz and Mongolian readings are "what position gives", which is false on master and contradicts rules/O2. The decisions file pointed at entries that exist only on the unmerged leaf branches. Its "by position today" was false for three of four examples (Burma's San). The Open line contradicted its Log on #1165. R9 narrowed "overlap". All fixed in a2a5c36.
1 comment-analyzer The recipe's "different father" example was really a different grandfather, and its caveat missed the swapped-order false positive. The heading said "no family name" where the decision says these names have one. "Abroad" lacked its two-word qualifier. The recipe gave no reason for keeping the default parser. It used invented relatives of a public figure. folded clashed with the outcome of the same name. All fixed: invented names, the full caveat with doctests, and a measured reason.
1 code-reviewer The same unmerged-pointer and Background problems. Closes #1203 and Refs #1253 confirmed; no release-log bullet needed. Fixed as above.
2 (a2a5c36) design-docs-reviewer Three fresh errors in the corrections. San inside a Burmese name joins the family forward (rules/P2), not by P1's fold. The Background implied a Kyrgyz marker setting a caller can turn on today, which no shipped setting gives. The order-blind comparison is the matcher's, not the fold's. Everything else re-verified: the 21.5 points, the matching table, both builds. Fixed in 0043e81.
3 (972addf) independent docs review (coordinator) The fold's initial cost was unstated. O4's bullet and Standing line 3 were not scoped to the given-first order. Standing line 1 stated as present fact readings that wait on #1237, #1187 and #1231. The Log head counted #1165 as settled. Open omitted #1210. O4 restated R9, and decisions/O4 and R9 had no Elsewhere: pointer. The swapped-order note understated the default's conflict. All fixed in 1305d26.

🤖 Generated with Claude Code

derek73 and others added 2 commits November 12, 2026 12:42
… no family name (#1253, #1203)

rules/O's Background states #1253's first statement, that family is the
name a convention files a person under, and rules/R9 its second, that
the patronymic view may overlap the family. rules/O4 records the
Ethiopian name as an accepted consequence. decisions gains a key for
the decision, with #1203's measurements re-taken where the cache allows.
docs/usage.rst says what family holds for such a name, and
docs/matching.rst gives the matcher for an Ethiopian list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From review: the Background and the decisions entry said the Mongolian
and Kyrgyz readings are what position gives, which holds only once
#1237's pack and #1187's reading land, and pointed at their unmerged
entries; Burma's `Aung San Suu Kyi` loses `San` to the particle fold.
The matching recipe uses invented names, says the fold compares family
words regardless of order (a swapped father and grandfather match),
gives the measured reason to keep the default parser for the fields,
and its heading says "inherited". R9 keeps the decision's "overlap";
the Open line restates no issue.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added this to the 3.1 milestone Nov 12, 2026
@derek73 derek73 added docs Documentation fixes and updates design Changes what the model can express (a shape decision) matching Name matching: Parser.matching(), check() and keys() patronymics Father's names and the patronymic view (rules/R9) labels Nov 12, 2026
@derek73 derek73 self-assigned this Nov 12, 2026
…ition

From the round-2 review: San inside a name joins the family forward
(rules/P2), not P1's fold; the Background says the Mongolian and Kyrgyz
readings need the caller's declaration, without claiming a setting the
tree lacks; the matcher, not the fold, compares a several-word family
regardless of order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73 and others added 2 commits November 12, 2026 15:40
…anding true of the tree

The Ethiopian matching recipe now shows that a father's name written as
an initial conflicts under the fold (family-initial) and that accepting
the outcome restores it, and says an unlisted title such as Ato conflicts
under either matcher. rules/O4's bullet and the Standing lines are scoped
to the given-first order; Standing names which conventions are read today
and which wait on #1237, #1187 and #1231; the Log head no longer counts
#1165 among the issues settled; Open lists #1210; O4's bullet points to
rules/R9 rather than restating it; decisions/O4 and R9 point to the new
key; and the swapped-order note says the default conflicts in middle and
family both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73
derek73 merged commit 25271b6 into master Nov 13, 2026
14 checks passed
@derek73
derek73 deleted the docs/issue-1253-family-and-fathers-names branch November 13, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design Changes what the model can express (a shape decision) docs Documentation fixes and updates matching Name matching: Parser.matching(), check() and keys() patronymics Father's names and the patronymic view (rules/R9)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Where should an Ethiopian father's name go when there is no family name? (Abiy Ahmed Ali gives middle Ahmed; Abiy Ahmed gives family Ahmed)

1 participant