Je me suis vite rendu compte que les logiciels classiques de généalogie ne me conviennent pas, pour plusieurs raisons :
- Ces logiciels utilisent en général des bases de données pour stocker l'information. Les utilisateurs sont donc obligés de passer par des interfaces graphiques pour saisir et modifier leurs données, et je n'aime pas ça. Je préfère utiliser directement un format texte, ce qui me permet de versionner et faire des sauvegardes facilement, de la même manière que lorsque je programme.
- Tous ces logiciels utilisent le format GEDCOM pour importer ou exporter les données. GEDCOM est un format texte, mais il n'a pas été conçu pour être édité directement "à la main".
De plus, GEDCOM permet d'exprimer un certain nombre de choses fixées dans la norme, mais ne suffit pas à exprimer toutes les notions que j'ai rencontré en faisant ma généalogie (par exemple, il n'existe pas de tag GEDCOM pour exprimer une union libre ou un PACS).
Pour pallier à cette limite, la plupart des logiciels définissent des extensions de la norme. Malheureusement, chaque logiciel définit sa propre extension, ce qui limite la compatibilité des logiciels entre eux.
J'ai donc pu construire mon arbre par programme en aggégeant différentes données :
- Fichiers YAML que j'ai saisi moi-même à partir des actes d'état-civil en utilisant la syntaxe
jth1
. - Fichiers YAML générés par des programmes aspirant des pages web contenant des informations sur des ancêtres ; les informations sont extraites et exprimées dans la syntaxe
jth1
. - Fichiers GEDCOM que m'ont donné des gens de ma famille.
Pour développer la syntaxe
jth1
, j'ai utilisé de manière assez intensive la spécification de la norme (GEDCOM 5.5.1). Ce document (PDF) n'étant pas très pratique à utiliser, j'ai généré des pages html contenant la liste des tags, classés par ordre alphabétique ou thématique :
- Tags GEDCOM (liste alphabétique)
- Tags GEDCOM (liste thématique)
- Ficher YAML construit à partir du document PDF, qui a servi à générer les pages html.