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 3: language packs that prefer or restrict their language #753
Part of #747. Needs phase 2 and the language tags from the classification sub-issues.
The semantics (decisions/vocabulary-model): the default loads every language. A pack prefers its language: it settles clashes where its language has a vocabulary reading. A strict pack also drops other languages' name-level readings. Packs are sets of languages, so combining them is order-independent. Vocabulary in a non-Latin script is always on, because it selects itself by script. A pack can outrank a reading derived by a shape rule (Ma. Cristina, where Ma. is María).
Open: how today's locales packs move onto this; region and script subtags beyond zh-Hans/zh-Hant; whether third parties can ship packs.
Pack-specific issues are linked here as sub-issues.
A first measured case for "a pack prefers its language": Nepali (ne) against the Hindi and Marathi vocabulary.
The nepal-candidates local corpus (#866) writes each of 125,331 local-election candidates in Devanagari beside the Election Commission's own romanization, so it shows two languages' vocabularies disagreeing about one word, with the writer's intent recorded beside it.
श्री (#870).hi.toml and mr.toml list it as a salutation (Shri, Mr.; #269), and in a Hindi or Marathi name that is right. In Nepali names it is also the first element of a given name:
names
today
the Commission's romanization
spaced श्री opening the name
215
title in all 215
a name word in 201 (Shree 193, Shri 6, Sri 2), Mr in 2
श्री glued into the given name
386
given
—
So श्री कृष्ण श्रेष्ठ reads title श्री while its own romanization Shree Krishna Shrestha reads given Shree.
Buddha, Siddha, Gyani, Guru (#869). Title words in the default vocabulary (buddha/siddha religious in en.toml, gyani in pa.toml, guru the renunciate title of #346), and the opening element of common Nepali compound given names: Buddha Bahadur Tamang reads title Buddha, given Bahadur. Of the names opening with one of them, 172 read it as a title.
Why this is a pack question and not a default change. Both readings are right for some language: the default loads every language, so it can only pick one, and either pick breaks the other language's names. Decision 6 (decisions/vocabulary-model) is the mechanism for exactly this: a ne pack that prefers its language settles the clash where Nepali has a vocabulary reading, reading श्री and Buddha as given-name elements, while the default and a hi pack keep the salutation. The Phase 2 spec (#752) decides how the default gates title words that are also names (its D12); the Nepali cases may still belong to the pack rather than to the default gate, and that is recorded there.
What a ne pack would carry, from these two issues: given-name readings for श्री (spaced, opening a name) and for buddha, siddha, gyani, guru opening a compound given name, with श्रीमती (92 names, romanized Shreemati in 62 and Mrs/Ms in 11) left a salutation. The corpus's two scripts give the pack its own test: a Devanagari name and its romanization should read the same roles.
Dotted and joined Nepali surnames for the ne pack (from #864, closed by #872)
#872 keeps exactly two dotted single letters (B.K., K.C., G.C.) as a name word at the end of a name, by shape, in the default. Some spellings are out of a shape rule's reach and belong to a ne pack that prefers a family reading:
Without periods (Ram Bahadur KC, BK, Bk). kc and bk are in no default set, so these already read as names, but nothing marks them as surnames. A pack can give bk, kc, gc, bc and dc a family reading.
A pair behind an ambiguous credential (Jane Doe MA R.T.), which rules/S3 records as an accepted cost in the default. Under ne the trailing pair should be the family.
A strict ne pack would drop dc's credential reading outright.
Counts, nepal-candidates (Election 2079, 126,981 name pairs), pairs whose romanized name ends in the word, any spelling: bk 2,168, kc 497, gc 79, bc 70, dc 21. K.C. alone is written 341 times, K.C 126 and Kc 21. mc ends 2 pairs and gd none, so neither is on the list.
Measure the pack against nepal-candidates' script pairs, comparing roles rather than text: the Devanagari spelling says which word is the surname. That is the spelling-consistency measure the phase 2 spec (#752) uses.
Phase 3 input: words kept out of the default vocabulary (#753)
Swept 2026-10-27 on master cfe8bf92, read-only. Sources: every excluded entry in nameparser/vocab/*.toml; docs/design/decisions/ (Excluded, Declined and Open blocks, removal records, and every mention of a pack or an opt-in); PR #132; #18, #99 and the closed issues and PRs that list words; the open issues #658, #514, #804, #317, #345, #684, #725, #870 and #913, and #753's comments; the four Python locale packs. No bearer lookups were run: every count below is copied from its source.
The two figures
Words whose readings already clash between languages: 9, the same as the 2026-10-27 count.
8 clash by category, a different category in different files: abd (ar bound_given, en suffix), i (ca/pl conjunction, de/mul generation), st (cs generation, en/fr particle and title), ra (de title, en suffix), sr (en suffix, es/pt title), do (en credential, pt particle), mc (en particle and credential, ga/gd particle), vd (en credential, nl particle).
1 clashes by kind only, inside the particle category:de (a preposition in es/fr/it/pt, an article in nl). Prefer or strict changes nothing for de, since both kinds compile into PARTICLES.
Of the 110 words that appear in more than one file, these are the only clashes.
Readings with default = false: 3. They are cs st (generation, starší), de i (generation, the regnal ordinal written with its period) and es h (generation, hijo). All three are generation words that a period makes look like an initial (rules/T5).
What the inventory says
Most candidates are not about clashes. The 9 clashing words are nearly all a pack can settle under prefer. The (a) rows below are mostly readings that are missing from the default entirely, so the main job of phase 3 is to turn readings ON, not to settle clashes. That supports what the orchestrating session found.
Mechanisms: most (a) rows need default = false (DF, 22) or default = false plus strict (DF+ST, 27). DF+ST is the case where the reading is right in its own language and its collision is with another language's name: pan (Chinese surname Pan), bay (a Hungarian surname), nic (English Nic), puan (an Indonesian given name), fil (a Slavic surname), and the Dutch an/in/to/ten.
Prefer alone is small. Only 3 (a) rows (ms bt against the en credential Bt, cy ab against the en military title, cs bc against ne bc) plus the PO+PR and DF+PR mixes are settled by prefer as the RFC defines it.
Same-language clashes cannot be settled by any pack (the fils argument). Most of the 189 (c) rows are this kind:
the Indic and Arabic title words that are also given names or surnames in their own language (कुमारी, ठाकुर, سلطان, سيد);
ông, segundo, thiru, malam.
For several of these, the phase 2j route (a given reading plus the H9 title phrase, as sheikh, sultan and king took) is a better fit than a pack. I marked those "phase 2j route".
The (b) rows are 156:
plurals (herren, heren);
unattested words (bon, dí, heer, gravos);
footnote marks (cva, gaee, np);
removed credentials whose name sense dominates everywhere (rai, cha, mai);
glued forms that need no particle (gil, kil, m', pour);
the case-mask and attached exclusions, whose collision is in the word's own script.
Languages with enough candidates to justify a pack
ne: yes, and the evidence is the strongest of any language.
Family readings for bk (2,168 candidate names), kc (497), gc (79), bc (70) and dc (21), with dc flipped from the en credential.
A given reading for the spaced श्री (201 of 215 names).
guru/गुरु, which Derek already assigned to a ne pack (2026-10-24).
Every one of these is a name reading. default = false is not allowed on the name kinds, so this pack needs a mechanism today's model does not have (Q1).
hi/bn (Ship hi and bn locale packs for Latin-transliterated Indic honorifics #345): yes, for the Latin transliterations:smt, shrimati, sushri, shriyut, shri, mst, adhyapak (DF+ST). About 30 more rows are (c) because the word is a name in the same language: kumari, babu, begum, acharya, sardar, pandit, sant, and the Tier 4 deferrals of decisions/indic-honorifics.
ga/gd: yes, small.nic (decisions name "an opt-in Irish pack" as its home), mhic/mic/uí, and the unaccented ni/ui. o, na, óg and mór are (c).
nl (and de): a small (a) set, all of the same shape. These are the particles that were confirmed regressions globally (an, in, ten, then, to, v; PR Add German/Dutch prefixes and German title/degree suffixes #191). Strict only removes the Korean and Vietnamese readings that break them (Park In Hwan, Nguyen To Nga) if those readings are recorded as name readings in the vocabulary (Q2).
nb/sv: 36 (c) rows, all from PR Tussenvoegsels / family name prefixes support #132. These are the farm-name position words (nord, vestre, øvre…). Nobody ever judged them, and a Norwegian registry measurement would have to come first.
Every other language has 1 to 3 candidates. That is not enough for a pack on its own, but a pack file costs nothing once the mechanism exists:
tr bay, fr père, it sig, lt jaun, mi a, br ar;
ms bt/bte/puan;
es lo;
ber aït.
The locale packs today
ZH carries 556 surnames (Simplified, Traditional, ranked and compound forms). They are a segmentation list, outside the per-word model, like KOREAN_SURNAMES. Its keep-outs are recorded in decisions: married double surnames (李林), Japanese surnames (佐藤), and unattested compounds (东野, 成公, 宗政).
JA, RU and TR_AZ carry empty lexicons.
RU's and TR_AZ's marker words live inside regexes in _pipeline/_post_rules.py: whole-word oğlu, qızı, kızı, uulu, оглы, кызы, улы…, and the endings -ovich/-ович…
None of the Turkic markers is in the TOML, so moving them is new vocabulary, not a move (Q8).
Summary
411 candidate readings: 150 from the TOML excluded entries (102 word-level, 48 property-level) and 261 from decisions/, closed and open issues and PRs (one row per word-reading; a few spellings of one decision are rows of their own).
By verdict: (a) 66, (b) 156, (c) 189
toml: (a) 25, (b) 72, (c) 53
other: (a) 41, (b) 84, (c) 136
Pack candidates (a) by language, with mechanism:
language
(a)
(c)
mechanisms of the (a) rows
ne
8
0
PO 6, PO+PR 2
ga
6
4
DF+ST 3, DF 3
cy
6
0
DF 4, DF+ST 1, PR 1
hi
5
17
DF+ST 5
nl
5
1
DF+ST 5
cs
4
6
DF+ST 2, DF 1, PR 1
pt-BR
4
5
DF 2, DF+ST 1, DF+PR 1
ms
3
4
DF+ST 1, PR 1, DF 1
bn
2
6
DF+ST 2
ber
2
0
DF 2
hr
2
0
DF 2
pl
2
0
DF+ST 1, pack removes a property 1
sk
2
0
DF 2
sl
2
0
DF 2
ar
1
11
DF+ST 1
de
1
11
DF+ST 1
es
1
8
DF+ST 1
sv
1
8
DF-prop+ST 1
it
1
7
DF+ST 1
fr
1
4
DF 1
pt
1
4
pack removes a property 1
br
1
0
DF+ST 1
ca
1
0
pack removes a property 1
is
1
0
DF-prop+ST 1
lt
1
0
DF 1
mi
1
0
DF 1
tr
1
0
DF+ST 1
nb
0
27
en
0
16
bn/hi
0
9
?
0
7
bo
0
5
he
0
3
hu
0
3
th
0
3
(languages with no (a) and fewer than three (c) rows are left out of this table; every row is in the full table)
(a) rows by mechanism: DF+ST 27, DF 22, PO 6, PR 3, pack removes a property 3, DF-prop+ST 2, PO+PR 2, DF+PR 1
Questions for the Phase 3 design
Can a pack carry a name reading? Every ne candidate (bk, kc, gc, bc, dc, spaced श्री, guru's given reading) is a family or given reading. default = false is refused on the name kinds, and in the default a name reading is not inert: it gates a clashing reading or marks a fork. The design needs either a pack-only file that the default does not load, or default = false on name readings.
Strict sees only recorded name readings. DF+ST is the largest group (27 rows). In it, strict is supposed to remove the other language's name, for example Pan, In, To, Nic, Bay, Sig and Puan. It can do that only if that name is recorded as a name reading in some file. Several are not (for example in and to as Korean and Vietnamese given names). Does phase 3 need a sweep that records those name readings first, or should the pack carry the reading ungated?
Properties, not only readings. 48 exclusions refuse a property on a reading the default keeps: after_given, attached, cased, may_be_initial. The one-case connective fork (e pt, i ca/pl, y nl) is something a pack is meant to remove, and decisions/3-0-reevaluations records that a pack "cannot express 'remove e'". Should default = false (or its pack-side opposite) apply to a property, and can a pack remove one?
One shape, two encodings. cs st is default = false, while cs ml and the hr/sk/sl st and ml are excluded as "pack-shaped". Should phase 3 convert pack-shaped exclusions into default = false readings, so that an excluded reading again means "wrong everywhere"? The sweep would make that distinction mechanical: every (a) row in the table is an exclusion that would become a reading.
How a tag filters. cs/sk/sl/hr share ml/st, and ms/id share puan, putra and putri, where a strict ms pack would drop the Indonesian readings it needs. Should pt match pt-BR, which holds every agnomen candidate? (Open under Phase 3: language packs that prefer or restrict their language #753.)
Latin transliterations under strict. The hi/bn Latin forms clash both with names elsewhere (Indonesian Sri) and with names in the same language (Indian Shri/Sri given-name elements). A strict hi pack settles only the first. Is the remaining same-language cost accepted per word, as graf and herra were?
Not every candidate is a pack question. About a dozen (c) rows wait on a rule, not a word:
What moves from the Python packs. ZH's surname list stays a segmentation list, and the Turkic and East Slavic markers live in regexes. Do they become TOML readings (a new patronymic reading on oğlu, and so on), or stay rule data under phase 4?
Measuring a pack. The snapshot and compare.py parse under the default Lexicon, so neither can show what a pack changes (decisions/3-0-reevaluations). The agreement records score CLDR names under their language's pack since Measure the CLDR corpus with each locale pack too #673, and nepal-candidates holds every ne candidate. Does each pack need its own local-corpus reading, the way ne would need nepal-candidates?
Method and limits
Verdicts are mine, taken from the source's own reason. Each (c) row names what would decide it. The mechanism labels mean:
DF: a default = false reading the pack turns on;
ST: strict, dropping another language's name readings;
PR: prefer, settling a clash between vocabulary readings;
PO: a reading only the pack carries, which no current mechanism expresses for name kinds (Q1);
DF-prop: a property turned on.
Rows group a few spellings. The 261 non-TOML rows include some spellings of one decision as rows of their own (the five Tibetan titles, the CLDR adjectives), so the counts are of word-readings, not decisions.
Skipped: the 20 GitHub rows and 58 decisions rows that duplicate a TOML exclusion were merged into it. Words that shipped since they were proposed are not counted. PR Tussenvoegsels / family name prefixes support #132 has 112 words: 31 are particles now, 3 are excluded particles (ben, nic, o), 3 exist only as another kind (ab, e, i), and 75 are absent.
Ben is a common given name standing exactly where a forward-joining particle claim acts: "Ahmad Ben Husain" reads middle 'Ben', and admitting it would take that token … — clash is with the English given name Ben; a strict ar pack (Maghrebi data) drops it
a standalone given name; binding it would eat the middle name
b
—
ال
ar
article
vocab/ar.toml:400
normally attached to the word it determines, and too ambiguous standing alone (#269) — attached article; never a standalone word
b
—
و
ar
conjunction/may_be_initial
decisions/vocabulary-exclusions
caseless letter: the fork is inert
b
—
أفندي
ar
honorific
decisions/vocabulary-exclusions
Ottoman post-nominals; surname collision
c
DF
أمير
ar
nobility
vocab/ar.toml:141
Amir is a common given name — same-language given name; phase 2j route (given reading + H9) rather than a pack
c
—
الأمير
ar
style/nobility
decisions/vocabulary-exclusions
article forms never vetted (الشيخ ships)
c
—
السلطان
ar
style/nobility
decisions/vocabulary-exclusions
article forms never vetted (الشيخ ships)
c
—
السيد
ar
style/nobility
decisions/vocabulary-exclusions
article forms never vetted (الشيخ ships)
c
—
باشا
ar
honorific
decisions/vocabulary-exclusions
Ottoman post-nominals; surname collision
c
DF
بك
ar
honorific
decisions/vocabulary-exclusions
Ottoman post-nominals; surname collision
c
DF
د
ar
academic
vocab/ar.toml:89
the abbreviation د.: the edge-period fold leaves bare د, a single letter that would swallow initials (the bare-κ trap) — single-letter shape trap; decided by whether Arabic-script data writes initials at all
c
DF
سلطان
ar
nobility
vocab/ar.toml:145
Sultan is a common given name — same-language given name; Latin sultan took the phase 2j route
c
—
سيد
ar
style
vocab/ar.toml:57
Sayyid is a common given name; the honorific is not shipped bare — same-language clash (Sayyid given); the Latin sayyid route of phase 2j (given reading + H9 phrase) may fit better than a pack
c
—
شيخ
ar
style
vocab/ar.toml:61
bare, it collides with the common female given name Shaikha; الشيخ, with the article, ships — same-language clash (Shaikha); Latin sheikh/shaikh took the phase 2j route (#912), which a given reading on شيخ could copy in the default
c
—
ক
as
generation
vocab/as.toml:4
the abbreviation ক. is the single-letter initial shape — single-letter initial shape inside its own script
b
—
мал
be
generation
vocab/be.toml:4
мал. is also "figure" — ambiguous with a common noun abbreviation; decided by Belarusian data
never judged: #132 was closed for #182's last_base view; Kabyle "sons of" (Aït Ahmed)
a
DF
млада
bg
generation
vocab/bg.toml:30
Mlada is a borne given name, and under a family-first order the given name is the trailing word — same-language given name, trailing under family-first order
the transliteration of মোসাঃ collides with real names where the native script cannot — Bangladeshi romanized records write Mst. (Mosammat) routinely; the collision is with names elsewhere
a
DF+ST
বাবু
bn
honorific/attached
vocab/bn.toml:160
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
মহারাজ
bn
courtesy/attached
vocab/bn.toml:176
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
মো
bn
salutation/after_given
vocab/bn.toml:36
abbreviates Mohammad, a given name, as মোঃ does (#853) — abbreviates Mohammad (#853)
b
—
মোঃ
bn
salutation/after_given
vocab/bn.toml:32
abbreviates Mohammad, a given name, and is read as one where it leads (#853) — abbreviates Mohammad (#853)
b
—
সাহেব
bn
honorific/attached
vocab/bn.toml:168
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
declined for the default; #345 open for a pack; a trailing name element
c
—
কুমারী
bn
salutation
vocab/bn.toml:8
Kumari is a given name and a family name in this script, so the leading claim fails C-i (decisions/vocabulary-collisions) — same-language given and family name; fails C-i inside Bengali
c
—
ঠাকুর
bn
style
vocab/bn.toml:72
a genuine Bengali honorific (lord, master) that is also Tagore, the surname — same-language surname (Tagore)
c
—
বেগম
bn
salutation
vocab/bn.toml:16
Begum is a trailing name element far more often than a leading title — same-language trailing name element
c
—
শেখ
bn
style
vocab/bn.toml:76
a clan name and a family name ('শেখ হাসিনা'); the Latin sheikh cluster ships for the Arabic addressing form, while the Indic spellings name the family — same-language clan and family name
c
—
শ্রী
bn
salutation/after_given
vocab/bn.toml:56
also an element of given names (Sri, Shri), so where it ends the given part it may be one — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
advocate
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
hafiz
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
marhum
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
shahid
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
syed
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
मां
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
माता
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
প্রকৌশলী
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
মা
bn/hi
title
decisions/indic-honorifics Tier 4
"skipped pending a corpus check, not declined"
c
—
rinpoche
bo
courtesy/attached
vocab/bo.toml:8
spaced-only for the reason the Indic trailing set is (decisions/indic-honorifics) — the clash is inside the word's own script and language
open whether Bc. follows Ing; bc is also a ne surname (#753)
a
PR
ml
cs
generation
vocab/cs.toml:21
pack-shaped: real and standard, but collides with ML initials in other languages written in Latin script — the cs st twin is already default = false; ml is excluded instead (see questions)
a
DF
pan
cs
salutation
vocab/cs.toml:4
Czech and Polish Mr., and the Chinese surname Pan, which leads; the accented paní ships — clash is with the Chinese surname Pan; a strict cs pack drops it
a
DF+ST
roz
cs
birth_marker
vocab/cs.toml:39
Roz, the English diminutive of Rosalind, stands exactly where a marker acts: with it listed, 'Rosalind Roz Smith' reads maiden 'Smith' and takes the given name Rosalin… — clash is with English Roz; within Czech the abbreviation still faces the marker-takes-everything cost
open whether they follow Ing (ambiguous credential)
c
—
paní
cs
salutation/after_given
vocab/cs.toml:8
spelled PANI, a surname (Census 2010), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
open whether they follow Ing (ambiguous credential)
c
—
rodina
cs
salutation
vocab/cs.toml:13
Czech 'family', and a Russian surname, often written surname-first; familie ships — Russian surname clash is cross-language, but whether rodina leads a name as a title in Czech records is unmeasured
never judged: #132 was closed for #182's last_base view; ferch "daughter of" spellings; no collision stated, so possibly default-safe
a
DF
f
da
birth_marker
vocab/da.toml:36
the abbreviation of født collides with the initial F., so only the full participles født, fødd and född are safe — initial shape like es h, but a marker takes every word after it, so the cost of a false hit is larger than h's
bare v a confirmed regression; ships only as a numeral
a
DF+ST
herren
de
salutation
vocab/de.toml:30
the plural of Herr: a plural addresses several people (Herren Müller und Schmidt) and never stands before one person's name, so as a title it only took the first word … — plural; addresses several people (#766)
whether they read as freiherr before a family comma
c
—
herr
de
salutation/after_given
vocab/de.toml:17
a surname (Census 2010 HERR), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
hr
de
salutation/after_given
vocab/de.toml:26
ending a given part in US data, more likely two initials run together than the abbreviation of Herr: one of three such fec-individuals names has a woman's given name (… — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
κ. (Mr.) has the initial-and-surname shape: 'Κ. Παπαδόπουλος' would read title 'Κ.' with an empty given, the edge-period fold making the entry match the initial; Latin… — single-letter initial shape inside Greek; es h / de i are the default = false precedent
Cha, the Korean 차, dominates CHA (Certified Hotel Administrator): removed 2026-09-07 by the relative-frequency criterion (decisions/suffix-acronym-collisions) — removed: the Korean surname dominates even in English data (relative-frequency criterion)
a mask applies in every role, and Ded is an Albanian given name: 'ded gjo luli' would render 'DEd Gjo Luli' (measured 2026-09-24) — a mask applies in every role; not language-bound
a mask applies in every role, and Edd is borne as a given name: 'edd smith' would render 'EdD Smith' and 'EDD KIMBER' 'EdD Kimber' (measured 2026-09-24) — a mask applies in every role; not language-bound
G.C. (Gharti Chhetri) is a Nepali surname written as two dotted initials, ending 80 of 126,981 name pairs in Nepal's 2079 BS local election candidates, where GC as a c… — removed; the pack interest runs the other way: ne wants gc as a family name (#864)
a mask applies in every role, and Lac is a Vietnamese given name and a French surname: 'tran lac' would render 'Tran LAc' (measured 2026-09-25, #540) — a mask applies in every role; not language-bound
b
—
leed ap
en
credential
decisions/vocabulary-exclusions; comma-suffix-arc
multi-word entries removed in 2.0
b
—
mai
en
credential
vocab/en.toml:4160
Mai, a Vietnamese given and family name, a Chinese surname (麥) and a Japanese given name, dominates MAI (Member, Appraisal Institute): removed 2026-10-16 by the relati… — removed: relative-frequency criterion
b
—
md
en
academic
vocab/en.toml:4241
a leading Md abbreviates Muhammad, a given name: 1,246 of 1,300 UK PSC filers with Md first in the forename box typed it there alone (2026-10-23), and a title reading … — leading Md is Muhammad (#853)
b
—
meng
en
credential/cased
vocab/en.toml:4258
a mask applies in every role, and Meng is borne as a given name and a surname: 'MENG LI' would render 'MEng Li' and 'meng wang' 'MEng Wang' (measured 2026-09-24) — a mask applies in every role; not language-bound
b
—
nicet i
en
credential
decisions/vocabulary-exclusions; comma-suffix-arc
multi-word entries removed in 2.0
b
—
np
en
credential
decisions/suffix-acronym-collisions
Wikipedia footnote marks
b
—
ph
en
credential
decisions/vocabulary-exclusions
acronym readings removed (esq stays a word)
b
—
pi
en
credential
vocab/en.toml:4582
PI is Principal Investigator, a role and not a credential (102 ClinicalTrials.gov study officials write it after a comma, data 2026-10-21; 8 NPPES providers), and Pi i… — a role, not a credential (#797)
b
—
psm i
en
credential
decisions/vocabulary-exclusions; comma-suffix-arc
multi-word entries removed in 2.0
b
—
rai
en
credential
vocab/en.toml:4681
Rai, a common surname across Hindi- and Bengali-speaking regions, dominates RAI (RETA Authorized Instructor): removed 2026-09-07 by the relative-frequency criterion (d… — removed: relative-frequency criterion
b
—
sa
en
military
vocab/en.toml:784
Seaman Apprentice, with no bearer in any corpus: every name read with SA as its title in the committed and local corpora is a person whose given name is Sa (Sa Liu, Mo… — no bearer (#857)
b
—
sa
en
credential
vocab/en.toml:784
no person in the corpora writes it: the corpora's SA and S.A. suffixes are companies (Galderma S.A.), the South African qualifier in FCP(SA), and the initials S.A. typ… — no writer (#857)
b
—
senior
en
generation
vocab/en.toml:2198
Senior is a surname (3,864 US Census bearers) — English surname; same-language
b
—
wm
en
title
vocab/en.toml:4
William, abbreviated, and no title of any kind: #68 asked that 'Wm. Scott Magargee III' not read given name 'Wm.', a request judged mistaken, since Wm is the given nam… — a given name abbreviation (#789), never a title
never judged: #132 was closed for #182's last_base view; usually glued (FitzGerald); Fitz is a given name
c
—
goodman
en
salutation/after_given
vocab/en.toml:9
a common surname (Benny Goodman), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
master
en
salutation/after_given
vocab/en.toml:26
a surname and a given name, borne as a middle name either way — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
a given name and a surname, borne as a middle name either way — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
spelled SENOR, a surname (Census 2010), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
señora
es
salutation/after_given
vocab/es.toml:13
a given name (US SSA, as Senora), borne as a middle name — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
the commonest Hispanic double-surname link and this library's oldest fixture, 'Velasquez y Garcia': marking it would read the link of every one-case Hispanic record as… — "a caller who wants the Dutch reading adds it": an nl pack could carry it, but y is an es reading
c
—
härra
et
salutation/after_given
vocab/et.toml:4
spelled HARRA, a surname (Census 2010), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
never judged: #132 was closed for #182's last_base view; written glued (-pour), and Pour is borne as a surname
b
—
پدر
fa
generation
vocab/fa.toml:28
"father" without the article that marks ar الابن and he הבן as never a name — bare noun "father", same-language
b
—
پسر
fa
generation
vocab/fa.toml:34
"son" without the article that marks ar الابن and he הבן as never a name — bare noun "son", same-language
b
—
herra
fi
salutation/after_given
vocab/fi.toml:4
a surname (Census 2010 HERRA), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
never judged: #132 was closed for #182's last_base view; unaccented: Ni is a Chinese surname, ui an initial pair
a
DF+ST
nic
ga
clan
vocab/ga.toml:24
the Irish "daughter of" beside 'ní', but also an abbreviation of Nicolas and Nicole and a given name of its own (Nic Cage): a leading Nic would be marked ambiguous at … — source names "an opt-in Irish pack" as its home; the clash is with English Nic
never judged: #132 was closed for #182's last_base view
c
DF
o
ga
clan
vocab/ga.toml:40
bare O is a common periodless initial, so a particle reading would turn the middle initial of 'Liam O Murchú', and of every 'John O Smith', into a surname; the anglici… — bare O is a periodless initial in Irish names too; decided by how often Irish data writes unaccented, unglued O
never judged: #132 was closed for #182's last_base view; written glued (M'Donald, McKay)
b
—
shehu
ha
style
vocab/ha.toml:10
a common Hausa given name: the leading title claim took the given name of Shehu Shagari, who read title Shehu in every release from 1.4.0 through 2.4.1; CLDR's Hausa r… — removed (#660): same-language given name
b
—
malam
ha
salutation
vocab/ha.toml:4
Hausa teacher or Mr.: a decline on the counts, for the lower-bound given-name use, though CLDR's Hausa data files Malam as the title; whoever re-argues it counts Hausa… — same-language given name; the H9 route, re-argued on Hausa counts
c
—
imam
he
religious (given-name title)
decisions/indic-honorifics
kept out of the renunciate class (title stays)
b
—
rabbi
he
religious (given-name title)
decisions/indic-honorifics
kept out of the renunciate class (title stays)
b
—
בר
he
patronymic
vocab/he.toml:122
Bar is a common modern Israeli given name, and the surname spelling is hyphenated anyway (Bar-Lev) — same-language given name; the surname form is hyphenated
b
—
סניור
he
generation
vocab/he.toml:76
borne as a surname in Israel (אלי סניור, בוריס סניור) — same-language surname
never judged: #132 was closed for #182's last_base view; Hebrew "daughter of"/"house of"; bat ships
c
DF
רב
he
religious
decisions/vocabulary-exclusions
bare רב is the ordinary word "many"
c
—
shri
hi
salutation
vocab/hi.toml:4
the transliteration of श्री collides with real given names where the native script cannot — the native श्री ships; the Latin clash is with given names (Sri/Shri, Indonesian Sri) that strict hi drops only partly
Latin transliterations collide (#269); "belong, if anywhere, to the opt-in packs of #345"
a
DF+ST
जी
hi
honorific/attached
vocab/hi.toml:181
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
महाराज
hi
courtesy/attached
vocab/hi.toml:205
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
साहिब
hi
honorific/attached
vocab/hi.toml:197
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
a given name (Sri Mulyani); the native श्री cannot collide — Sri is also an Indian given-name element, so even strict hi keeps a same-language clash
c
DF+ST
आचार्य
hi
religious
vocab/hi.toml:117
Acharya is a Brahmin surname — same-language surname
c
—
कुमारी
hi
salutation
vocab/hi.toml:12
Kumari is a given name and a family name in this script, so the leading claim fails C-i (decisions/vocabulary-collisions) — same-language given and family name
c
—
ठाकुर
hi
style
vocab/hi.toml:49
Tagore, the surname, as with the Bengali ঠাকুর — same-language surname
c
—
बाबू
hi
salutation/after_given
vocab/hi.toml:20
romanized Babu, an element of compound given names in India (Ram Babu) and a surname — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
बेगम
hi
salutation
vocab/hi.toml:25
Begum is a trailing name element far more often than a leading title — same-language trailing name element
c
—
राजा
hi
nobility
vocab/hi.toml:153
Raja is a common given name — same-language given name; phase 2j route
c
—
रानी
hi
nobility
vocab/hi.toml:157
Rani is a common given name — same-language given name; phase 2j route
c
—
शेख
hi
style
vocab/hi.toml:57
a clan name and a family name; the Latin sheikh cluster ships for the Arabic addressing form, while the Indic spellings name the family — same-language clan and family name
c
—
श्री
hi
salutation/after_given
vocab/hi.toml:29
also an element of given names (Sri, Shri), so where it ends the given part it may be one — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
ml
hr
generation
vocab/hr.toml:16
pack-shaped: real and standard, but collides with ML initials in other languages written in Latin script — as cs ml
a
DF
st
hr
generation
vocab/hr.toml:30
pack-shaped: real and standard, but St. is Saint in other languages written in Latin script — cs st is already default = false; these three are excluded instead
a
DF
id
hu
generation
vocab/hu.toml:8
written before the name, and a bare id would make any trailing ID a suffix — written before the name; bare id would make any trailing ID a suffix
b
—
ifj
hu
generation
vocab/hu.toml:14
written BEFORE the name (ifj. Kovács János), which H2's shape rule already reads as a title — written before the name, where H2 already reads ifj. as a title
follows the name (Kovács úr); bare trailing titles never claim (rules/H5)
c
rule (phase 4)
gróf
hu
nobility
vocab/hu.toml:4
Hungarian Count: possibly a surname in a surname-first culture; unverified, and under uncertainty the answer is do not ship — unverified as a Hungarian surname; a measurement decides it
never judged: #132 was closed for #182's last_base view; given-name elements
b
—
frú
is
salutation/after_given
vocab/is.toml:4
spelled FRU, a Cameroonian surname, as fru is (sv.toml), and middle names are drawn from surnames — surname evidence is Cameroonian, another language
a
DF-prop+ST
sig
it
salutation
vocab/it.toml:4
Sig is borne as a given name (US SSA 50+ male, Wikidata 11+ given, Norway and the United States; the FEC contributors write 'SMITH, SIG' 16 times), measured 2026-10-22… — the clash is Norwegian/US given name Sig; Sig. already reads by shape
a surname (Census 2010 SIGNOR), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
signore
it
salutation/after_given
vocab/it.toml:16
a surname (Census 2010 SIGNORE), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
シニア
ja
generation
vocab/ja.toml:4
left out (Derek, 2026-10-14) beside its Hebrew twin; its only count is Wikidata's Senior surname label, 96 bearers, which measures the English surname — left out by Derek 2026-10-14
Japanese surnames belong to locales.JA's segmenter
b
—
博士
ja
credential/attached
vocab/ja.toml:32
glued 田中博士 IS Tanaka Hiroshi, an attested given name — the clash is inside the word's own script and language
b
—
殿
ja
honorific/attached
vocab/ja.toml:76
some ninety Japanese surnames end in it, 鵜殿 (Udono) and 真殿 (Madono) with four-figure populations, so a peel would cut a family name in two — the clash is inside the word's own script and language
b
—
氏
ja
honorific/attached
vocab/ja.toml:84
王氏 is a historical name form ("the Wang woman") — the clash is inside the word's own script and language
b
—
部長
ja
professional_honorific/attached
vocab/ja.toml:133
長 alone is a borne given name, so 阿部長 can be 阿部 + 長 (#707). The measurement found no such bearer, as it found none for the words that shipped; the refusal rests on the… — the clash is inside the word's own script and language
the Māori link in Te Awanui-a-Rangi; a spaced a is an initial or a name word elsewhere
a
DF
јуниор
mk
generation
vocab/mk.toml:12
a given name or a club name there; помладиот ships — given or club name
b
—
жр
mn
generation
vocab/mn.toml:8
the initials ЖР — two-letter initials shape; es h precedent
c
DF
क
mr
generation
vocab/mr.toml:64
the abbreviation क. is the single-letter initial shape — single-letter initial shape
b
—
जी
mr
honorific/attached
vocab/mr.toml:78
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
साहेब
mr
honorific/attached
vocab/mr.toml:86
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
bt
ms
patronymic
vocab/ms.toml:43
the abbreviation of binti, not reviewed; and already a suffix acronym (Baronet) with a Bt case mask, so a particle reading would open a particle-suffix overlap (the cl… — clashes with the en credential Bt (Baronet); prefer ms settles it, but "not reviewed"
a
PR
bte
ms
patronymic
vocab/ms.toml:49
the abbreviation of binte, not reviewed — "not reviewed"; no stated collision
a
DF
puan
ms
salutation
vocab/ms.toml:12
Malay Mrs., and an Indonesian given name (Puan Maharani) — clash is the Indonesian given name; a strict ms pack drops id readings (but ms and id names overlap, see questions)
a
DF+ST
cik
ms
salutation
vocab/ms.toml:4
Malay Miss: unverified, so not shipped — unverified
never judged: #132 was closed for #182's last_base view; Putra and Putri are common Malay/Indonesian given names
c
—
ing
mul
academic
vocab/mul.toml:50
Ing is borne as a given name (nam_dict band 5 in Sweden, Wikidata 10+ given) and as a surname (US Census 1,814), measured 2026-10-22 with tools/name_usage.py, and a ti… — borne as a name; Ing. reads by shape; credential shipped ambiguous (#848)
confirmed regressions as global particles (Park In Hwan, Nguyen To Nga)
a
DF+ST
heer
nl
particle
vocab/nl.toml:49
a rank particle ('lord', the nobiliary 'heer van') added from #18's test "Johan de heer Van Kampen" (family 'de heer Van Kampen'), which appears to be two real names r… — no attestation (#766)
b
—
heren
nl
salutation
vocab/nl.toml:8
the plural of heer ('de heren'): a plural addresses several people and never stands before one person's name, so as a title it only took the first word of a surname-fi… — plural (#766)
never addressed; 't ships, the apostrophe-less form is a bare letter
c
DF
साहिब
pa
honorific/attached
vocab/pa.toml:25
जी ends बनर्जी, मुखर्जी, चटर्जी, so a glued peel would strand a bare virama (बनर् + जी); the 殿 criterion in a non-CJK script (decisions/indic-honorifics) — the clash is inside the word's own script and language
b
—
i
pl
conjunction/may_be_initial
decisions/3-0-reevaluations
as ca i
a
pack removes a property
pan
pl
salutation
vocab/pl.toml:4
Polish and Czech Mr., and the Chinese surname Pan, which leads — clash is with the Chinese surname Pan
written as initials; "would be default = false, a phase 3 pack question"
a
DF
fil
pt-BR
agnomen
vocab/pt-BR.toml:4
Filho written short in 10 tse-donors filed/registry pairs (2026-10-25), but a Slavic and Polish surname (US Census 220, Wikidata 6 with Poland and Ukraine) that a name… — clash is the Slavic/Polish surname Fil; strict pt-BR drops it
written as initials; "would be default = false, a phase 3 pack question"
a
DF
sb
pt-BR
agnomen
vocab/pt-BR.toml:38
Sobrinho written short in 11 tse-donors filed/registry pairs (2026-10-25), but also S.B., the Bachelor of Science, written SB by 23 ClinicalTrials.gov officials (9 aft… — clash is the en credential SB; prefer pt-BR settles it only if the agnomen is a (default = false) vocabulary reading
#267 blessed the Cyrillic joining, and marking it would break that reading in the one-case spellings where nothing else decides — #267 Cyrillic joining
b
—
ст
ru
generation
vocab/ru.toml:46
barely attested after a name, and a plausible false positive among two-letter Cyrillic abbreviations; deferred since #269 — barely attested; Russian data decides
c
DF
ml
sk
generation
vocab/sk.toml:4
pack-shaped: real and standard, but collides with ML initials in other languages written in Latin script — as cs ml
a
DF
st
sk
generation
vocab/sk.toml:18
pack-shaped: real and standard, but St. is Saint in other languages written in Latin script — cs st is already default = false; these three are excluded instead
a
DF
ml
sl
generation
vocab/sl.toml:4
pack-shaped: real and standard, but collides with ML initials in other languages written in Latin script — as cs ml
a
DF
st
sl
generation
vocab/sl.toml:18
pack-shaped: real and standard, but St. is Saint in other languages written in Latin script — cs st is already default = false; these three are excluded instead
a
DF
fru
sv
salutation/after_given
vocab/sv.toml:4
a Cameroonian surname (~10,800, the note above), and middle names are drawn from surnames — surname evidence is Cameroonian, another language
needs a head-peel mechanism and a Thai reader's vetting
c
rule (attached head peel)
bay
tr
salutation
vocab/tr.toml:4
Turkish Mr., and a surname borne in Hungary, which writes the surname first, where the title claim acts, so it fails C-i — clash is the Hungarian surname, surname-first; strict tr drops it
a
DF+ST
baba
tr
generation
vocab/tr.toml:19
collides inside Turkish, and Turkish puts the junior word before the name — collides inside Turkish, and is written before the name
b
—
kıdemli
tr
generation
vocab/tr.toml:25
a rank word (Kıdemli onbaşı); Turkish writes Jr. or a parenthesis, (oğul) — rank word
b
—
й
uk
conjunction/may_be_initial
vocab/uk.toml:49
#267 blessed the Cyrillic joining, and marking it would break that reading in the one-case spellings where nothing else decides — #267 Cyrillic joining
b
—
і
uk
conjunction/may_be_initial
vocab/uk.toml:41
#267 blessed the Cyrillic joining, and marking it would break that reading in the one-case spellings where nothing else decides — #267 Cyrillic joining
b
—
пан
uk
salutation/after_given
vocab/uk.toml:4
a surname in Cyrillic (Wikidata), and middle names are drawn from surnames — surname/given evidence is mostly US Census bearers of the same word; a property cannot be default = false today
c
DF-prop
bon
und
particle
vocab/und.toml:13
no particle use found in any name, and it is borne as a given name and as a surname (the counts on its name readings), which the particle reading joined to the next wo… — no particle use found (#766)
b
—
dí
und
particle
vocab/und.toml:19
no particle use found in any name; its Wikidata bearers are Chinese given names romanized Dí, which the particle reading joined to the next word — no particle use found (#766)
b
—
janab
ur
salutation
vocab/ur.toml:4
unverified, so not shipped: the Devanagari जनाब and Bengali জনাব ship, and the Latin spelling needs its own check (the sri/shri pattern) — unverified; native spellings ship
c
—
ông
vi
salutation
vocab/vi.toml:8
Ông is a Vietnamese surname and Vietnamese names lead with the surname, the position the title claim acts on; pinned by the case row salutation_that_leads_a_surname_st… — same-language surname in the leading slot; no pack settles it
b
—
bà
vi
salutation
vocab/vi.toml:4
Vietnamese Mrs., refused as ông's pair without evidence of its own: #606 judged the excluded side from general knowledge, with no count taken (decisions/salutation-tit… — unmeasured; ông's pair
c
—
ajala
yo
generation
vocab/yo.toml:12
a Yoruba surname — same-language surname
b
—
东野
zh
surname (ZH pack)
decisions/W1 Declined
no attested bearer, or the first character alone opens names
b
—
东门
zh
surname (ZH pack)
decisions/W1 Declined
no attested bearer, or the first character alone opens names
married double surnames: longest match would cut 李林伟
b
—
谷梁
zh
surname (ZH pack)
decisions/W1 Declined
no attested bearer, or the first character alone opens names
b
—
部長
zh
professional_honorific/attached
vocab/zh.toml:140
長 alone is a borne given name, so 阿部長 can be 阿部 + 長 (#707). The measurement found no such bearer, as it found none for the words that shipped; the refusal rests on the… — the clash is inside the word's own script and language
b
—
部长
zh
professional_honorific/attached
vocab/zh.toml:148
the simplified twin of 部長, declined with it (#707) — the clash is inside the word's own script and language
Phase 3 probe: missing foreign titles and function-word/credential collisions
Read-only research for #753 (vocabulary Phase 3, language packs). Measured 2026-10-27 on cfe8bf92 (master after 2.7.0, 2.8 cycle open). No tracked file changed. Local corpora were read from the cache; nothing here quotes a real name. Every name below is made up.
Words already recorded as excluded (pan, ing, heer, mst, the cs/pl salutations) belong to the kept-out sweep in the comments above. They are marked "(recorded)" here and not reargued.
Summary
The honorifics are covered. Occupational titles in other languages are not. Of the 9 "Mr/Mrs" families checked (es, pt, fr, de, it, nl, pl, cs, tr), the vocabulary holds almost every bare form: Señor, Senhora, Monsieur, Herr, Frau, Signora, Mevrouw, Paní, Slečna. The missing ones are Don, Doña and Dona, Pan and Pani, the Turkish forms (Bey, Hanım, Bayan, Sayın), Heer, and French M..
Across the eight occupational families (professor, doctor, engineer, judge, senator, reverend, lawyer, architect), the vocabulary holds the English word, plus prof, dr, dra, mgr, pastor and imam. It holds no bare full-word form in any other language: 0 of about 120 forms checked.
The abbreviations already work by shape. Every period abbreviation tried reads as a title through rules/H2's leading shape, including the interior-period and stacked forms: Profa., Prof.ª, Dott.ssa, Sig.ra, Dipl.-Ing., Dr hab. inż., MUDr., Doç. Dr., Mr. drs.. The whole gap is bare words, which become the given name (Profesor Juan Pérez → given 'Profesor').
No corpus writes these words often enough to rank them.
The PSC title box held 888,830 filed titles. Only 1,291 (0.15%) are words outside titles ∪ titles_ambiguous. Most of those are English typos (mt, nr, mis, mss), English phrases (the hon, executors of, managing director) or job titles.
Foreign filers on a UK form type English titles: Romanian, Polish, Italian, French and Spanish filers each write "mr" in 60–70% of their boxes.
The largest foreign title words in the PSC misses are m (French M.: 70 records, plus 40 non-UK filers' m boxes), engr/eng/ing, dott, sig, drs, mudr, jonkheer, pan and bay, each at 2–11.
Across the 8 local corpora, the missing bare occupational words almost never open a name as a title (tools/vocab/word_report.py --rank). Where they open a name at all, the word is a surname or given name: richter 327, pan 270, hakim 186, don 1,045, dona 59.
The committed corpora (6,853 names) hold none, apart from CLDR/rules rows for sig, pani, sigra and dipl-ing.
So no language's pack can be justified by corpus incidence. It would have to rest on primary sources (style guides, government forms), and on the structural problem in (4).
The structural problem is bigger than the wordlist. Adding the titles is not enough:
With profesora and ministro added, Profesora de Historia Ana López still reads as title 'Profesora' and family 'de Historia Ana López'. Rule P1 folds the never-given particle de, and rule P4 says titles don't move the opening position.
Ministro da Fazenda Carlos Souza reads as given 'da', because da is an ambiguous particle.
Making de and da conjunctions globally fixes both phrases (title 'Profesora de Historia'), but it breaks every surname: Ana de Souza → given 'Ana de Souza'.
What a pack needs is a connective that counts only inside a title run. That is an H9/P3 rule question, not a wordlist one.
Function-word/credential collisions: 9 distinct words (15 language/word pairs).
Three are already particles or conjunctions: do, i, abd.
Six are not: am (de), ed (it), od (it, pl, cs), v (cs), se (cs), ala (ar).
The harm stays narrow. A credential reading needs the word after a full name and a comma, or a trailing bare word with the count to spare. In the middle of a name each one reads as a middle word.
One made-up shape loses its given name outright: Haddad, Abd reads as family 'Haddad', suffix 'Abd'.
Particle words that a pack would add (el, des, les, il, lo, zum, zur, ten, ben, bou, ul, abi, dalla) collide with no suffix set.
Languages where enough is missing to justify a pack (bare occupational forms, plus honorifics the default lacks):
es and pt. The whole occupational family is missing, along with Don/Doña/Dona, and they have the de/da phrase problem.
fr. Maître, Docteur, Professeur and M. are missing.
it. Dottore and Avvocato are missing, though the abbreviations work by shape.
tr. The postnominal Bey and Hanım are a separate shape (see shape 7).
de, pl and cs. Here the bare forms rarely precede a name in writing, and the abbreviations dominate and already work.
1. Titles that real filers write and the vocabulary misses (psc-individuals)
Population: 1,040,708 PSC records. 888,830 have a filed title box. The fold is local_corpora.word_key. A box hits when every word in it is in titles ∪ titles_ambiguous.
shape of the missed box
records
share of filed titles
bare word
641
0.07%
multi-word box
533
0.06%
other dotted (M., Dipl-Ing, H.E.)
86
0.01%
period abbreviation (Engr., Ing., Brig., MUDr., Drs.)
31
<0.01%
total
1,291 records, 609 distinct boxes
0.15%
Top misses, as boxes in key form, with each box's top nationalities. Boxes that were a filer's own name are left out.
the estate of / executors of / exors of (all variants)
~110
multi
british
the hon / the honourable / the rt hon / the most hon
~50
multi
british (these PARSE fine: title 'The Hon')
my, mss, m/s, mra, mrd, mrr, misd, …
~80
bare (typos)
british
revd
15
bare
british 14
engr
11
period
british 4, pakistani 4, nigerian 1
eng
7
bare
egyptian 3, romanian 2, iranian 1
ing
7
period
czech 4, slovak 2, austrian 1 (recorded)
mst
6
bare
bangladeshi 6 (recorded; forename box 43 of 49, a given-name abbreviation like md)
directeur
4
bare
comoran, french, tunisian
hrh prince / hrh / hh / hh sheikh / hsh prince
13
bare/multi
saudi, emirati, qatari, liechtenstein
sig
3
bare
italian 3
alhaji
2
bare
nigerian, british
drs
2
period
dutch 2
dipl-ing / dipl ing
4
dotted/multi
austrian, dutch, german, slovak
dott
2
bare
italian, ghanaian
mudr
2
period
slovak, czech
jonkheer
2
bare
dutch 2
pan
2
bare
polish 2 (recorded)
bay
2
bare
turkish 2
very reverend / rt revd / revd canon
6
multi
british, irish
Title boxes from non-UK nationalities, excluding the English core (mr, mrs, ms, miss, dr, prof, sir, lady, mx, dame, lord, rev). Hits and misses mixed:
director 247, ceo 99, madam 69, mister 62, professor 61, me 50, sr 42, m 40, doctor 31, md 26, owner 22, president 19, reverend 14, mis 13, founder 13, herr 13, sheikh 12, mme 11, master 11, monsieur 10, sra 8, baron 8, domnul 8, engr 7, ing 7, frau 4, pastor 4, directeur 4, signor 3, sig 3, madame 3, …
Native honorifics stay in single digits, beside thousands of "mr" from the same nationalities.
The English words this turned up in passing, with nothing recorded about them (no TOML entry, no decisions mention):
very as a modifier of Reverend: Very Reverend John Smith → given 'Very'.
HRH Prince Ali Haddad → given 'HRH'. The H9 phrase never starts, because HRH is not a title.
The Executors of John Smith → given 'The Executors of John'. This is garbage input, but 110 filers wrote it.
UKEC (15,213 multi-word names): 8,700 lead with a listed title. Among leading words not listed, only the (29, which parses fine as "The Hon"), m (9), don (3) and md (3) touch the candidate list. One period-shaped miss. UKEC adds nothing for foreign titles.
2. Translated title families
Key: T = listed title. shape = not listed, but a title by rules/H2 when it opens a name with its period. — = missing (a bare form reads as the given name). risky = borne as a name (counts from tools/name_usage.py --no-wikidata for the six words checked, or from the PSC forename box). seen = the incidence the local corpora show where the word opens a name or follows a comma (word_report --rank). Nearly all of those openings are surnames or given names, not titles.
family
es
pt
fr
de
it
nl
pl
cs
tr
ar-Latin
professor
profesor —, profesora —, catedrático —, Prof. T, Profa. shape
abogado —, abogada —, Lic. shape (seen 20 after a comma), licenciado —
advogado —, advogada —
maître —, Me T, avocat —
Rechtsanwalt —, RA T+SA
avvocato —, Avv. shape
advocaat —, mr. T
adwokat —, mecenas —, mec. shape
advokát —, JUDr. shape
avukat —, Av. shape (av is a P!)
muhami —
architect
arquitecto/a —, Arq. shape
arquiteto/a —, Arq. shape
architecte —
Architekt —, Architektin —
architetto/a —, Arch. shape
ir. shape
architekt —
architekt —
mimar —
—
honorific
Señor/a T, Srta T, Don — risky (SSA given 168,839+; 1,045 opens, 2,820 after a comma), Doña —
Senhor/a T, Dona — risky (SSA 19,032+, 158 after a comma)
Monsieur T, Madame T, Mme T, M. — (a bare initial: 1,604 opens, 74 PSC title boxes)
Herr T, Frau T
Signor/a T, Sig. shape, Sig.ra shape
Mevrouw T, dhr T, heer (recorded), mw —
Pan (recorded), Pani — (cs paní T), Panna —
Pán —, Paní T, Slečna T
Bay — risky (122 opens), Bayan —, Bey — postnominal, risky (US surname 5,453), Hanım — postnominal, Sayın —
Alhaji — (151 opens, title box 2 vs forename box 1)
Notes:
pr (French Pr., professeur) is listed as missing above. It already appears 1,366 times after a comma, and those PR/Pr are credentials (Public Relations, etc.).
av (Turkish Av., Avukat) is a nb/sv particle. Av. Ahmet Yılmaz still reads title 'Av.', because the shape rule runs first.
don and dona are the clearest "risky" words. The Spanish honorific Don is also a common English given name, and Dona is one too. A pack could list them only for a caller who opted in.
3. Function words that collide with credentials
Checked: the articles, prepositions and conjunctions of es, pt, fr, de, it, nl, pl, cs and tr, plus Arabic-in-Latin particles (≈250 words). Each was checked against suffix_acronyms (SA), suffix_acronyms_ambiguous (SAamb), suffix_words (SW) and suffix_words_ambiguous, and against particles (P), conjunctions (C), conjunctions_ambiguous and bound_given_names.
word
languages
in sets
already P/C?
what parse() gives on a made-up name
do
pt, pl, cs
SA, SAamb, P
yes
Maria do Carmo Velasco → given 'Maria', family 'do Carmo Velasco'; Ana Velasco, DO → suffix 'DO'; Ana Velasco Do → family 'Do' [SUFFIX_OR_NAME]
am
de
SA
no
Klaus am Rhyn → middle 'am', family 'Rhyn' (family should be 'am Rhyn'); Klaus Rhyn, AM → suffix 'AM'
i
it (pl.), pl, cs, ca
SW, C, Camb
yes
Joan Garcia i Puig → family 'Garcia i Puig' (good); Joan Garcia I → suffix 'I' [SUFFIX_OR_NAME]
ed
it
SA, SAamb
no
Paolo Rossi ed Bianchi → middle 'Rossi ed'; Bianchi, Ed → given 'Ed' [SUFFIX_OR_NAME] (the gate holds)
od
it (archaic), pl, cs
SA
no
Anna od Krzyża → middle 'od' (a religious-name shape: should be family or a byname 'od Krzyża'); Jan Lesny, OD → suffix 'OD'
v
cs
SW (roman numeral)
no
Jan Novak v Lese → middle 'Novak v'; Jan Novak, V → suffix 'V' (intended)
se
cs
SA, SAamb
no
no realistic name shape; a reflexive, not a name word
ala
ar
SA, SAamb
no (a given name)
Ala Haddad → given 'Ala'; Haddad, Ala → given 'Ala' [SUFFIX_OR_NAME] (the gate holds)
abd
ar
SA, bound
yes (bound)
Abd Rahman Haddad → given 'Abd Rahman' (good); Haddad, Abd → suffix 'Abd', no given name
Count: 9 distinct words, 15 language pairs. Six of the words are not in any particle or conjunction set. The real harm is narrow:
Haddad, Abd, where abd is an unambiguous acronym and loses a given name.
am and od, where the particle is not joined to the family name. That one is a missing particle, not a credential problem. Once listed as particles, the credential reading after a comma would remain, as it does for do.
A pack that adds am or od as a particle meets the credential set exactly as do already does. So the per-pack overlap check has a precedent: do sits in P ∩ SAamb today.
4. Example shapes for the design session
All made up. "Today" is parse() on cfe8bf92. "Wanted" is what a pack would deliver.
#
shape
today
wanted (with the pack)
what decides it
1
Profesora de Historia Ana López
given 'Profesora', family 'de Historia Ana López'
title 'Profesora de Historia', given 'Ana', family 'López'
Adding profesora gives title 'Profesora', family 'de Historia Ana López' (the P1 fold). Making de a conjunction globally fixes this one and breaks Ana de Souza (→ given 'Ana de Souza'). So it needs de as a connective inside a title run only.
2
Ministro da Fazenda Carlos Souza
given 'Ministro', family 'da Fazenda Carlos Souza'
title 'Ministro da Fazenda', given 'Carlos', family 'Souza'
With ministro added, it reads given 'da', because da is an ambiguous particle and the title leaves it opening the name. This is worse than today.
A plain wordlist; adding each one works (verified for senador, padre, juez with a custom Lexicon).
4
Directeur Général Jean Dupont
given 'Directeur', middle 'Général Jean'
title 'Directeur Général'
A modifier after its head: the H9 "qualifier written after its head" shape, now in French. Works once both are titles.
5
Don Juan Pérez / Dona Maria Souza
given 'Don' / 'Dona'
title, but only for a Spanish/Portuguese caller
The pack is opt-in because the default can't take the word: Don is an English given name (SSA 168,839+).
6
M. Jean Dupont
given 'M.', middle 'Jean'
title 'M.' under a French pack
A single letter is never H2's shape ({2,}), so this is an initial-vs-title fork that only a language decides. 70 PSC boxes.
7
Ahmet Yılmaz Bey, Ayşe Yılmaz Hanım
family 'Bey' / 'Hanım'
title (postnominal honorific)
A trailing bare title. The doctrine keeps bare trailing words as names (H5); H8's after-given salutation is family-comma only. Turkish puts the honorific after the given name with no comma (Ahmet Bey), so this is a new position rule. Bey is also a US surname (5,453).
8
Juan Pérez, Profesor
given 'Profesor', family 'Juan Pérez' (the comma reads as a family comma)
title 'Profesor'
With the word added, this reads correctly (title 'Profesor'), so it is the vocabulary that decides.
9
Haddad, Abd
family 'Haddad', suffix 'Abd'
given 'Abd'
A function word read as a credential: abd is in SA unambiguously. Move it to SAamb, or let a pack's given/bound reading derive the ambiguity.
10
Klaus am Rhyn / Anna od Krzyża
middle 'am' / 'od'
family 'am Rhyn' / 'od Krzyża'
Particles missing from the default. Adding them meets SA (am, od), with do as the precedent.
11
HRH Prince Ali Haddad, HH Sheikh …
given 'HRH' / 'HH'
title 'HRH Prince'
English and Gulf style abbreviations, not a pack question. Listed so it doesn't get lost.
12
Mst Rahima Khatun
given 'Mst'
given 'Mst' (correct today)
PSC: 43 of 49 filers put Mst in the forename box. If a bn pack ever lists মোসাঃ's transliteration, it is a given-name abbreviation like Md (#853), not a title.
Shapes that already work and need nothing (with their periods): Dott.ssa, Sig.ra, Prof.ª, Profa., Dra., Dipl.-Ing., Prof. Dr.-Ing., Dr hab. inż., Mr. drs., Ir., MUDr., Doç. Dr., Av., Ks., Mec., Lic., Arq., Engr., Eng.; Ing. Jan Novák, CSc. (suffix 'CSc.'). Herr Prof. Dr. Hans Müller reads title 'Herr Prof. Dr.'. Hans Müller, Dipl.-Ing. reads title 'Dipl.-Ing.' after the comma.
5. Questions for the Phase 3 design
A connective inside a title run. Should a pack declare its title-phrase connectives (de, da, do, del, für, voor), as words that join a title run (H9/P3) while staying particles everywhere else? Shapes 1 and 2 show that no wordlist edit can deliver this. Is it a pack field, or a property on the particle's reading, scoped to "after a title"?
What justifies a pack word when no corpus writes it? Every corpus we hold is a registry or catalog that strips titles, or a UK form where foreigners type "Mr". Is a primary source (a style guide or a government form) enough? Or does Phase 3 need a corpus that writes titles in other languages before shipping one, such as news bylines or JRC's multilingual spellings scanned for title-opening runs?
Gendered pairs. Most missing families come as m/f pairs (profesor/profesora, doutor/doutora, ingeniero/ingeniera). Does the pack model gender as salutation's gender does for occupational titles, and does anything read it?
Risky honorifics as opt-in only.don, dona, bay, bey, pan, M., hakim and richter cannot be default titles. Is "a pack word may be one the default refuses" the core licence of a pack? If so, does a pack word override a default excluded entry, and how is that override recorded?
Postnominal honorifics. Turkish Bey/Hanım, and Japanese 様 (already handled for CJK by W2's glue): does a pack get to declare an after-given salutation outside the family-comma position H8 allows?
Credential overlap per pack. A pack adding am or od as a particle lands in SA, as do already does. Should the build's derived ambiguity (phase 2's "a name reading beside a credential makes it ambiguous") also fire for a particle reading, so that Haddad, Abd's class is closed by construction rather than by a list?
Single-letter titles. French M. is the one honorific that rules/H2's {2,} shape can never reach, and that loses to the initial reading. Is a one-letter title a pack-only exception to the initial veto?
Activity
Alexandre Dumas filsandJiří Dienstbier ml.: generational words that collide outside their language #684hiandbnlocale packs for Latin-transliterated Indic honorifics #345Juan Sta. Mariaread familySta. Maria? Today it reads middleSta., familyMaria#725derek73 commentedon Oct 24, 2026
A first measured case for "a pack prefers its language": Nepali (
ne) against the Hindi and Marathi vocabulary.The nepal-candidates local corpus (#866) writes each of 125,331 local-election candidates in Devanagari beside the Election Commission's own romanization, so it shows two languages' vocabularies disagreeing about one word, with the writer's intent recorded beside it.
श्री(#870).hi.tomlandmr.tomllist it as a salutation (Shri, Mr.; #269), and in a Hindi or Marathi name that is right. In Nepali names it is also the first element of a given name:श्रीopening the nameShree193,Shri6,Sri2),Mrin 2श्रीglued into the given nameSo
श्री कृष्ण श्रेष्ठreads titleश्रीwhile its own romanizationShree Krishna Shresthareads givenShree.Buddha,Siddha,Gyani,Guru(#869). Title words in the default vocabulary (buddha/siddhareligious inen.toml,gyaniinpa.toml,guruthe renunciate title of #346), and the opening element of common Nepali compound given names:Buddha Bahadur Tamangreads titleBuddha, givenBahadur. Of the names opening with one of them, 172 read it as a title.Why this is a pack question and not a default change. Both readings are right for some language: the default loads every language, so it can only pick one, and either pick breaks the other language's names. Decision 6 (decisions/vocabulary-model) is the mechanism for exactly this: a
nepack that prefers its language settles the clash where Nepali has a vocabulary reading, readingश्रीandBuddhaas given-name elements, while the default and ahipack keep the salutation. The Phase 2 spec (#752) decides how the default gates title words that are also names (its D12); the Nepali cases may still belong to the pack rather than to the default gate, and that is recorded there.What a
nepack would carry, from these two issues: given-name readings forश्री(spaced, opening a name) and forbuddha,siddha,gyani,guruopening a compound given name, withश्रीमती(92 names, romanizedShreematiin 62 andMrs/Msin 11) left a salutation. The corpus's two scripts give the pack its own test: a Devanagari name and its romanization should read the same roles.derek73 commentedon Oct 25, 2026
Dotted and joined Nepali surnames for the
nepack (from #864, closed by #872)#872 keeps exactly two dotted single letters (
B.K.,K.C.,G.C.) as a name word at the end of a name, by shape, in the default. Some spellings are out of a shape rule's reach and belong to anepack that prefers a family reading:Ram Bahadur KC,BK,Bk).kcandbkare in no default set, so these already read as names, but nothing marks them as surnames. A pack can givebk,kc,gc,bcanddca family reading.dc/D.C., a live credential in the default: 99,172 NPPES providers write DC (Read a surname written as two dotted initials as a name, not a credential (#864) #872), against 21 nepal-candidates pairs ending in it. The default keeps the credential, andneshould flip it.Jane Doe MA R.T.), which rules/S3 records as an accepted cost in the default. Undernethe trailing pair should be the family.nepack would dropdc's credential reading outright.Counts, nepal-candidates (Election 2079, 126,981 name pairs), pairs whose romanized name ends in the word, any spelling:
bk2,168,kc497,gc79,bc70,dc21.K.C.alone is written 341 times,K.C126 andKc21.mcends 2 pairs andgdnone, so neither is on the list.Measure the pack against nepal-candidates' script pairs, comparing roles rather than text: the Devanagari spelling says which word is the surname. That is the spelling-consistency measure the phase 2 spec (#752) uses.
derek73 commentedon Oct 28, 2026
Phase 3 input: words kept out of the default vocabulary (#753)
Swept 2026-10-27 on master
cfe8bf92, read-only. Sources: everyexcludedentry innameparser/vocab/*.toml;docs/design/decisions/(Excluded, Declined and Open blocks, removal records, and every mention of a pack or an opt-in); PR #132; #18, #99 and the closed issues and PRs that list words; the open issues #658, #514, #804, #317, #345, #684, #725, #870 and #913, and #753's comments; the four Python locale packs. No bearer lookups were run: every count below is copied from its source.The two figures
Words whose readings already clash between languages: 9, the same as the 2026-10-27 count.
abd(ar bound_given, en suffix),i(ca/pl conjunction, de/mul generation),st(cs generation, en/fr particle and title),ra(de title, en suffix),sr(en suffix, es/pt title),do(en credential, pt particle),mc(en particle and credential, ga/gd particle),vd(en credential, nl particle).de(a preposition in es/fr/it/pt, an article in nl). Prefer or strict changes nothing forde, since both kinds compile intoPARTICLES.Of the 110 words that appear in more than one file, these are the only clashes.
Readings with
default = false: 3. They are csst(generation, starší), dei(generation, the regnal ordinal written with its period) and esh(generation, hijo). All three are generation words that a period makes look like an initial (rules/T5).What the inventory says
Most candidates are not about clashes. The 9 clashing words are nearly all a pack can settle under prefer. The (a) rows below are mostly readings that are missing from the default entirely, so the main job of phase 3 is to turn readings ON, not to settle clashes. That supports what the orchestrating session found.
Mechanisms: most (a) rows need
default = false(DF, 22) ordefault = falseplus strict (DF+ST, 27). DF+ST is the case where the reading is right in its own language and its collision is with another language's name:pan(Chinese surname Pan),bay(a Hungarian surname),nic(English Nic),puan(an Indonesian given name),fil(a Slavic surname), and the Dutchan/in/to/ten.Prefer alone is small. Only 3 (a) rows (ms
btagainst the en credential Bt, cyabagainst the en military title, csbcagainst nebc) plus the PO+PR and DF+PR mixes are settled by prefer as the RFC defines it.Same-language clashes cannot be settled by any pack (the
filsargument). Most of the 189 (c) rows are this kind:ông,segundo,thiru,malam.For several of these, the phase 2j route (a given reading plus the H9 title phrase, as
sheikh,sultanandkingtook) is a better fit than a pack. I marked those "phase 2j route".The (b) rows are 156:
herren,heren);bon,dí,heer,gravos);cva,gaee,np);rai,cha,mai);Alexandre Dumas filsreads familyfils#679);gil,kil,m',pour);attachedexclusions, whose collision is in the word's own script.Languages with enough candidates to justify a pack
ne: yes, and the evidence is the strongest of any language.bk(2,168 candidate names),kc(497),gc(79),bc(70) anddc(21), withdcflipped from the en credential.श्री(201 of 215 names).guru/गुरु, which Derek already assigned to anepack (2026-10-24).Every one of these is a name reading.
default = falseis not allowed on the name kinds, so this pack needs a mechanism today's model does not have (Q1).hi/bn(Shiphiandbnlocale packs for Latin-transliterated Indic honorifics #345): yes, for the Latin transliterations:smt,shrimati,sushri,shriyut,shri,mst,adhyapak(DF+ST). About 30 more rows are (c) because the word is a name in the same language:kumari,babu,begum,acharya,sardar,pandit,sant, and the Tier 4 deferrals of decisions/indic-honorifics.The Czech, Slovak, Slovenian and Croatian group: yes, but small.
ml/st(generation; csstis already DF while csmland the hr/sk/slstare excluded instead, Q4),pan,roz,bc, and possiblymudr/phdr/mgr(Should a bareIngafter a comma be a credential?Viera Sevcikova, Ingreads givenIng, familyViera Sevcikova#848).ga/gd: yes, small.nic(decisions name "an opt-in Irish pack" as its home),mhic/mic/uí, and the unaccentedni/ui.o,na,ógandmórare (c).nl(andde): a small (a) set, all of the same shape. These are the particles that were confirmed regressions globally (an,in,ten,then,to,v; PR Add German/Dutch prefixes and German title/degree suffixes #191). Strict only removes the Korean and Vietnamese readings that break them (Park In Hwan,Nguyen To Nga) if those readings are recorded as name readings in the vocabulary (Q2).pt-BR: yes, small. The single-letter agnomensF/N(Should José Silva Júnior read Júnior as a suffix, as José Silva Junior does, and where do Filho, Neto and Sobrinho belong? #843, which leaves them to phase 3 explicitly),filandsb(DF+ST and DF+PR), and the unvetted abbreviations.cy: a candidate list, never vetted. It comes from PR Tussenvoegsels / family name prefixes support #132:ap,ab,ferchspellings. Some may be safe in the default.nb/sv: 36 (c) rows, all from PR Tussenvoegsels / family name prefixes support #132. These are the farm-name position words (nord,vestre,øvre…). Nobody ever judged them, and a Norwegian registry measurement would have to come first.Every other language has 1 to 3 candidates. That is not enough for a pack on its own, but a pack file costs nothing once the mechanism exists:
bay, frpère, itsig, ltjaun, mia, brar;bt/bte/puan;lo;aït.The locale packs today
ZHcarries 556 surnames (Simplified, Traditional, ranked and compound forms). They are a segmentation list, outside the per-word model, likeKOREAN_SURNAMES. Its keep-outs are recorded in decisions: married double surnames (李林), Japanese surnames (佐藤), and unattested compounds (东野,成公,宗政).JA,RUandTR_AZcarry empty lexicons._pipeline/_post_rules.py: whole-wordoğlu,qızı,kızı,uulu,оглы,кызы,улы…, and the endings-ovich/-ович…Summary
411 candidate readings: 150 from the TOML
excludedentries (102 word-level, 48 property-level) and 261 from decisions/, closed and open issues and PRs (one row per word-reading; a few spellings of one decision are rows of their own).By verdict: (a) 66, (b) 156, (c) 189
Pack candidates (a) by language, with mechanism:
(languages with no (a) and fewer than three (c) rows are left out of this table; every row is in the full table)
(a) rows by mechanism: DF+ST 27, DF 22, PO 6, PR 3, pack removes a property 3, DF-prop+ST 2, PO+PR 2, DF+PR 1
Questions for the Phase 3 design
Can a pack carry a name reading? Every
necandidate (bk,kc,gc,bc,dc, spacedश्री,guru's given reading) is afamilyorgivenreading.default = falseis refused on the name kinds, and in the default a name reading is not inert: it gates a clashing reading or marks a fork. The design needs either a pack-only file that the default does not load, ordefault = falseon name readings.Strict sees only recorded name readings. DF+ST is the largest group (27 rows). In it, strict is supposed to remove the other language's name, for example Pan, In, To, Nic, Bay, Sig and Puan. It can do that only if that name is recorded as a name reading in some file. Several are not (for example
inandtoas Korean and Vietnamese given names). Does phase 3 need a sweep that records those name readings first, or should the pack carry the reading ungated?Properties, not only readings. 48 exclusions refuse a property on a reading the default keeps:
after_given,attached,cased,may_be_initial. The one-case connective fork (ept,ica/pl,ynl) is something a pack is meant to remove, and decisions/3-0-reevaluations records that a pack "cannot express 'remove e'". Shoulddefault = false(or its pack-side opposite) apply to a property, and can a pack remove one?One shape, two encodings. cs
stisdefault = false, while csmland the hr/sk/slstandmlare excluded as "pack-shaped". Should phase 3 convert pack-shaped exclusions intodefault = falsereadings, so that an excluded reading again means "wrong everywhere"? The sweep would make that distinction mechanical: every (a) row in the table is an exclusion that would become a reading.How a tag filters. cs/sk/sl/hr share
ml/st, and ms/id sharepuan,putraandputri, where a strict ms pack would drop the Indonesian readings it needs. Shouldptmatchpt-BR, which holds every agnomen candidate? (Open under Phase 3: language packs that prefer or restrict their language #753.)Latin transliterations under strict. The hi/bn Latin forms clash both with names elsewhere (Indonesian Sri) and with names in the same language (Indian Shri/Sri given-name elements). A strict hi pack settles only the first. Is the remaining same-language cost accepted per word, as
grafandherrawere?Not every candidate is a pack question. About a dozen (c) rows wait on a rule, not a word:
úrfollows the name;นายneeds a head peel;M.is initial-shaped;Dr. rer. nat.modifiers.Others want the default's H9 route instead:
earl,donandbaron(Should Baron, Bishop, Judge and the other title words borne as names read as names outside a title phrase? (Baron Davis→ title 'Baron', no given name) #913), and the Arabic and Indic given-name titles. Phase 4's[rules]table, or phase 2j-style batches, may be the right home for them rather than a pack.What moves from the Python packs. ZH's surname list stays a segmentation list, and the Turkic and East Slavic markers live in regexes. Do they become TOML readings (a new
patronymicreading onoğlu, and so on), or stay rule data under phase 4?Measuring a pack. The snapshot and
compare.pyparse under the defaultLexicon, so neither can show what a pack changes (decisions/3-0-reevaluations). The agreement records score CLDR names under their language's pack since Measure the CLDR corpus with each locale pack too #673, andnepal-candidatesholds everynecandidate. Does each pack need its own local-corpus reading, the waynewould neednepal-candidates?Method and limits
default = falsereading the pack turns on;?and were judged (b) for having no stated language or use.ben,nic,o), 3 exist only as another kind (ab,e,i), and 75 are absent.Baron Davis→ title 'Baron', no given name) #913's remaining title words are not enumerated in decisions/. Onlybaron,earlanddonappear here.derek73 commentedon Oct 28, 2026
Full table, part 1 of 2
Sorted by language tag, then verdict.
derek73 commentedon Oct 28, 2026
Full table, part 2 of 2
Sorted by language tag, then verdict.
derek73 commentedon Oct 28, 2026
Phase 3 probe: missing foreign titles and function-word/credential collisions
Read-only research for #753 (vocabulary Phase 3, language packs). Measured 2026-10-27 on
cfe8bf92(master after 2.7.0, 2.8 cycle open). No tracked file changed. Local corpora were read from the cache; nothing here quotes a real name. Every name below is made up.Words already recorded as excluded (
pan,ing,heer,mst, the cs/pl salutations) belong to the kept-out sweep in the comments above. They are marked "(recorded)" here and not reargued.Summary
M..Across the eight occupational families (professor, doctor, engineer, judge, senator, reverend, lawyer, architect), the vocabulary holds the English word, plus
prof,dr,dra,mgr,pastorandimam. It holds no bare full-word form in any other language: 0 of about 120 forms checked.Profa.,Prof.ª,Dott.ssa,Sig.ra,Dipl.-Ing.,Dr hab. inż.,MUDr.,Doç. Dr.,Mr. drs.. The whole gap is bare words, which become the given name (Profesor Juan Pérez→ given 'Profesor').titles ∪ titles_ambiguous. Most of those are English typos (mt,nr,mis,mss), English phrases (the hon,executors of,managing director) or job titles.m(French M.: 70 records, plus 40 non-UK filers'mboxes),engr/eng/ing,dott,sig,drs,mudr,jonkheer,panandbay, each at 2–11.tools/vocab/word_report.py --rank). Where they open a name at all, the word is a surname or given name:richter327,pan270,hakim186,don1,045,dona59.sig,pani,sigraanddipl-ing.profesoraandministroadded,Profesora de Historia Ana Lópezstill reads as title 'Profesora' and family 'de Historia Ana López'. Rule P1 folds the never-given particlede, and rule P4 says titles don't move the opening position.Ministro da Fazenda Carlos Souzareads as given 'da', becausedais an ambiguous particle.deanddaconjunctions globally fixes both phrases (title 'Profesora de Historia'), but it breaks every surname:Ana de Souza→ given 'Ana de Souza'.do,i,abd.am(de),ed(it),od(it, pl, cs),v(cs),se(cs),ala(ar).Haddad, Abdreads as family 'Haddad', suffix 'Abd'.el,des,les,il,lo,zum,zur,ten,ben,bou,ul,abi,dalla) collide with no suffix set.Languages where enough is missing to justify a pack (bare occupational forms, plus honorifics the default lacks):
de/daphrase problem.M.are missing.1. Titles that real filers write and the vocabulary misses (psc-individuals)
Population: 1,040,708 PSC records. 888,830 have a filed title box. The fold is
local_corpora.word_key. A box hits when every word in it is intitles ∪ titles_ambiguous.M.,Dipl-Ing,H.E.)Engr.,Ing.,Brig.,MUDr.,Drs.)Top misses, as boxes in key form, with each box's top nationalities. Boxes that were a filer's own name are left out.
Title boxes from non-UK nationalities, excluding the English core (mr, mrs, ms, miss, dr, prof, sir, lady, mx, dame, lord, rev). Hits and misses mixed:
The English words this turned up in passing, with nothing recorded about them (no TOML entry, no decisions mention):
revd,hrh,hh,hsh,eur(Eur Ing),engr,jonkheer,alhaji.veryas a modifier of Reverend:Very Reverend John Smith→ given 'Very'.HRH Prince Ali Haddad→ given 'HRH'. The H9 phrase never starts, because HRH is not a title.The Executors of John Smith→ given 'The Executors of John'. This is garbage input, but 110 filers wrote it.UKEC (15,213 multi-word names): 8,700 lead with a listed title. Among leading words not listed, only
the(29, which parses fine as "The Hon"),m(9),don(3) andmd(3) touch the candidate list. One period-shaped miss. UKEC adds nothing for foreign titles.2. Translated title families
Key: T = listed title. shape = not listed, but a title by rules/H2 when it opens a name with its period. — = missing (a bare form reads as the given name). risky = borne as a name (counts from
tools/name_usage.py --no-wikidatafor the six words checked, or from the PSC forename box). seen = the incidence the local corpora show where the word opens a name or follows a comma (word_report --rank). Nearly all of those openings are surnames or given names, not titles.Notes:
pr(French Pr., professeur) is listed as missing above. It already appears 1,366 times after a comma, and those PR/Pr are credentials (Public Relations, etc.).av(Turkish Av., Avukat) is a nb/sv particle.Av. Ahmet Yılmazstill reads title 'Av.', because the shape rule runs first.donanddonaare the clearest "risky" words. The Spanish honorific Don is also a common English given name, and Dona is one too. A pack could list them only for a caller who opted in.3. Function words that collide with credentials
Checked: the articles, prepositions and conjunctions of es, pt, fr, de, it, nl, pl, cs and tr, plus Arabic-in-Latin particles (≈250 words). Each was checked against
suffix_acronyms(SA),suffix_acronyms_ambiguous(SAamb),suffix_words(SW) andsuffix_words_ambiguous, and againstparticles(P),conjunctions(C),conjunctions_ambiguousandbound_given_names.parse()gives on a made-up nameMaria do Carmo Velasco→ given 'Maria', family 'do Carmo Velasco';Ana Velasco, DO→ suffix 'DO';Ana Velasco Do→ family 'Do' [SUFFIX_OR_NAME]Klaus am Rhyn→ middle 'am', family 'Rhyn' (family should be 'am Rhyn');Klaus Rhyn, AM→ suffix 'AM'Joan Garcia i Puig→ family 'Garcia i Puig' (good);Joan Garcia I→ suffix 'I' [SUFFIX_OR_NAME]Paolo Rossi ed Bianchi→ middle 'Rossi ed';Bianchi, Ed→ given 'Ed' [SUFFIX_OR_NAME] (the gate holds)Anna od Krzyża→ middle 'od' (a religious-name shape: should be family or a byname 'od Krzyża');Jan Lesny, OD→ suffix 'OD'Jan Novak v Lese→ middle 'Novak v';Jan Novak, V→ suffix 'V' (intended)Ala Haddad→ given 'Ala';Haddad, Ala→ given 'Ala' [SUFFIX_OR_NAME] (the gate holds)Abd Rahman Haddad→ given 'Abd Rahman' (good);Haddad, Abd→ suffix 'Abd', no given nameCount: 9 distinct words, 15 language pairs. Six of the words are not in any particle or conjunction set. The real harm is narrow:
Haddad, Abd, whereabdis an unambiguous acronym and loses a given name.amandod, where the particle is not joined to the family name. That one is a missing particle, not a credential problem. Once listed as particles, the credential reading after a comma would remain, as it does fordo.A pack that adds
amorodas a particle meets the credential set exactly asdoalready does. So the per-pack overlap check has a precedent:dosits in P ∩ SAamb today.4. Example shapes for the design session
All made up. "Today" is
parse()oncfe8bf92. "Wanted" is what a pack would deliver.Profesora de Historia Ana Lópezprofesoragives title 'Profesora', family 'de Historia Ana López' (the P1 fold). Makingdea conjunction globally fixes this one and breaksAna de Souza(→ given 'Ana de Souza'). So it needsdeas a connective inside a title run only.Ministro da Fazenda Carlos Souzaministroadded, it reads given 'da', becausedais an ambiguous particle and the title leaves it opening the name. This is worse than today.Senador Juan Pérez,Juez …,Doutor …,Maître …,Rechtsanwalt …Directeur Général Jean DupontDon Juan Pérez/Dona Maria SouzaM. Jean Dupont{2,}), so this is an initial-vs-title fork that only a language decides. 70 PSC boxes.Ahmet Yılmaz Bey,Ayşe Yılmaz HanımAhmet Bey), so this is a new position rule. Bey is also a US surname (5,453).Juan Pérez, ProfesorHaddad, Abdabdis in SA unambiguously. Move it to SAamb, or let a pack's given/bound reading derive the ambiguity.Klaus am Rhyn/Anna od Krzyżaam,od), withdoas the precedent.HRH Prince Ali Haddad,HH Sheikh …Mst Rahima KhatunMstin the forename box. If a bn pack ever lists মোসাঃ's transliteration, it is a given-name abbreviation likeMd(#853), not a title.Shapes that already work and need nothing (with their periods):
Dott.ssa,Sig.ra,Prof.ª,Profa.,Dra.,Dipl.-Ing.,Prof. Dr.-Ing.,Dr hab. inż.,Mr. drs.,Ir.,MUDr.,Doç. Dr.,Av.,Ks.,Mec.,Lic.,Arq.,Engr.,Eng.;Ing. Jan Novák, CSc.(suffix 'CSc.').Herr Prof. Dr. Hans Müllerreads title 'Herr Prof. Dr.'.Hans Müller, Dipl.-Ing.reads title 'Dipl.-Ing.' after the comma.5. Questions for the Phase 3 design
de,da,do,del,für,voor), as words that join a title run (H9/P3) while staying particles everywhere else? Shapes 1 and 2 show that no wordlist edit can deliver this. Is it a pack field, or a property on the particle's reading, scoped to "after a title"?salutation'sgenderdoes for occupational titles, and does anything read it?don,dona,bay,bey,pan,M.,hakimandrichtercannot be default titles. Is "a pack word may be one the default refuses" the core licence of a pack? If so, does a pack word override a defaultexcludedentry, and how is that override recorded?amorodas a particle lands in SA, asdoalready does. Should the build's derived ambiguity (phase 2's "a name reading beside a credential makes it ambiguous") also fire for a particle reading, so thatHaddad, Abd's class is closed by construction rather than by a list?M.is the one honorific that rules/H2's{2,}shape can never reach, and that loses to the initial reading. Is a one-letter title a pack-only exception to the initial veto?Baron Davis→ title 'Baron', no given name) #913's batches rather than Phase 3? None is recorded anywhere.