Chapitre 1 : Initiation au GEDCOM

Blog Généalogie

Chapitre 1 : Initiation au GEDCOM

Chapitre 1 : Initiation au GEDCOM 2560 1707 Julien

Préambule

Ce chapitre a pour objectif de vous initier au format de fichier GEDCOM. Tout au long de cet article nous utiliserons comme référence la version 5.5.1 de la norme GEDCOM. Le lien de la norme officielle est disponible ici : GEDCOM 5.5.1

Qu’est-ce qu’un fichier GEDCOM ?

Développée dans les années 80 par l’Église de Jésus-Christ des saints des derniers jours, la norme GEDCOM a été, à l’origine, imaginée pour archiver facilement des données généalogiques sur papier.

De son héritage, ancestral sur le continuum espace-temps de l’informatique, découle un format relativement simple à appréhender.

Un fichier GEDCOM n’est donc au final qu’un simple fichier texte qui se lit ligne par ligne.
Cette première information est essentielle pour bien comprendre le fonctionnement du format GEDCOM.

Peu importe le type de données que vous possédez, Sources, Individus, Familles… Il faut donc un moyen de pouvoir structurer ces données généalogiques au sein d’un fichier texte.

Le composant de base de la grammaire du GEDCOM est donc la ligne de texte. Mais alors comment s’y prendre pour y faire entrer des informations aussi complexes que des données généalogiques ?

C’est à ça que sert la définition de la norme GEDCOM. Elle décrit comment faire pour lire et écrire des lignes de textes de sorte que la structure des données soit retranscrite.

Grammaire

La brique de base d’un fichier GEDCOM est la ligne. La norme nous explicite que chaque ligne d’un fichier GEDCOM vérifie obligatoirement la forme suivante :

<NIVEAU> <IDENTIFIANT*> <TAG> <VALEUR*>

Les * désignent les champs optionnels d’une ligne. C’est-à-dire ceux qui ne sont pas obligatoires dans une ligne GEDCOM. Ces deux champs étant secondaires pour comprendre la base du format, nous y reviendrons dans un prochain article.

Plutôt simple non ?

Les deux champs indispensables dans une ligne GEDCOM sont donc le NIVEAU et le TAG; nous allons donc plonger un peu dans le détail de ces deux éléments.

Le TAG

C’est probablement l’élément le plus connu du format. Même sans être d’un profil technique, vous en avez certainement entendu parler. Le tag d’une ligne est composé de 3 ou 4 lettres majuscules. Il permet d’indiquer quel est l’élément défini par la ligne.

Voici quelques exemples parmi les plus courants et les plus explicites :

  • INDI pour définir un individu
  • EVEN pour définir un événement
  • DATE pour définir une date
  • SOUR pour définir une source

La liste de tous les tags disponibles et leur définition est disponible dans la documentation officielle du format GEDCOM. Evidemment les choses sont un peu plus délicates que ça lorsque l’on parle des tags car ils peuvent être personnalisés. Mais comme le sujet des tags personnalisés vaut bien un article à lui seul, nous y reviendrons une autre fois. Dans le cadre de cette initiation, nous allons en rester aux tags officiels.

Le NIVEAU

Lorsqu’on évoque la norme GEDCOM, on entend très souvent parler des tags GEDCOM. De savoir s’il sont standards ou non. Ou bien de savoir s’ils seront correctement lus par son logiciel habituel. Mais on n’entend presque jamais parler du niveau qui pourtant est probablement l’élément le plus important dans un fichier GEDCOM car justement, il donne tout son sens aux tags.

Le niveau est un nombre, c’est l’élément structurant du format GEDCOM. Il permet de donner une hiérarchie des données décrites. Pour bien comprendre comment fonctionne le niveau, il faut bien se rappeler qu’un fichier GEDCOM se lit ligne par ligne.

Il commence toujours à zéro. Cette valeur initiale sert pour décrire les objets de premier niveau d’une Généalogie. Par exemple les individus, ou les familles.

Le niveau d’une ligne permet d’indiquer quelle structure est parente de cette ligne. Pour ce faire, il suffit de remonter dans les lignes précédentes et de trouver la ligne qui a un niveau égal à celui de la ligne en cours moins 1.

Bon, c’est un peu complexe à comprendre par écrit donc on va étudier plusieurs exemples pour bien visualiser de quoi on parle…

Exemple 1

Dans cet exemple, on commence par décrire un individu ( INDI ) au premier niveau. Ensuite, la ligne d’après décrit un événement ( EVEN ), le niveau étant 1, cet événement appartient au premier objet de niveau 0 que nous trouverons en remontant le fichier.

Dans l’exemple c’est donc un individu.

Exemple 2

Cet exemple est le même sauf que l’on a rajouté un élément. La ligne supplémentaire est de niveau 2, donc son propriétaire est la première ligne précédente qui possède le niveau 1. C’est donc l’événement qui est propriétaire de la source. Ce bout de GEDCOM décrit donc un individu qui a un événement avec une source.

Attention, les propriétaires des lignes ne sont pas forcément sur la ligne directement précédente.

Exemple 3

Dans cet exemple, la dernière ligne est une note avec un niveau de 1, comme on peut le constater, son propriétaire ( de niveau 0 ), donc l’individu est situé bien plus haut dans le fichier.

Exemple complet

Cet exemple décrit un Individu qui possède une note et un événement, cet événement possède une source et une date et enfin la source de l’événement possède une note.

Dans cet exemple, on peut clairement observer la hiérarchisation des informations dans un fichier GEDCOM. C’est donc grâce au champ NIVEAU d’une ligne GEDCOM que l’on peut encoder des structures généalogiques complexes.

Visualisé ainsi, il devient beaucoup moins difficile d’appréhender le format GEDCOM.

Conclusion

Comme vous l’avez maintenant compris, les éléments TAG et NIVEAU sont les deux pierres angulaires du format. C’est bien grâce à eux qu’il est possible d’enregistrer toute la complexité des données généalogiques.

La norme GEDCOM intervient ensuite pour nous dire ce qui est autorisé ou non par le format. En clair, certains tags ne peuvent pas être associés à d’autres.

Par exemple:

Dans cet exemple, les niveaux sont bien respectés, les tags sont bien standards, pourtant c’est leur hiérarchie qui n’est pas autorisée par la norme. Ce bout de GEDCOM est donc non conforme.

C’est ici que la norme devient utile, elle permet de garantir une certaine rigueur dans la structuration des données. C’est là tout l’intérêt d’une norme, afin que tout logiciel qui affirme pouvoir gérer un fichier au format GEDCOM puisse correctement traiter les données présentes dans le fichier.