Zelf een genealogie-programma bouwen

Er is ongetwijfeld een uitgebreid aanbod aan genealogie-programma’s voor de PC. Afhankelijk van van wat men wil zullen deze meer of minder geschikt blijken te zijn. Voor mijzelf was het simpeler om weer het buskruit uit te vinden dan om uit te vinden of het al uitgevonden was. Ik heb dus zelf een programma in de steigers gezet en ben zodoende niet gebonden aan standaarden en normen die producenten van standaard-pakketten moeten gebruiken. Na enig experimenteren denk ik inmiddels een aardige middenweg gevonden te hebben tussen theorie en pragmatisme en wie zelf overweegt eens aan de slag te gaan, heeft misschien iets aan mijn ervaringen.

Drin en Druit

Voor je aan het werk gaat is het handig te bedenken wat de uitvoer zoal moet zijn: kwartierstaat, parenteel, nazatenlijst, familieoverzicht, e.d. Wat moet eruit komen en wat moet je erin stoppen, maar vooral ‘hoe stop je het erin’. Veel vragen ontstaan al doende en je kunt vooraf nooit exact met alle mogelijkheden rekening houden. Er moeten keuzes worden gemaakt waarbij flexibiliteit en onderhoudbaarheid van het programma belangrijke uitgangspunten zijn

Zelf hecht ik meer aan de juistheid en correctheid van de opgenomen gegevens dan aan toeters en bellen voor de opmaak van presentaties en overzichten. Als ik een programma gebruik dat gegevens van personen bevat, zie ik het liefst een alfabetische lijst met al die personen, zoals bijvoorbeeld:

 

 

van

tot

familie

voornamen

geboorteplaats

 

1870

1942

Schulte

Carl Max

Mettingen

 

1913

1987

Schulte

Alexander Ignatius

Leeuwarden

 

1953

 

Schulte

Max Willem

Almelooooo

±

1615

1698

Schulte-Laggenbeck

Margarethe

 

±

1650

1707

Schulte-Laggenbeck

Johann (colon)

Laggenbeck?

 

1695

1748

Schulte-Laggenbeck

Gerhard (colon)

Laggenbeck

 

1736

1792

Schulte-Laggenbeck

Hermann Heinrich (colon)

Laggenbeck

 

1762

1818

Schulte-Laggenbeck

Johan Heinrich (colon)

Laggenbeck

±

1690

 

Schulte-Varendorp gt zu Nordhausen

Jan? Herman

Ibbenbüren?

±

1730

 

Schulze

Anna Christine

Rob dorf?

±

1620

 

Schuylenburg

Hendrick Adriaens

 

±

1645

 

Schuylenburg

Metie Hendricks

 

Het zal u niet merkwaardig voorkomen dat er nogal wat Schulte’s in mijn gegevens opduiken. In allerlei variaties zelfs, zodat soms een plaatsnaam is toegevoegd om de ene familie van de andere te kunnen onderscheiden.

Vanuit deze lijst is het mogelijk om iemand’s gehele doopceel te lichten - voor zover bekend -, dwz detail-gegevens, huwelijken, kinderen, ouders, kwartierstaat, voorzaten en nazaten en html-overzichten zoals op www.knoware.nl/users/mschulte. Vanuit kinderen of ouders kan ik dat opnieuw doen, zodat ik met een simpele reeks toetsen van de bovenste Schulte kan afdalen naar mijzelve en zo verder en zo terug.

Op die manier verwerf ik snel inzicht in de samenhang van families. Door bijvoorbeeld te kijken naar de doopgetuigen kan ik zien of zekere Anna Schulte uit ±1720 waarschijnlijk thuis hoort in de familie van Jurgen Schulte x Anna Busch of in die van Hermann Schulte x Gertruyd Pothof.

Verzamelen

Het onderbrengen van genealogische gegevens in een zogenaamde database gaat uit van een stukje wiskunde dat ‘verzamelingen-leer’ heet en waarin ieder orderlijk mens wel praktisch inzicht in heeft, zonder het misschien te kunnen benoemen. Het komt er in ons specifieke geval op neer dat we een verzameling gaan aanleggen van personen, waaronder voorouders. Zo’n verzameling kan ook een kaartenbak worden genoemd om het wellicht wat aanschouwelijker te maken. In een computer-programma heet het dan database en de kaarten in de bak zijn records waarop gegevens worden genoteerd in velden.

Per kaart worden de gegevens van slechts één persoon genoteerd en er worden alleen gegevens genoteerd die hooguit 1 keer per persoon voorkomen, zoals naam, geboorte, overlijden, ouders. Maar iemand kan meerdere malen zijn gehuwd en wordt wellicht in wel 10 notariële actes vernoemd. Daarom leggen we tweede kaartenbak aan waarin alle gebeurtenissen van alle personen worden ondergebracht.

