Repository navigation
Read a particle phrase as the second given name; leave Kaur and Singh to neither two-name switch (#704) - #1057
Merged
Conversation
…ingh to neither switch (#704) Two name-reading properties, read only by rules/O7 (two given names) and rules/O6 (two family names), so a parse with both switches off moves nowhere: - after_particle, on a given reading: the word behind a particle that writes the second of a compound given name. Under two_given_names, "María del Carmen García" reads given "María del Carmen", family "García"; O6 leaves the phrase where it stands. 23 Spanish words are marked, those ORCID holders write behind a particle in the given box at least nine times in ten; "do Carmo" stays the family. - shared, on a name reading: a name a community gives every member, Sikh kaur and singh. Neither switch takes or completes one, so "Harpreet Kaur Dhillon" keeps middle "Kaur" under either, as the default reads it and as UK PSC filers box it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…'s phrase path, Kaur and Singh to mul.toml - O6 declines a marked particle phrase only given-first, beside a given name of one word: under a family-first order (García del Valle María) and behind a middle (Juan Antonio del Valle de la Vega, which locales.ES reads) it is taken as before. - O7's phrase path leaves a name word that is no lone connective or particle (María del Carmen y), and no Turkic marker's father. - kaur and singh move to mul.toml, so a strict choice keeps them (parser_for(locales.ES, strict=True) read family Kaur Dhillon). - Build-check mutation rows for shared and after_particle. - Docs: O7's When and Then name the particle phrase, its precedence is scoped to marked words; O6's listed-word sentence and Signal line; P2 and mechanisms.md name the new cut; superseded entries get head notes; counts corrected (Kaur 69, 23 words). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…one-word given name, drop a dead particle test, pin the released shapes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rticle-given-names-43f863 # Conflicts: # nameparser/vocab/es.toml
…'s are listed, scope O6's decline to the one-word given name, fold the release bullet into the switch's Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ds the mutations reached O6's count passes over a particle, so a bound given-name pair whose bound word is also a particle (Abu Bakr) read as one word, and O7 took a third (Abu Bakr Carlos García gave given 'Abu Bakr Carlos', against O7's own bound-pair clause). _one_given_word counts it as two. New rows for each surviving mutation: a shared word as the given name, a family written before the given name, the given name's guards on the phrase path, a shared given reading, a pickle round trip, the strict ES parser, and the two tags staying off published tokens. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 4, 2026
Merged
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.
Part of #704: the particle-phrase question O7 (two given names) left open, plus Kaur/Singh. Both are behind the opt-in switches; a parse with both switches off does not move (snapshot: new example texts only, no reading moved; a 16-name × 8-shape grid under every
name_orderand switch pairing, token readings andReading.languagesincluded, moved no default-policy parse againsta1b3e186).What changes
Two name-reading properties, read only by rules/O7 (two given names) and rules/O6 (two family names):
after_particleon agivenreading: the word behind a particle that writes the second of a compound given name. Undertwo_given_names,María del Carmen Garcíareads givenMaría del Carmen, familyGarcía(1.4.0 through 2.8.0, and the default now: givenMaría, familydel Carmen García). O6 leaves such a phrase where it stands (given-first, beside a one-word given name only; under a family-first order or behind a middle it is taken as before), soMaría del Carmen de la Vegawith both switches on reads givenMaría del Carmen(the Should two_family_names leave a known given name out of the family, so "José Luis Pérez" keeps family "Pérez"? #959 entry recorded familydel Carmen de la Vega; superseded in decisions/O6).Maria do Carmo Silvakeeps familydo Carmo Silva.sharedon a name reading: a name a community gives every member, Sikhkaurandsingh(mul.toml, so a strict choice of any language keeps them). Neither switch takes or completes one, soHarpreet Kaur Dhillonkeeps middleKaurunder O7 (was givenHarpreet Kaur) and under O6 (was familyKaur Dhillon), as the default reads it.Each compiles to an internal set (
PARTICLE_GIVEN_NAMES,SHARED_NAMES), tagged at classify, the tag dropped from published tokens. A caller marks a word withLexicon.add("carmo", kind="given", after_particle=True).Design, decided in chat
Options weighed (decisions/O7's 2026-11-03 entry): (A) a phrase reading, (B) a property on the object word, (C) a list on the rule /
[rules], (D) O6's given-name list. B was chosen: the particle cannot carry it (del Carmen/del Río), and B fits the one-word reading model, language choices and strict mode. For Kaur/Singh, an O6+O7 decline (like O7's patronymic decline) was chosen over a view of its own or leaving them alone.Measurements (2026-11-03)
carmen1,261 / 5,pilar322 / 1,valle235 / 26,rosario260 / 27). No Portuguese word reaches the bar (carmo21 / 6,conceição25 / 25), sodo Carmois not marked. Left out by count: unaccentedjesus(Brazil 67 / 41),luz,cruz,paz,dios. Left out despite the count:c.(an initial) andpiero.del Carmengoes in the middle-name box 21 times and the surname box 2.Kaurgoes in the middle-name box 2,354 times, is the whole surname 674 times and goes in the forename box 25 times. ForSinghit is 5,303, 1,885 and 48. ORCID, where a surname follows:Kaurgoes in the given box 70 times and opens the family box 3 times.Singhis also a Rajput and Nepali surname, soRam Bahadur Singh Thakuriunder O6 keeps middleSingh.Review round 1 (fixed in a5ea25f)
García del Valle María, andJuan Antonio del Valle de la Vegaunderlocales.ES); now scoped to the shape O7 takes.María del Carmen y) and skipped the Turkic-marker guard; both refused now.kaur/singhwere in pa.toml, soparser_for(locales.ES, strict=True)still read familyKaur Dhillon; moved to mul.toml.Review round 2: comments and test gaps (6e5d61c, 5557aaa)
Lexicon.default().add(...)), and folded the release bullet into the switch's.Abu Bakr(abuis a particle and a bound word both) counted as one given word, so O7 readAbu Bakr Carlos Garcíaas givenAbu Bakr Carlos, against O7's own bound-pair clause, since Add Policy.two_given_names, the compound given name as a rule kind (3.0, 4g) #954. It is now counted as two (rule row added). New test rows cover:Recorded, not coded
Lim Mei Ling Jessica: accepted. WrittenLim Mei Ling (Jessica)underFAMILY_FIRSTwith O7, it reads givenMei Ling, familyLim, nicknameJessica(decisions/O7 Standing).delsstays out ofca.toml: with the switch off, the property changes nothing, so adelsparticle would still moveMaria dels Àngels Puigfrom middle to family.Docs
rules/O6 and O7 amended (new Except bullets, O7's Then bullet, precedence, Accepted;
rules_budget.jsonre-recorded: O6 +80 words, O7 +101). Both new clauses read a vocabulary lookup at the slot the switch moves, the signal O6's given-name list already reads. decisions/O6 and O7, vocab README property rows, customize.rst (doctested), AGENTS.md compiled-set list, release log.Tests: a recorded negative-control table (
_EFFECT_704, 19 rows, 10 moved by the properties), the caller path, the property and compile tables. Full suite, serial benchmarks, mypy, ruff, sphinx doctest pass.🤖 Generated with Claude Code