Repository navigation
Add British post-nominals; KC, PC and DL gated by the names they collide with (#965) - #976
Merged
Merged
Conversation
…urname (#965) GOV.UK's display names (govuk-people, #962) end in post-nominals no vocabulary listed, read as the family name (`Jane Doe KC` -> family 'KC') or reversing a comma name (`Jane Doe, CChem` -> given 'CChem'). - `kc` is a credential written as a word (acronym = false) with name readings, gated as a generation word is (rules/S11): `John Smith KC` reads the suffix, `Ram KC`, `Ram Bahadur Kc` and `K.C.` keep the Nepali surname. `credential` joins GATED_WORDS, classify tags a gated credential with its kind and suffix_kind reads it first, so KC fills the credentials view, not generation. - 18 credentials added (FRS, LLB, CChem, FRAeS, MRPharmS, ...), with case masks where mixed case; FIET and FREng gated by their surnames (Fiet, Freng); MoID refused, Moid being a given name. - rules S11, S6 and S3 amended; decisions/S11 and decisions/suffix-acronym-collisions record the choice, measurements and accepted costs; decisions/S8 holds #965's join-order question as Open. PC and DL are left for a separate decision. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…965) - `pc` and `dl` are credentials written as words beside family readings, gated as `kc` is: `Jane Doe, DL` and `Jane Doe PC` read the suffix, `Ravi PC` and `Anna DL` keep the family, the dotted spellings read as master did. - rules/R8 says a shipped credential reads as one even where a caller lists it in suffix_words_ambiguous; S11's Then, S6 and the sibling bullets (C4, C12, S2, S5, S7) name the class as a suffix word that is also a name, not a generation word. - decisions: KC's govuk count is 27, not 31; S8's Open example uses an unlisted word; FREng's mask limit is an accepted cost and an Open line; PC/DL's costs, including the Romanian `Dl` force view. - examples drawn from real corpus records replaced (Gita Bahadur KC); check 11's narrower refusals each keep a mutation row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- rules/R8: a shipped credential listed in suffix_words_ambiguous reads as a credential, and listed in agnomens as an agnomen (not 'either set'); decisions/R8 points at decisions/S11's entry. - decisions/S11: the masks' default capitalized() moves, per corpus, for kc and for pc/dl, and the hyphenated 'Pc-' force view. - decisions/suffix-acronym-collisions: tse-donors moves one case view. - en.toml: the kc and pc notes point at decisions/S11. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- freng: drop the `FREng` mask, which respelled the surname ('ANNA
FRENG' -> 'Anna FREng'), and refuse it with `excluded = { cased }`
as meng does; a test holds FRENG and FIET to their title case.
- moid: the refusal stands, its reason rewritten on the measurement
(gated or refused, no name moves in fec, govuk, orcid or psc; gated
it would gain only MOID and the comma, and cost SYED ABDUL MOID).
- decisions/S11: qc is a credential acronym, not a plain word; the
mask's case views recounted per corpus with the recipe stated;
`John Smith AO KC` moved out of the gains, to S8's open shape.
- decisions/suffix-acronym-collisions: orcid gains 3, FREng 2 kept and
1 newly exposed, ukec's dl moves; FREng's Open points at
decisions/S6, which now holds it; vocabulary-exclusions names the
gated-word mask exception.
- rules/S11: When covers a word written as initials; credentials rows
pin the gated credential's view.
- en.toml: ORCID box counts on acma, llb, mms, cchem and hmi.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…965) - decisions/suffix-acronym-collisions: freng carries no mask; the S6 reading applies to GOV.UK's mixed-case spelling FREng, said so in the Standing lines and the entry. - decisions/vocabulary-collisions: a dated entry and Standing line read C-i's ground to include a person's initials written where the claim acts, with the same per-word count a name needs (pc, dl); rules/S11's Because says so. - decisions/S11: the whole-word predicate behind the case-view counts is stated beside them, with DL's orcid figure under the other count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Refs #965. #965 stays open for two questions recorded as Open lines: whether an unlisted word in capitals should join a listed credential's run in both orders (decisions/S8,
CBE XYZvsXYZ CBE), and tellingFREngwritten in its own mask from the surname Freng (decisions/suffix-acronym-collisions).What changes
GOV.UK display names (the
govuk-peoplecorpus, #962) end in post-nominals that no vocabulary listed. Each one became the family name (Jane Doe KC→ familyKC), and after a comma the name reversed (Jane Doe, CChem→ givenCChem). This PR lists them.KC,PC,DLare gated credential words. Each is acredentialwithacronym = falsebeside a name reading. It compiles intoSUFFIX_WORDS_AMBIGUOUSand is read by rules/S11's count and S6's case lean, asfilsis. A dottedK.C./P.C./D.L.is not a spelling of the word, so it stays ShouldRam Bahadur B.K.keepB.K.as its family name? #864's paired initials.John Smith KC,Jane Doe, DL→ suffix.Ram KC,Anna DL,Ravi PC→ family.credentialjoinsGATED_WORDS, and build check 11 is widened. The honorific, status, courtesy, professional_honorific and generic suffix kinds are still refused beside a name reading; each has a mutation row._vocab.suffix_kindreads it first. Without that,KCwould land in thegenerationview._EXPECTED_READINGSand_EXPECTED_ALTERNATIVESrows fail, and so does the existingtest_every_suffix_words_reading_alternative_and_index_kind_agree.casedmask.excludedreason: Moid is a given name written last (Syed Abdul Moid).suffix_words_ambiguousreads as a credential.Per word
casedmaskCorpus moves
Measured with
tools/differential/measure.py --baseagainst master 4ebb51d.Committed corpora
Dl(Romanian salutation) renderings undercapitalized(force=True):Dl→DL.govuk-people (the issue's recipe)
Other corpora
AO KC, a comma KC,BA LLB,FRSA.Accepted costs, recorded in decisions/S11:
M.M.S.as initials: orcid 1.P.C.stay paired initials.KC/PC/DLrecase surnames and initials in case views. Counts per corpus are in decisions/S11.No field moves: psc-individuals (reports and case views only). tse-donors has 1 case view. tw-donors and cz-candidates: none.
Checks
uv run pytest: 34,034 passed.-n0 -m serial: 42 passed.uv run --python 3.15 pytest: passed.build.py --check: current.🤖 Generated with Claude Code