Als we enigszins serieus willen zijn, dienen we nog een derde kaartenbak aan te leggen waarin bronnen staan vermeld. Elke gebeurtenis kan dan verwijzen naar een kaart in de kaartenbak met bronnen.

We komen dus een heel eind met het onderhouden van slechts 3 verzamelingen:

I Personen

II Historie

III Bronnen

De kaartenbakken

Wat noteren we nu precies per kaart in de kaartenbak (of record in de database).

Ingeval van de Personen houden eigenlijk alleen de naamsgegevens bij, alsmede de verwijzing naar de ouders. Om personen van elkaar te kunnen onderscheiden worden unieke nummers toegekend en om snel opvragingen te doen worden tevens geboorte- en overlijdens-gegevens bijgehouden, hoewel die eigenlijk thuishoren in de kaartenbak met gebeurtenissen. Concreet ziet het er dan als volgt uit:

I kaartenbak met personen, waarin:

a familienaam Schulte

b voornamen Max Willem

c naam op overzichten SCHULTE, MAX

d geslacht m

e geboorte-datum 03.06.1953

f geboorte-plaats Almelo (bij het stoplicht)

g vader 101

h moeder 102

i overlijdens-datum

j overlijdens-plaats

k vrije tekst blablabla

l uniek nummer per persoon 100

Dit zijn allemaal gegevens die in theorie maar 1 keer per persoon kunnen voorkomen. We hebben maar 1 naam, zijn hooguit 1 maal geboren op maar 1 plek en zoeken ook hooguit 1 maal weer de eeuwige jachtvelden op. En gelukkig kan ik er nog vanuit gaan dat mijn voorouders zich bij het voortplanten hebben beperkt tot het aloude mannetje x vrouwtje.

Het zal duidelijk zijn dat je op deze manier wel alle koppelingen tussen ouders en kinderen kunt vastleggen, maar niet alle bed- en huwelijks-partners, die al of niet tot nageslacht hebben geleid. Daarvoor is en aanvullende kaartenbak nodig. Iemand kan wel 5 partners verslijten in zijn leven en dat kun je niet kwijt in het bovenstaande bestand

Tevens kun je hierin niet goed aangeven wat de bron van de gegevens is geweest. Nu is dat ook bijzonder moeilijk, omdat er voor 1 gebeurtenis wel verschillende bronnen kunnen zijn geweest. Een geboorte kan zijn aangegeven bij de burgelijke stand, maar ook in de kerk. Wellicht is die eerste de meest gebruikte, maar het kan zijn dat de doopgetuigen ook belangrijk zijn en daarom ook genoteerd moeten worden.

Daarnaast wil je nog allerlei andere gebeurtenissen uit ‘s mensen’s leven vast kunnen leggen en daarbij niet beperkt worden door de grote van een scherm. Dus is de tijd rijp voor:

2 kaartenbak met historische gebeurtenissen (=Historie), waarin

a man 1111

b vrouw 1112

c soort gebeurtenis huw

d datum 01.11.1787

e plaats Recke

f vrije tekst tst=Jan Jansen + Truus Kip

g bron DTBRecke

h aantekening nog eens checken!

Dit ziet er op het eerste gezicht wellicht wat merkwaardig uit en is databasologisch gezien ook niet de fraaiste oplossing, maar wel een hele praktische naar mijn bevinden. Er kunnen huwelijken in worden geregistreerd en tevens particuliere gebeurtenissen als geboorte en overlijden. Bij een man wordt diens unieke nummer ingevuld in het daarvoor bestemde veld en blijft het veld voor vrouw leeg en bij een vrouw uiteraard andersom.

Voor mijn eigen geboorte bijv. als volgt:

a man 100

b vrouw

c soort geboortenis geb

d datum 03.06.1953

e plaats Almelo

f vrije tekst Bornsestr.201

g bron pa en ma

h aantekening geboorteacte opvragen!!!

i uniek nummer 222

Het zal duidelijk zijn dat er nu ook in de personen database een veld moet worden toegevoegd waarin het unieke historie-nummer 222 kan worden geplaatst, waarin wordt verwezen naar dit record in de historie-kaartenbak (=gebeurtenissen).

Ingeval in een gebeurtenis zaken worden vermeld die voor meer personen van belang zijn , kan nog een extra veld worden opgenomen, een zgn verwijs-veld, waarin naar een andere gebeurtenis wordt verwezen. Als bijvoorbeeld in een huwelijksacte wordt vermeld dat iemands ouders voor 8 jaren zijn overleden en de precieze overlijdens-datum is niet bekend, dan kan bij die persoon worden verwezen naar dit huwelijk, waarin dit wordt gemeld.

Het valt nu wellicht ook op dat de overlijdens-gegevens in kaartenbak I eigenlijk overbodig zijn, omdat deze al als gebeurtenis in kaartenbak II zijn opgenomen. Hetzelfde geldt voor de geboorte-gegevens maar voor een snel chronologisch inzicht in alle geboortes in Almelo, tussen 1950 en 1960 is het wel erg handig. Dat kan bijvoorbeeld van pas komen als je wilt nagaan of alle vermeldingen in een doopboek zijn opgenomen.

