Repository navigation
Conversation
…RCID for review A familiar form is rebuilt from pairs the project finds in data it may use, never from a compiled list (decisions/shipped-data-licences, 2026-11-12 #1370 FACTS WE MEASURE): one ORCID holder (CC0) writing a single given name in the box and another word before the same family name in a credit or other name. The tool writes candidates and their counts to the cache, with GND's attestation on request and a seeded, stratified pilot draw; it reads no list of familiar forms but the nicknames list and its refusals, to leave out what was reviewed. Nothing is written into the vocabulary yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test_the_check_refuses_every_read_4i_a_moved counts every read of a Lexicon's sets the check would refuse with the move undone; the new tool reads the default's titles, 20 -> 21. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… review The review now keeps every category it assigns: a spelling of one name ships as a listed spelling, a familiar form as a familiar reading, and a transliteration or translation is recorded. So a pair in two scripts is kept and shaped as one rather than dropped, each row says its source and shape, and the nicknames list's pairs refused as spellings, read before only as familiar forms, come back as candidates of their own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve the layering control's count: master's order_names.py reads four, 20 -> 24, and familiar_candidates.py one, 24 -> 25. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…f its own
A spelling is a matching-only kind, spelling = { spelling_of = [...] },
compiling into SAME_AS's given group alone, so the name match reads it
as listed-spelling and no parse reads it: unlike a given reading's
same_as, it is no name written short (GIVEN_NAME_ABBREVIATIONS) and
gives the word no name reading that could gate it.
tools/vocab/familiar_reviewed.tsv records the review of 1,633 candidate
pairs (ORCID at 3+ holders and the nicknames list's refused spellings),
each read by two independent readers; familiar.py writes the 665 pairs
both called familiar forms and the 460 both called spellings, less five
held, in the file of each language their holders' countries write, the
nicknames list's beside them in en.toml.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A given name one word of which is an alternate spelling and another a familiar form reads familiar-form only where both outcomes are accepted, and otherwise the one refused; and the middle role's words combine so an accepted weaker outcome never hides a stronger one the caller refuses, which also closes the older case of hyphenated-part hiding familiar-form. The review of #1379 found both, the first breaking the key guarantee. Also: the refusals of a matching-only add offer code that runs; the spelling kind's tests stand beside the familiar kind's; match_diff's tolerance of an outcome a base does not know has a control. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in the name match Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rrected Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The review of the fold rules found three places where the transcription reached one side and not the other: a word or text mixing the two writings (Ødegård / Odegaard), a hyphenated part, and the vocabulary's own listed spellings, familiar forms and alternate spellings, which a caller's entry holding the letter missed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The review of 492e61d found asking a familiar form or an alternate spelling from both sides read one side's fold against the other's transcription and missed two transcriptions (Guenni / Guenther), and a name's keys growing 2^k in its transcribable letters (530 for one Danish name). The pairs are indexed under every form of both names, read one-sided and symmetric by construction again, and a key writes the transcription digraphs as their first letter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The review of 87b1d5c found a caller's pair written with U+2010 read one way only, the index keyed by that hyphen and the match reading the hyphen-minus. The hyphens move below the pipeline into _lexicon, whose forms write them as the hyphen-minus; and the keys' prose says a key writes the transcription digraphs as their first letter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
he.toml and the reading index regenerated by familiar.py and build.py over master's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
derek73
marked this pull request as ready for review
November 13, 2026 09:11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Rebuilds the familiar forms #1372 dropped from pairs found in CC0 data and reviewed, adds an opt-in outcome for a name spelled two ways by choice, and folds the spellings a keyboard forces into the default.
What changes for a caller
folded, widenedŁukasz/Lukasz,Pınar/Pinar,Müller/Mueller,Ødegård/Odegaard,Srđan/Srdjan, in every role, from either sidealternate-spelling, newYuliya/Iuliia,Aleksey/Alexey,Olga/Olha,Saeed/Saeid: 429 pairsfamiliar-form, rebuiltKasia/Katarzyna,Kostas/Konstantinos,Seun/Oluwaseun: 2,848 pairs, the nicknames list's plus 668 from the reviewA chosen spelling is not default: people sometimes spell a name differently on purpose, to be told apart. Only a spelling no one chooses, which a keyboard or an encoding forces, is
foldedby default.Keys change for names holding
ae,oe,ue,aaordj(decided, as its cost is modest; matching is new in 3.1, so no caller has stored a key). A key now writes those digraphs as their first letter (Doekeysdo), so every spelling ofMüllercuts one key and a name's keys don't grow 2^k with its forms. Measured under the default setting, master against this PR:jorgensen;m, 5 → 38 (Jørgensen / Joergensen / Jorgensen, which the folds now match). The collapse's own merges are about 2× at most:sad;*(Saad / Saeed) andxu;y(Xue / Xu).do;*grows from 363 to 412 names in orcid (largest 112 → 118) and from 43 to 101 in psc.How the pairs were found and reviewed
tools/vocab/familiar_candidates.pyfinds a pair where one ORCID holder (public data file, CC0) wrote a one-word given-name box and, before the same family name, a different word in a published name (given = Katarzyna,credit = Kasia Nowak). It reads no compiled list of familiar forms except the nicknames list and its refusals, to skip what was already reviewed (decisions/shipped-data-licences, FACTS WE MEASURE). The nicknames list's 165 pairs it had refused as spellings were reviewed again.tools/vocab/familiar_reviewed.tsv, with no family names.alternate-spelling: 429 other spellings;familiar-form: 668 pairs;Measured (
tools/differential/match_diff.py, 31,247 pairs × 22 settings)No fold makes any verdict inconsistent. Two verdicts go from consistent to inconsistent, both from a fix to how a middle name's words combine: an accepted weaker outcome no longer hides a stronger one the caller refuses. They are
John Liz Jean Smith/John Elizabeth Jean-Paul Smithunder+hyphenated-partalone, and an accented middle name under-folded. The parse snapshot is byte-identical: no parse moves.Design
spelling = { spelling_of = [...] }, compiling intoALTERNATE_SPELLINGSalone, not agivenreading'ssame_as, which means "written short" and moves parses (measured in the decisions entry).The records are in decisions/name-matching: "2026-11-12 A KEYBOARD'S SPELLING IS FOLDED" and "2026-11-12 ALTERNATE SPELLINGS ARE OPT-IN".
Open, not built: a translation outcome, cross-script matching, phonetic matching (Gerry / Jerry), routing abbreviations (
Md, which moves parses), a caller'ssame_asreached from other forms of the word, and Wikidata for the languages ORCID covers thinly (German, Russian, Ukrainian, Belarusian, Hungarian, Romanian, Bulgarian, Croatian, Serbian, Albanian; figures in the entry).Tests and reviews
🤖 Generated with Claude Code