You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Phase 2: derive ambiguity from clashing readings and extend the gate to every reading kind #752
Part of #747. Phase 1 kept the ambiguity markers as explicit flags (may_be_given, may_be_name, may_be_initial). Phase 2 derives ambiguity from clashes between readings instead, and makes the gate a property of a reading rather than a rule written per class of word. Today's gates are six separate rules, each reading its own evidence:
ambiguous acronyms by periods, capitals and words to spare (rules/S3, S4, S6)
one-letter roman numerals by a word to spare (rules/S10)
a title that may be the name, by the title run's floor (rules/H3)
particles by position (rules/P4)
bound given names by a word to spare (rules/P5)
single-letter conjunctions by case (rules/P8)
A listed word none of them reaches is read wherever its position allows, which is why fils is excluded rather than gated. The vocabulary model RFC (docs/design/vocabulary-model-rfc.md) has the overview.
This is the first phase that changes behavior, so it needs its own spec, measurements and snapshot moves.
Questions it has to answer:
What cue the gate reads for each kind, starting from the rules above. An acronym's cues are periods and capitals, while a lowercase generation word like fils needs another, and an initial-shaped one (H., regnal I.) has S10's count against a period, which marks a one-letter word as an initial (rules/T5).
Whether a reading with no reliable cue is off unless a pack turns it on (default = false, e.g. Czech st.).
What a gate at the FRONT of a name looks like (a title that is also a given name).
How readings surface on a ParsedName (the reading not taken, on the ambiguity).
Decided already (decisions/vocabulary-model): vocabulary readings settle a clash; name readings only keep the gate on; bearer counts are provenance and never compute a reading.
titles that are names: wing#896, mahdi/bard#898, buddha/siddha/gyani#900, king#901, sultana/sultan#903, shaikh#906, prince/princess#908, sheikh and its spellings #912
Two follow-ups landed beside them: #904 keeps v1's Constants().titles as 2.6.0 listed it, and #905 is a helper refactor.
The issue's four questions:
The cue each kind reads: numerals by one predicate (2b, 2f), credentials by their spelling (2c–2e) and their capitals (2g), fils by case and the count, the agnomens by the count alone (2h).
A reading with no reliable cue:default = false records it and compiles to nothing; a pack turns it on (2h).
A gate at the front of a name: a title with a given reading is a title only inside a title phrase, and a name word elsewhere, reported title-or-name where it opens the name, no comma marks the given name and a listed phrase holds the word (2i, then 2j's batches; decisions/H9).
Surfacing: the reading not taken is Ambiguity.alternative (2m). The reading taken, Token.reading, waits for 3.0.
The title words 2j did not reach (baron, bishop, judge, marquis and the rest) continue in #913. #918 updates the decisions Open: lines that pointed here, and records the last open question parked on this issue: two_family_names reports nothing and surfaces no alternative, since the caller declared the convention (decisions/O6).
Activity
Baron Davis→ title 'Baron', no given name) #348Chas. Smithread givenChas.? Abbreviated given names read as titles today #789John Smith V, M.J.keep V as the suffix, asJohn Smith Jr., M.J.keeps Jr.? #774John Smith VI MDread likeJohn Smith III MD? #784Standing blocks for the gate files S3, S4, S6, S10, H3 and P5 (#762) (#…
Read a bare Wm as the given name it abbreviates, not a title (#789) (#…
Add a Policy switch for names with two family names (#754) (#875)
Record vocabulary phase 2's agreed design in the RFC and decisions (#752
Derive the two name-clash markers from name readings (#752) (#883)
30 remaining items
Read King as a given name outside a title phrase (#752 phase 2j, #348) (
Collapse the deferred field's unreachable guards (#752, phase 2m)
Fix the PR review's findings on Ambiguity.alternative (#752, phase 2m)
Read the given names Sultana and Sultan as names outside a title phra…
Compare alternatives only where both sides record them (#752, phase 2m)
Count master's credential-comma row among the sweep's skips (#752, ph…
Keep the titles 2.6.0 listed in v1's Constants().titles (#752) (#904)
Carry the reading a report did not take, as Ambiguity.alternative (#752…
Name an alternative's field through one slot and one name-piece helper (
Read the name Shaikh as a name outside a title phrase (#752 phase 2j, #…
Read the given names Prince and Princess as names outside a title phr…
Read the name Sheikh and its spellings as names outside a title phrase (
derek73 commentedon Oct 27, 2026
Phase 2 is done: every sub-phase of the agreed design (#881, decisions/vocabulary-model's 2026-10-23 #752 entry) has landed, each as its own PR.
default = false(rules/S11)attacheswing#896,mahdi/bard#898,buddha/siddha/gyani#900,king#901,sultana/sultan#903,shaikh#906,prince/princess#908,sheikhand its spellings #912Ambiguity.alternativeTwo follow-ups landed beside them: #904 keeps v1's
Constants().titlesas 2.6.0 listed it, and #905 is a helper refactor.The issue's four questions:
filsby case and the count, the agnomens by the count alone (2h).default = falserecords it and compiles to nothing; a pack turns it on (2h).title-or-namewhere it opens the name, no comma marks the given name and a listed phrase holds the word (2i, then 2j's batches; decisions/H9).Ambiguity.alternative(2m). The reading taken,Token.reading, waits for 3.0.The title words 2j did not reach (
baron,bishop,judge,marquisand the rest) continue in #913. #918 updates the decisionsOpen:lines that pointed here, and records the last open question parked on this issue:two_family_namesreports nothing and surfaces no alternative, since the caller declared the convention (decisions/O6).Close #752's open questions in decisions/ and point the title words l…