Sleutels of Indices

Het goede functioneren van het voorafgeschetste hangt grotendeels af van het juist formuleren van sleutels of indices. Een index op een kaartenbak geeft de mogelijkheid om de kaartenbak te benaderen volgens een bepaalde volgorde. In het bovenstaande heb ik het al gehad over een volgorde van familienaam, gevolgd door geboortejaar. Dat betekent dat er een index of sleutel is op de combinatie van de velden voor familienaam en geboortedatum.

Omdat sleutels constructies zijn die aan onderhoud door het programma onderhevig zijn, moet er schaars mee worden omgesprongen. Niettemin zijn er toch nog 5 sleutels gedefinieerd voor een prettige omgang met de gegevens, nl.

I.1 in volgorde van uniek nummer

I.2 in volgorde van familienaam en geboortejaar

I.3 in volgorde van vader en geboortejaar

I.4 in volgorde van moeder en geboortejaar

I.5 in volgorde van geboorteplaats en geboortejaar

De 3e en 4e sleutel zijn nodig om te kunnen bepalen welke kinderen iemand heeft gehad en in welke volgorde ze ter wereld zijn gekomen. De laatste sleutel I.5 wordt gebruikt voor het genoemde voorbeeld, nl om te kunnen zien wie er allemaal in zekere plaats geboren zijn.

De tweede kaartenbak kent zelfs nog wat meer (veelal samengestelde) sleutels, nl.

II.1 op uniek nummer

II.2 op man en datum

II.3 op vrouw en datum

II.4 op ouders

II.5 op datum

II.6 op gebeurtenis en datum

II.7 op bron en datum

Het gaat wellicht te ver om het nut van alle sleutels precies uit te leggen. De eerste spreekt waarschijnlijk voor zich evenals de sleutels 2 en 3 waarmee voor mannen en vrouwen het overzicht van hun persoonlijke gebeurtenissen (personal history) kan worden verkregen.

Praktische omgang

Omdat er veel dingetjes net niet helemaal standaard zijn, is het zaak een beetje creatief om te leren gaan met deze structuren. Het is ondoenlijk om voor elke nieuwe of andere omstandigheid de structuur aan te passen en met wat flexibiliteit van de gebruiker kan veel tot klaarheid worden gebracht. Om wat voorbeelden te geven:

a Voorouders en anderen

Ik wil een onderscheid maken tussen de personen die mijn voorouder zijn en alle anderen. Dat doe ik door de achternaam van mijn voorouders met een hoofdletter te laten beginnen en alle andere namen met uitsluitend kleine letters te gebruiken. Doordat in de sorteerd-volgorde de HOOFDLETTERS komen voor de kleine letters, staan mijn voorouders keurig op een rijtje.

b nn, marietje

Soms weet je wel iemand voornaam, maar niet diens achternaam of patroniem. Het is gebruikelijk om dan nn te noteren als achternaam, maar dan komen in een alfabetische lijst, deze onder de letter n te staan, of onder N ingeval van voorouders. Omdat ik dit storend vind, gebruik ik bij voorkeur reeksen met puntjes en underscore-tekens (... en _..), zodat mijn achternaamloze voorouders helemaal bovenaan komen te staan en de anderen worden voorafgegaan door achternaamloze anderen.

c datum onbekend

Omdat uiteindelijk zal blijken dat de meeste datums niet precies bekend zullen dient er mee rekening te worden gehouden dat deze slechts gedeeltelijk en voorzien van een teken kunnen worden opgenomen, zoals bijv. ± < en >.

d achternaam-verandering

Wat doe je met mensen tijdens hun leven van achternaam veranderen. Een mijner voorvaderen werd geboren als Carl Freude en ten grave gedragen als Carl Schulte. Diens vader was geboren als Jürgen Busemeyer en stierf als Jürgen Freude. Soms hebben mensen ook een alias of wordt hun naam vergezeld van een aanduiding als modo, vulgo, nunc, genannt. Als dit het geval is neem ik een extra aanduiding op in de achternaam, maar pas na het bereik van de sleutel, om te voorkomen dat de sorteer-volgorde verandert. Bijv:

Het veld voor achternaam heeft 40 posities en aangezien de eerste 15 posities meestal voldoende onderscheiden vermogen creëren volstaat om slechts deze eerste 15 posities in de sleutel op te nemen. Op positie 16 kan ik dan beginnen met het opnemen van extra aanduidingen, zoals:

gt genannt Freude gt Schulte

of of, alias Vuyck of Posthoorn

gb geboren Wolf gb Voss

De laatse geldt veelal voor vrouwen die werden geboren toen hun vader nog Voss heette, later Wolf gingen heten toen pa de boerderij van Wolf overnam. Na hun trouwen gingen ze dan onder weer een andere naam door het leven.