Skip to content

Read Junior as a given name too, and lean a generation word by case only where its reading says so (#1039) - #1052

Merged
derek73 merged 6 commits into
masterfrom
feat/1039-junior-given
Nov 4, 2026
Merged

derek73 merged 6 commits into
masterfrom
feat/1039-junior-given

Conversation

@derek73

@derek73 derek73 commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Closes #1039.

What changes

junior (mul.toml) and júnior (pt.toml) gain given and family readings. They become suffix words that are also names, so the words-to-spare count gates them (rules/S11).

parse("Silva, Junior Carlos")   suffix 'Junior Carlos', no given  →  given 'Junior', middle 'Carlos'   (as 2.2.0–2.3.0)
parse("SILVA, JUNIOR")          suffix 'JUNIOR', no given         →  given 'JUNIOR'
parse("Kofi Junior")            suffix 'Junior', no family        →  family 'Junior'                    (as 1.4.0)
parse("John Smith Junior")      suffix 'Junior'                   →  suffix 'Junior' (now reports suffix-or-name)

A new reading property: title_case_is_name.

What moves

Measured with tools/differential/measure.py --base against master 39839b9. The committed snapshot moves only the rules' and case table's Junior names. The CLDR, GND and Wikidata records don't move.

corpus entries differ of which a new suffix-or-name report alone notable
tse-donors 14,839 14,763 38 two-word ADELSON JUNIOR → family 'JUNIOR'
orcid-researchers 505 441
jrc-names 391 209 177 Fabio Junior → family 'Junior'
patentsview-inventors 212 211
psc-individuals 97 86 Mr Oliver Junior → family 'Junior'; (Junior) → nickname, as (Neto)
ctgov-officials 87 77 … SILVA JUNIOR, DOCTORATE → family '… JUNIOR' (base already reversed)
fec-individuals 61 10 42 comma names gain the given name; 9 BRITO JUNIOR, RAIMUNDO → family 'BRITO JUNIOR'

The other six local corpora don't move.

Agreement with the filed boxes:

  • orcid-researchers: 9 records progress, 4 regress.
  • psc-individuals: 5 progress, 1 regresses.
  • patentsview-inventors: no move.

Decided, and accepted without a decision yet

  • Decided: give Junior a name reading; keep it a generation word, not an agnomen, so Reading.kind stays 'generation'; and make the lean a property that marks the words whose case leans, so the default is no lean.
  • Not yet put to a decision, recorded as ACCEPTED in decisions/S11: in front of another suffix word that is also a name, Junior is a name word, as Neto already is on master (Pedro Neto Filho → family 'Neto').
    • So Pedro Junior Filho reads family 'Junior', suffix 'Filho', where 1.4.0 through 2.8.1 read middle 'Junior', family 'Filho'. Likewise Pedro Junior fils.
    • The rows that pinned the Gate generation readings by kind: fils, the Brazilian agnomens, default = false (#752, phase 2h) #890 rule are re-spelled with Jnr, which has no name reading, so they keep testing it.
    • Smith, Junior. now reads title 'Junior.' by rules/H2's period shape, as Smith, Neto. does. 2.2.0 through 2.8.1 read the suffix. No corpus name writes it.

Docs

  • Rules amended:
    • S5, S6, S7 and S11 state the property.
    • S7 and S11 state that a suffix word that is also a name counts as a name word in front of another, unless its writing settles it (S6).
  • Decisions: a dated S11 entry, with head notes on the two entries whose "the kind says what the writing means" it supersedes.
  • Elsewhere: the vocab README property row, root AGENTS.md, the RFC table, customize.rst, migrate.rst, and a release-log bullet.

Review

  • Code review: a grid of 12 words × 5 spellings × 20 shapes under 6 parsers found every move to be a junior or júnior name. It found the 2.x translation dropping the lean (fixed), S5 left stale (fixed), and Smith, Junior. (recorded).
  • Design-docs review: S11's precedence and Then clauses contradicted their own examples; the Standing attribution, counts and history notes needed corrections. All fixed.
  • Second-round review of the fix commit: the new name-word clause dropped S6's exception, migrate.rst still gave the lean-less 2.x spelling, and the FEC split was off by one. All fixed in the third commit.

🤖 Generated with Claude Code

derek73 and others added 3 commits November 3, 2026 18:51
…nly where its reading says so (#1039)

junior and júnior gain given and family readings, so the words-to-spare
count gates them (rules/S11): 'Silva, Junior Carlos' reads given
'Junior', where 2.4.0 through 2.8.1 read suffix 'Junior Carlos'.
S6's Title-case lean for a gated suffix word becomes a property,
title_case_is_name, carried by the readings it was true of (fils, the
Slavic st., kc, pc, dl); without it a gated word's writing says
nothing, so 'John Smith Junior' keeps the suffix. Adding the property
moved no parse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…/S11, record what moved

The 2.x translation gives a gated non-agnomen word title_case_is_name,
the lean 2.x gave it. rules/S5 and S11's precedence named every
generation word's Title case; S7 and S11 now say a suffix word that is
also a name counts as a name word in front of another. The decisions
entry separates the undecided consequences, lists the re-spelled
decided examples, the bracketed and dotted Junior, and corrects the
FEC count. AGENTS.md, the RFC table and customize.rst name the property.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rate.rst's 2.x spelling, FEC count

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73 derek73 added this to the 3.0 milestone Nov 4, 2026
@derek73 derek73 added enhancement vocabulary Per-word vocabulary model and language packs labels Nov 4, 2026
@derek73 derek73 self-assigned this Nov 4, 2026
derek73 and others added 3 commits November 3, 2026 19:38
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…_is_name

père joined the gated generation words on master (#684) with fils's
Title-case lean; under #1039 that lean is the reading's property, so
père carries it, and reads as #684 does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng leans only by title_case_is_name (#1039)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@derek73
derek73 merged commit a1b3e18 into master Nov 4, 2026
13 checks passed
@derek73
derek73 deleted the feat/1039-junior-given branch November 4, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement vocabulary Per-word vocabulary model and language packs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Should "Silva, Junior Carlos" read given 'Junior', rather than suffix 'Junior Carlos' and no given name?

1 participant