Identidade falsa > Artigos > Surnames That Change With Gender: The Third Case Your Schema Forgot

Este artigo ainda não foi traduzido para Português — você está lendo o original em English. Também disponível em:Deutsch, English, Українська

Surnames That Change With Gender: The Third Case Your Schema Forgot

Most developers know two rules about surnames and gender. Either the surname inflects — Novák for a man, Nováková for his wife — or it does not, and Smith is Smith forever. Pick one per locale, ship it, move on.

There is a third case. It is not inflection and it is not identity, and it is the one that breaks the schema, because in that case the male and female surname lists are different lists of different lengths with no correspondence between them at all.

We maintain curated surname corpora for 64 locales, stored as a lastname_male and a lastname_female file per locale. That structure forces the question to be answered explicitly for every country, and the answer is not two-way:

CategoryLocalesWhat the two files look like
(b) No gender variation51byte-for-byte identical
(a) Inflects by gender10same length, row i pairs with row i
(c) Separate set2different content, different lengths
Hybrid1paired by index, but the weights disagree

Corpus counts re-measured 2026-07-22; the registry figures quoted further down are as of 2026-07-17.

If your data model only supports the first two rows, you have already lost data somewhere. Here is where.

Case (a): it inflects — but "inflects" is four different mechanisms

Ten locales carry gendered surnames: uk, ru, cs, sk, pl, bg, lv, el, kk, and (structurally) is. Lumping them under one label is the first mistake, because the label hides at least four unrelated grammars.

Czech and Slovak append a possessive suffix. NovákNováková, AdamecAdamcová, AdámekAdámková. Note the middle example: the stem loses a vowel. This is not string concatenation.

Russian, Bulgarian and Polish inflect an adjective. ИвановИванова, АврамовАврамова, KowalskiKowalska. The male form is grammatically an adjective, and the female form is the same adjective in the feminine.

Greek switches to the genitive case. ΠαπαδόπουλοςΠαπαδοπούλου. That female form is not a "feminine surname" — it is the genitive of the male one, literally "of Papadopoulos". ΒλάχοςΒλάχου, ΠαππάςΠαππά.

Latvian applies declension classes, which is a different animal again, and we will come back to it because it is the interesting one.

Four mechanisms, one flag. If your code has a single feminizeSurname() function branching on locale, it is four functions wearing a trench coat.

The invariant that actually holds: not every pair changes

The pairing is by index, not by transformation. In several locales a large share of pairs are identical on both sides, and that is correct data, not a bug in your import:

LocalePairsIdentical in pairChangedExample of an invariant surname
uk_UA2 5622 043519Шевченко
pl_PL28 95921 2787 681Nowak, Wójcik, Adamczyk
el_GR648103545Οικονόμου, Γεωργίου
kk_KZ49446448Ким, Шмидт
ru_RU1 335401 295— mostly inflects
cs_CZ1 805141 791Krejčí, Martinů, Janů
sk_SK9180918— always inflects

Three quarters of Ukrainian surnames — the whole -енко family — never change. Polish -ski inflects, Polish -czyk does not. Greek surnames that are already in the genitive (Παπαγεωργίου, Νικολάου) have nowhere left to go, so 103 of 648 sit unchanged. Czech has exactly 14 invariant surnames in a list of 1,805 — the indeclinable adjectival type (Krejčí, Dolejší, Kočí) and the genitive-plural type (Martinů, Petrů, Pavlů). Slovak has zero.

A validator that asserts "if locale inflects, then male ≠ female" will fire on 2,043 correct Ukrainian rows.

Latvian: why the suffix rule doesn't work

We once documented Latvian as three tidy classes: -š → -a, -s → -a, -is → -e. Then we measured it against the actual pairs. 152 of 789 pairs fit none of the three.

The reason is that the ending does not determine the class. Two surnames with the same final letters take different feminine forms:

MaleFemaleNaive rule predictsReality
OzolsOzola-s → -aOzola
JansonsJansone-s → -aJansone
ZālītisZālīte-is → -eZālīte
BaranovskisBaranovska-is → -eBaranovska
BirznieksBirzniecenot coveredBirzniece
MillersMillere-s → -aMillere
FreimanisFreimane-is → -eFreimane
GrīnvaldsGrīnvalde-s → -aGrīnvalde

Ozols and Jansons end identically. Zālītis and Baranovskis end identically. The split follows the noun's declension class — a property of the lexeme, not of its spelling. You cannot recover it from the string, which means you cannot derive the female form; you have to store the pair.

And 12 Latvian surnames are invariant, because they are already feminine-class nouns: Liepa (linden), Egle (spruce), Roze (rose), Priede (pine), Kļava (maple), Lapsa (fox), Zvaigzne (star). A man is Jānis Liepa; his daughter is Anna Liepa.

