Repository navigation
Conversation
…s the family (#1187) Under Turkic handling, a name of exactly three name words ending in a standalone patronymic marker reads the father's name and the marker as the family, as #1253's decision states for a Kyrgyz name with no surname: Бекмырза Чолпонбай уулу under locales.TR_AZ gives family 'Чолпонбай уулу', where it gave 'уулу'. Two words and five keep the positional reading. The default does not move. suggest_measure's TURKIC comparator takes the father's name and the marker for such a name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d correct its record From review: with the East Slavic rule on, O1 could rotate a marker-first name and the new branch then folded the patronymic into that family; the branch now requires the marker to be the last name word. rules/O2 gains a Precedence bullet over O6, its bound-given-name and suffix-comma boundaries as Accepted bullets, and its Signal line; O6, O7 and decisions/R9 follow. decisions/O2's figures state their recipes, the suggester's TURKIC comparator change is described against the recorded table, and the matching cost and the suggester's narrower vote are recorded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a marker (#1187) _suggest._patronymic now votes TURKIC where rules/O2 reads a name: three name words with the marker last, as well as four. A group of Kyrgyz names with no surname decides the rule. suggest_measure moves 5 cells, none in the population rows; the harness proof holds. Adds the test rows review asked for: one case and decomposed markers, a five-word name under two_family_names, and the TURKIC comparator's truth. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the round-2 review: the name count is over the names both trees hold, uz_senate's Cyrillic spellings are aliases, and the release log says 1.4.0 read the shape with Turkic handling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the vote's inherited widths From the round-3 review: the three-word vote no longer refuses a marker among the first two words, which the rule reads (Oğlu Ahmad oğlu); the vote's widths inherited from the four-word vote are recorded in decisions/group-suggestion, and decisions/O2's suggester bullet points there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1187. Refs #1253.
Under Turkic handling (
locales.TR_AZ, orPatronymicRule.TURKIC), a name of exactly three name words that ends in a standalone patronymic marker now reads the father's name and the marker together as thefamily. The patronymic view already held the same two words.1.4.0 (with Turkic handling) through 3.0.1 read middle
Чолпонбай, familyуулу. The group suggester now votes Turkic for the same shape, so a list of such names gets the rule.This is the second leaf of #1253's decision. Its first statement:
familyis the name a convention files a person under, and a Kyrgyz name with no surname files underFather uulu.The rule (rules/O2, the Turkic rotation)
Уулу Аскар Бакытовичkeeps familyУулу, patronymicБакытович). Review found that the first version got this wrong.Cavad oğlu→ familyoğlu;Abdul Rahman Ahmad oglu→ familyoglu;Aidai Mederbek kyzy, PhD→ familykyzy.two_family_namesAli Hasan oglureads one family unit (surname1Hasan oglu) where it read two."Ali Ahmad oglu" [tr_az] → family="oglu"moves. Its 2026-07-02 decisions entry gets a superseded note, not a rewrite.Gate: measured before the code (2026-11-12)
All parliament figures in this PR are from the
opensanctions-parliamentsfetch of 2026-11-12 (23 datasets, 24,066 names). The Turkic chambers' counts are the same as in the 2026-11-08 fetch. Other figures come from the fielded local corpora:kg_jogorku_kenesh(90)уулу, 1кызыaz_parliament(124)SURNAME Given Father oğluuz_senate,uz_legislative_chamber,tm_mejliskz_mazhilis,kz_senateFather kyzy/uulu, 2 the marker alone; UZ 28 two-wordSurname Father qizi)Father Uulu/Father KyzyDecisions for the maintainer
Father uuluas the family? (Бекмырза Чолпонбай уулуgives familyуулу) #1187's first question). No cached source writesGiven Father oğluwithout a surname except JRC's Russian spelling of Polad Bülbüloğlu, whose surname is exactly the father's name and the marker. Nothing measured argues for splitting the rule by language, so it reads all Turkic markers alike.Ahmed Ogluand ORCID'sGunel Kizifile the marker as the surname._suggest._patronymic, so a three-word name with the marker last votes Turkic. Edge rows cover two, three, four and five words, a family comma and a maiden clause. A maiden clause already voted on master, through the four-word shape, and R9's Turkic arm reads it. Nothing else in_suggest.pychanges; the Should an ALL-CAPS word in a mixed-case name mark the family name?DUPONT Jeangives givenDUPONT#659 worker's second PR touches a different function there.Ali Ahmad oglu/Ali A. oglureads familyfamily-initial, which is opt-in. Before, the initial sat in the middle and the pair was consistent. In exchange,Ali Ahmad oglu/Ali Ahmadand the Kyrgyz name with or without its marker become consistent (part-of-other).What moved
config_diff.py diff default plain:TR_AZ plain:TR_AZ+RU --committed --local all --match <the marker alternation stated in decisions/O2>with--readingsin both trees and compared line by line, over the 947 names both trees hold.TR_AZ: 489, every one middle → family. 468 are Kyrgyz; the rest are Uzbek, Kazakh and Azerbaijani names of the same shape, plus the committed conventions rowAli Kara Oğlu.TR_AZ+RU: the same 489.local_agreement.py --locale tr_az --base <master>:suggest_measure.py --base(this tree's comparator on both sides): 5 cells moved, none in the population rows (the same-order rows are unchanged).kg_jogorku_keneshrow:{T}and{E,T}86/90 → 90/90.kg_jogorku_kenesh's rule votes, 85 for and 0 against → 85 for and 4 against, under both bases. The list is still decided East Slavic.id_dpr's 0/0 → 0/1 under both bases (Y. JACKI ULY), still undecided.nothing,{E}andsuggestread 86/90, and{T}and{E,T}stay 90/90.Parser.suggest's docstring, docs/suggest.rst or decisions/group-suggestion moves.Checks
uv run pytestwith thejaextra, on the head: 46,055 passed. Without it, on the first commit: 45,999 passed. Python 3.15 in its own environment: 45,999 passed.uv run pytest -n0 -m serial: 35 passed.uv run mypy,uv run ruff check,tools/vocab/build.py --check: clean.sphinx-build -b doctest docsand-W -b html: clean._TURKIC_THREE(tests/v2/pipeline/test_post_rules.py) or a test beside it that fails when the condition is removed. Each was checked by mutation.Reviews
Each review ran as a subagent in its own detached worktree on the pushed head, with a read-only master checkout beside it.
Уулу Аскар Бакытович), and the new branch then folded the patronymic into that family. Also: the suggester's vote was narrower than the rule. The matching cost for a father's name written as an initial was unrecorded. A boundary example contradicted O2's statement, and O2's Signal line was stale.len(families) == 1condition was unguarded. The_turkic_trutharm was untested. The O6-split concern had lost its only row. NFD and all-caps markers were unpinned. The NFD line in decisions/O2's Standing was stale.Oğlu Ahmad oğlu). The vote is wider in four shapes inherited from master's four-word vote: a suffix comma, a bound given name, a final full stop, a bracketed marker. decisions/O2's suggester bullet was stale.🤖 Generated with Claude Code