Gemaakt met...
Het probleem
Ik krijg veel vragen van mens die willen weten hoe ik deze site heb gemaakt. Gebruik ik een gratis of commercieel product of is elke pagina afzonderlijk met de hand gemaakt? Zoals je kunt zien op de pagina Inhoud typering wordt meer dan 85% van de site gegenereerd, dus van de 'met de hand gemaakte' pagina's zijn er maar een paar (waaronder bijv. deze pagina).
Ik gebruik een genealogisch programma om mijn genealogische gegevens te ordenen: Cumberland Family Tree. Het belangrijkste van een genealogisch programma is the mogelijkheid om de data te exporteren naar GEDCOM, de genealogische data standaard. GEDOM bestanden kunnen uitgewisseld worden met collega genealogen en kunnen ingelezen worden door andere programma, inclusief zelf gemaakte scripts!
De beschikbare hulpmiddelen die websites maken vanuit een GEDCOM bestand boden bij niet de gewenst flexibiliteit die ik zocht. Daarom heb ik, geinspireerd door hulpmiddelen als Gene Stark's GEDCOM2HTML en Tom de Neef's KSTableau, mijn eigen hulpmiddelen gemaakt om de Coret Genealogie site te maken!
Mijn oplossing
De hulpmiddelen zijn gemaakt met de (platfom onafhankelijke) script taal Perl. Het 'SiteGenerator' script bestaat uit meerdere modules die ik vanaf de prompt kan opstarten. Er zijn een drietal 'algemene' modules die de basis vormen van het 'SiteGenerator' script:
- De GEDCOM module lees het GEDCOM bestand in geheugen (in een Perl hash), hierna kunnen alle andere scripts bij de genealogische data. Een extra mogelijkheid die ik heb toegevoegd is de openbaar/besloten keuze die de genealogische data manipuleerd om de privacy van personen the beschermen.
- De Template module draagt zorg voor de algemene look van de site. Als een script een pagina opmaakt dan wordt er in wezen alleen de titel, subtitel, navigatie en tekst ingevuld. Op deze manier krijgt de site de consequente look.
- De Bi-language module zorgt er (samen met de Template module) voor dat de site beschikbaar is in twee talen: Nederlands en Engels. Dit wordt onder andere mogelijk gemaakt door een woorden lijst die tekst fragmenten in de twee talen bevat.
Als alle genealogische gegevens beschikbaar zijn dan is het de vraag hoe deze gepresenteerd moet worden, ik hoop dat deze site een goed impressie geeft van de mogelijkheden! Ik heb scripts die de stamboom, kwartierstaat en natuurlijk de individu pagina's maakt. Voor navigatie doeleinderen zijn er diverse indexen: familienamen, individuen, bronnen, plaatsen en gebeurtenissen. Natuurlijk hoeft de presentatie niet alleen in HTML vorm te zijn, sommige functionaliteit op de Coret Genealogie site wordt 'on-the-fly' gemaakt met Javascript 'databases' (bijv. de kwartierstaten). ook worden er textbestanden gemaakt, bijvoorbeeld een index bestand die wordt geindexeerd door GENDEX WWW Genealogical Index.
Het is gewoon een bepaalde presentatie van genealogische gegevens!
De genealogische gegevens zijn niet de enige bron. De volgende bronnen (meta-data) worden ook door de scripts gebruikt:
- Van alle foto's die ik heb is er een bestand met beschrijving, zoals naam, datum, bron en welk personen er zijn afgebeeld. het Photo script lees al deze gegevens in en maakt voor elke foto een HTML pagina, ook worden er indexen gemaakt (per persoon). Deze gegevens worden ook gebruikt wanneer de individu pagina's worden gemaakt: als er een of meerdere foto's beschikbaar zijn voor de betreffende persoon dan wordt er een link gelegd naar de foto's.
- Ook heb ik ook een boel getranscribeerde documenten. Net als de foto's zijn deze per stuk beschreven en worden via het Transcript script gepresenteerd en gelinkt met de individuen.
- Om de individuen pagina's wat te verlevendigen heb ik ook de beschikking over 'context' informatie. Verschillende gegevensbestanden met 'gebeurtenissen in een bepaald jaar', 'verjaardagen van beroemde personen', 'wanneer was er welke monarch, president of kabinet' worden geraadpleegd op basis van de geboortedaum van een individu om zo het onderdeel 'Context informatie' bij elke pagina toe te voegen.
- Om een idee te krijgen van de grootte van een familie en waar ze wonen presenteer ik op de site ook adreslijsten. Deze lijsten die van online telefoonboeken afkomstig zijn heb ik aparte bestanden opgeslagen. Het Addresses script leest deze bestanden en presenteert deze op een consequente manier, maakt er een index van en voegt bij sommige landen een kaart van het land bij met de distributie van de personen.
Alle Perl scripts zijn speciaal gemaakt om te doen wat ik wil.
Omdat de scripts nog niet generiek zijn publiceer ik ze niet, wellicht in de toekomst...
Een van de Perl modules die ik gebruik is Paul Johnsons Gedcom module, hiervoor heb ik enkele toevoegingen gemaakt die hier kunnen worden bekeken en gedownload.