Case (c): the separate set

Two locales in our corpus have male and female surname files of different lengths: en_IN (836 / 842) and bn_BD (400 / 404). Index pairing is meaningless there. So is the "files must be identical" rule.

India. Six surnames appear only in the female file: Devi, Kaur, Begum, Khatun, Bano, Parveen. They are not feminine forms of anything — they are separate names carried by women. In Sikh naming practice Kaur is the name women carry and Singh is predominantly carried by men; Devi is a very widespread female surname across northern India; Begum, Khatun, Bano and Parveen are women's names in Muslim communities. Devi is heavy — tied for the heaviest entry in the female file by weight.

If you enforce "the two lists must be identical," you have two choices, and both are wrong: put Devi in the male corpus, or drop it. Dropping it means women in your Indian data lose one of the most common real surnames in the country.

Note what the data does not say. Singh is present in both files — with a heavier weight on the male side (100) than the female side (55). It is not a men-only name: Sikh women carry it too, and it is widely used across North India regardless of religion. The corpus encodes a skew, not an exclusion. That distinction only survives if your schema can express "present in both, weighted differently."

Bangladesh. Four entries exist only on the female side: বেগম (Begum), আক্তার (Akter), খাতুন (Khatun), খানম (Khanam). These are honorifics that occupy the surname slot: a woman frequently carries Begum or Akter where a man carries a family name. They are not surnames in the European sense at all, and they have no male counterpart to pair with.

In both locales the male list is a strict subset of the female list. Nothing about the schema tells you that in advance.

Iceland belongs here conceptually even though it passes the pairing test mechanically. Its 343 entries are 284 patronymics (Jónsson / Jónsdóttir) plus 59 inherited family names. The pairing is genuinely required — one stem, two forms — but the derivation is not string surgery: Sigurður gives Sigurðsson but Sigurðardóttir, from two different genuine genitives of the same given name. Magnús gives Magnússon and Magnúsdóttir, with the doubled s on one side only.

And "Iceland has no surnames" is imprecise: the 59 family names are real (Blöndal, Briem, Thorlacius, Zoëga). Law nr. 54/1925 forbade creating new ones; it did not abolish the existing ones. They are 17% of the rows but 4.15% of the weight (97 of 2,335) — matching the 4% Statistics Iceland measures, not the "about 10%" that circulates online.

Georgia is the hybrid. ka_GE has 492 entries on each side; 460 Georgian surnames (ბერიძე, კაპანაძე) are invariant, and 32 Azerbaijani ones inflect (-ოვი-ოვა). The files pair by index. But მამედოვი carries weight 34 and მამედოვა carries 31 — the pair does not share a weight, because men and women in Georgia's Azerbaijani minority are not equally numerous in the registry. Any invariant of the form "paired rows have equal weights" is false here.

The counterexample that breaks case (c)

Case (c) invites a tempting generalisation: Kaur and Begum are women's names, so route them into the female set everywhere.

In Spain that is flatly wrong.

Spain's civil registry gives every person two surnames: the father's first, the mother's second. Inheritance of the mother's apellido does not depend on the child's sex. A man whose mother is a Begum legally carries Begum as his second surname.

The INE registry publishes both columns separately, so this is measurable rather than arguable. Begum has ap2 = 5,599 — 3.18 times more than its ap1. The name is overwhelmingly a second surname, meaning it is overwhelmingly inherited from mothers by children of both sexes. Applying the Indian logic in Spain would corrupt the data.

Our es_ES files are byte-identical, and Kaur, Begum and Singh all appear on both sides. The counter, not the appearance of the name, decided that. The same column measures generational depth: García sits at ap2/ap1 = 1.015 (fully settled), Kaur at 0.657, Singh at 0.070 — a first-generation name that has barely reached the mother's slot yet.

What this means for your schema

  1. A single "surname" column plus a "gender" column is not enough to reconstruct a person's name in ten of these locales. You need either stored pairs or separate sets.
  2. Never derive the feminine form from the string. Latvian settles it: two identical endings, two different classes.
  3. Do not assert male ≠ female. 2,043 Ukrainian surnames are invariant, and 12 Latvian ones, and 14 Czech ones.
  4. Do not assert equal list lengths. India and Bangladesh differ by 6 and 4 rows respectively, and that is the data being correct.
  5. Do not assert that a pair shares metadata. Georgia's მამედოვი/მამედოვა do not.
  6. Allow mismatch. A person whose stored gender and stored surname form "disagree" is not necessarily a data error. Names change on marriage, transition, migration and paperwork; a Czech woman may legally register Novák without -ová. A hard constraint here will reject real people.

The general rule underneath all six: names are not derived from other fields. They are stored facts. Every rule that looks like it would save you a column is a rule that a registry somewhere has already broken.

← Artigos