Een van de boeiendste dingen aan het leren van vreemde talen is de vaststelling dat sommige woorden onmogelijk kunnen vertaald worden. Gewoonweg omdat ze geen directe tegenhanger hebben in onze taal. Want hoe vertaal je in hemelsnaam de veertien verschillende woorden die eskimo's gebruiken voor sneeuw? Of het Zweedse woord lagom, dat zoveel betekent als "niet te veel, en niet te weinig". Ook het Duitse woord überhaupt bleek zó moeilijk te vertalen dat we het uiteindelijk ongewijzigd hebben overgenomen.

Zo heeft het Zweeds ook geen woorden die equivalent zijn aan grootmoeder of grootvader. Bij het benoemen van hun voorouders zullen Zweden immers altijd aangeven of ze verwijzen naar de afstamming langs moeders- of vaderszijde. In het Zweeds vertaal je moeder door mor en vader door far. Je grootmoeder langs moederszijde wordt dan mormor (letterlijk: je moeder's moeder) en je grootmoeder langs vaderszijde farmor (letterlijk: je vader's moeder). Analoog vertaal je grootvader langs moederszijde door morfar en grootvader langs vaderszijde door farfar. Als je dat toch naar het Nederlands zou willen vertalen, dan kom je uit bij iets als mama, mapa, pama en papa. En dat lijkt toch echt wel nergens op?

morfar, farmor, mormor en farfar
In het Zweeds maakt men onderscheid tussen grootmoeder en grootvader langs moederszijde (mormor en morfar) of langs vaderszijde (farfar en farmor).

Op dezelfde manier verwijzen Zweden naar hun overgrootouders, bedovergrootouders en nog verdere voorouders. Zo is morfarfar bijvoorbeeld je moeder's vader's vader, en is farmorfarmor je vader's moeder's vader's moeder.

De Zweedse manier om voorouders te omschrijven levert soms ingewikkelde situaties op. Voorouders worden immers op verschillende manieren aangesproken door hun nakomelingen, zelfs al zijn die van dezelfde generatie. Heeft een grootmoeder kleinkinderen van haar zonen én haar dochters, dan lopen die door elkaar farmor en mormor te schreeuwen. Ondertussen weet grootvader niet meer of hij nu eerst op morfar dan wel op farfar moet reageren.

Opgave

In deze opgave werken we met familiestambomen die opgesteld werden volgens een vereenvoudigd model, waarbij steeds aan de volgende voorwaarden voldaan is:

Onderstaande afbeelding toont een voorbeeld van zo een familiestamboom, waarbij vrouwen worden aangeduid in het roze en mannen in het blauw. Koppels met kinderen worden verbonden door een dikke horizontale streep, en de overige relaties moeten van boven naar onder gelezen worden, met bovenaan de moeder en de vader, en daaronder hun kinderen. De laatste voorwaarde die we opgelegd hebben aan familiestambomen betekent dat er geen incest is binnen een stamboom (er komen bijvoorbeeld dus nooit kinderen voort uit een relatie tussen een vader en zijn dochter, of uit relaties tussen neven en nichten).

stamboom
Voorbeeld van een familiestamboom waarin vrouwelijke familieleden worden aangeduid in het roze en mannelijke familieleden in het blauw. Koppels met kinderen worden verbonden met een dikke horizontale streep, en de overige relaties moeten van boven naar onder gelezen worden, met bovenaan de moeder en de vader, en daaronder hun kinderen.

De relaties uit een familiestamboom worden opgeslaan in een tekstbestand, waarvan elke regel bestaat uit drie of meer namen die van elkaar gescheiden worden door spaties. De eerste naam is die van de moeder, de tweede die van de vader, en de overige namen die van hun kinderen. Op die manier bevat onderstaand voorbeeldbestand alle relaties uit de familiestamboom in bovenstaande afbeelding.

Alana Ronan Beatrice August
Beatrice Clarence Ramiro Regan
Alexandra Ramiro Carlos Luciana Ciara
Regan Damari Alberto Natalee
Amira August Drake Eric Rosa Jadon
Rosa Jovanni Kole Sincere Emmy Gabriella Xzavier
Teresa Jadon Cadence Gavyn Aryana

Merk op dat er geen vaste volgorde is waarin de regels van het bestand opgelijst worden. Gevraagd wordt:

Voorbeeld

Bij onderstaande voorbeeldsessie gaan we ervan uit dat het bestand data.txt1 zich in de huidige directory bevindt. Dit is het tekstbestand dat overeenkomt met de familiestamboom die als voorbeeld gebruikt werd bij de omschrijving van de opgave.

> const relaties = familieleden("data.txt")
> relaties["Sincere"]
{"vader": "Jovanni", "moeder": "Rosa"}
> relaties["August"]
{"vader": "Ronan", "moeder": "Alana", "kinderen": ["Eric", "Drake", "Jadon", "Rosa"]}
> relaties["Ronan"]
{"kinderen": ["Beatrice", "August"]}

> voorouder("Drake", "mor", relaties)
"Amira"
> voorouder("Rosa", "farmor", relaties)
"Alana"
> voorouder("Sincere", "morfarfar", relaties)
"Ronan"
> voorouder("Luciana", "morfarmor", relaties)
AssertionError: onbekende voorouder

> nakomelingen("Ronan", 1, relaties)
{"far": [ "August", "Beatrice"]}
> nakomelingen("Ronan", 2, relaties)
{"morfar": ["Ramiro", "Regan"], "farfar": ["Drake", "Eric", "Jadon", "Rosa"]}
> nakomelingen("Ronan", 3, relaties)
{"farmorfar": ["Carlos", "Ciara", "Luciana"], "farfarfar": ["Aryana", "Cadence", "Gavyn"], "mormorfar": ["Alberto", "Natalee"], "morfarfar": ["Emmy", "Gabriella", "Kole", "Sincere", "Xavier"]}

De rest van de databestanden kan je vinden in deze zip2.

Epiloog

Het woord mamihlapinatapais uit de taal van het Yaghanvolk3 dat in het ijzige Vuurland woont, wordt beschouwd als het meest beknopte woord ter wereld — ook het woord dat het moeilijkst te vertalen valt. Het betekent zoveel als "een blik die twee personen elkaar toewerpen, waarbij ze elk willen dat de ander iets op gang brengt waar ze alletwee vurig naar verlangen, maar waarvoor geen van beide zin heeft om het initiatief te nemen".

Een bevraging uit 2004 onder 1000 taalkundigen leverde nog een ander woord op dat het moeilijkst te vertalen woord ter wereld zou moeten zijn: ilunga. Het woord is afkomstig uit het Tshiluba4, een Bantoetaal die gesproken wordt in de Democratische Republiek Congo, die daar ook een officiële taal is die in het onderwijs gebruikt wordt. Het betekent "een persoon die bereid is om misbruik een eerste keer te vergeven, en het ook een tweede keer nog tolereert, maar nooit een derde keer".

Hier zijn nog enkele favoriete woorden van taalkundige Mikael Parkvall van de Universiteit van Stockholm, uit zijn Limits of language: almost everything you didn't know about language and languages5 (2006):

Gunwinggu — een taal gesproken in het noordwesten van Australië — kent afzonderlijke werkwoorden als beschrijving voor het rondhuppelen van verschillende soorten kangoeroes: