Skip to content

Should a two-word given name like María José or Min Ho fill given, instead of given + middle? #704

Closed

Description

@derek73

Today the parser calls the first given-name word the given name and puts the rest in middle. That's the English-language convention (John Quincy Adams). Several naming traditions treat a multi-word given name as one unit instead: Spanish María José and Juan Antonio, Portuguese Maria do Carmo, Arabic Muhammad Salim, Korean Min Ho, CLDR's own given field (Cornelia Margarita).

Measured by the report-only view added in #703 (cldr_agreement.py --split): 265 CLDR renderings and 3 rows of the conventions corpus split given and middle differently from what the source states. Most of the 265 come from this convention, not a defect: Cornelia Margarita (given) + Sofia Aletta (given2), where the parser reads given Cornelia, middle Margarita Sofia Aletta. GND and Wikidata record every given name in one field, so they don't state the split and aren't scored on it.

Options:

Option middle means Effect
(a) keep today's convention every given-name word after the first the 265 are recorded as accepted differences and the split can be ratcheted now
(b) one given unit only an explicitly secondary name breaks what callers expect from middle in English names
(c) per language (a) by default; a language pack declares compound given names (es, pt, ar, ko) the default stays as it is; packs get it right for their culture

Open questions:

  • If (c): what does a pack declare: a list of compound given names, a rule (María + one more word), or both?
  • Where do a Sikh religious name (Kaur) and an English given name beside a Chinese one (Lim Mei Ling Jessica) go? Neither is a middle name.
  • The conventions corpus states a few rows with a stopgap given2 (Tran Thi Mai, Harpreet Kaur Dhillon, Lim Mei Ling Jessica). Restate them once this is decided.

Replaces the open questions in #702. The split view is in #703.

Activity

  1. self-assigned this
    on Oct 17, 2026
  2. added
    vocabularyPer-word vocabulary model and language packs
    on Oct 19, 2026
  3. added this to the 3.0 milestone on Oct 29, 2026
  4. derek73 commented on Oct 31, 2026

    @derek73
    OwnerAuthor

    Status after 3.0's sub-phase 4g (#954): option (c) shipped. Policy(two_given_names=True) (rules/O7) reads a two-word given name as one given, off by default and available to a pack's [rules]. Parser(policy=Policy(two_given_names=True)).parse("Juan Carlos Pérez") gives given Juan Carlos. With #961, a word O6's given-name list leaves out of the family is O7's to take. locales.ES keeps O7 off: on PSC it moved Spanish filers from 31.8% to 15.7%, because they type the second given name into the middle box.

    Still open here, and cited as such by docs/design/decisions/O7-two-given-names.md: which particle phrases complete a given name (Maria do Carmo Silva), and whether that is a reading on the word or a list the rule kind holds. Also still open from the issue: where Kaur and an English given name beside a Chinese one belong.

  5. derek73 commented on Nov 3, 2026

    @derek73
    OwnerAuthor

    A Catalan data point. dels (the plural of del) appears in ORCID only in Spanish researchers' given-name box (5) and never in the family box. It is the given name Maria dels Àngels. No vocabulary file lists it, and that is what keeps the given name whole today:

    parse("Maria dels Àngels Puig")  →  given 'Maria', middle 'dels Àngels', family 'Puig'
    parse("Maria de les Neus Puig")  →  given 'Maria', family 'de les Neus Puig'
    

    The second row is the particle-listed case, and it takes the given name into the family. So dels should stay out of ca.toml until this issue decides how a particle phrase completes a given name (Maria del Mar, Maria de los Ángeles read the same way as de les Neus).

  6. derek73 commented on Nov 4, 2026

    @derek73
    OwnerAuthor

    Particle phrases and Kaur/Singh: #1057. Two name-reading properties, read only by two_given_names (rules/O7) and two_family_names (rules/O6), so a parse with both switches off doesn't move.

    • after_particle on a given reading marks the word behind a particle that writes the second of a compound given name. With two_given_names on, María del Carmen García reads given María del Carmen, family García; with two_family_names on, such a phrase beside a one-word given name is never taken into the family. 23 Spanish words are marked: those ORCID researchers from Spain and Spanish-speaking America write behind a particle in the given box at least nine times in ten, with ten records or more (carmen 1,261 to 5). No Portuguese word clears the bar (carmo 21 to 6, conceição 25 to 25), so Maria do Carmo Silva keeps family do Carmo Silva. A caller can mark a word with Lexicon.add("carmo", kind="given", after_particle=True). The alternatives weighed were a phrase reading, a list held by the rule, and O6's given-name list; the last would have split de la Cruz and de León.
    • shared on a name reading marks Sikh kaur and singh, which neither switch takes or completes. Harpreet Kaur Dhillon keeps middle Kaur under either switch, as it does by default and as UK company-register filers box it (middle-name box 2,354, forename box 25). Both words are in mul.toml, so strict language choices keep them.
    • Recorded, not coded: an English given name beside a Chinese one is accepted as is. Lim Mei Ling (Jessica) under FAMILY_FIRST with two_given_names reads given Mei Ling, family Lim, nickname Jessica. dels stays out of ca.toml, since the properties change nothing with the switches off.
    • Still open: whether the default should read a marked phrase as a middle name, which is how company-register filers box it (del Carmen: middle box 21, surname box 2).
  7. derek73 commented on Nov 4, 2026

    @derek73
    OwnerAuthor

    Closing: what this issue asked is settled.

    The one remaining question, Catalan dels Àngels, moves to #1059.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

questionvocabularyPer-word vocabulary model and language packs

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions