+infos (gedcom)

De WikiGenWeb
Aller à : navigation, rechercher

Le modèle Gedcom

Gedcom expliqué aux impatients

La réussite d'un transfert de données par un fichier gedcom dépend essentiellement du logiciel de départ et du logiciel d'arrivée.A cela deux raisons essentielles:

  • - la spécification Gedcom est rigoureuse dans son expression mais souple dans son application
  • - les éditeurs de logiciel n'ont pas tous la même interprétation pour le même type de données

Chaque logiciel utilise en fait une sorte de DIALECTE, au lieu du modèle Gedcom conçu pour être universel.

Dire que l'on échange un fichier Gedcom n'est pas explicite. Il convient de toujours préciser son contenu. Dans le cas où le fichier contient plus d'informations, qu'il n'est nécessaire, elles sont simplement ignorées. Si des données ne peuvent pas être traduites, elles sont également ignorées.

Définitions

Gedcom est un protocole destiné à transférer les données entre les logiciels de généalogie qui offrent les fonctions dites gedcom. Le contenant intermédiaire est un fichier informatique. Il est écrit par le logiciel exportateur. Il sera lu par le logiciel importateur.

Ce fichier est transmis par les moyens habituels : disquettes et autres supports physiques ou par connexion électronique dont bien sûr le Net.

Le format fait appel au mode texte. Toutes les données sont représentées par des caractères alpha numériques. Ce fichier peut donc être lu/ouvert par un éditeur pratiquement sur toutes machines et tout 'operating system'.

Pour exploiter ces données elles doivent être organisées ( structurées ) selon une procédure connue de tous. C'est l'objet de la grammaire.

Structure du fichier

Chaque ensemble de caractères constituant une donnée doit occuper une ligne de longueur maximale de 255 caractères. Chaque ligne débute par un signet (tag) représentatif de la nature des informations. Elle a une place unique dans une structure arborescente dont les niveaux sont repérés par un numéro, croissant selon une hiérarchie décroissante.

La racine étant le fichier on trouve d'abord 10 types d'enregistrements repérés par le niveau 0. Ensuite chaque enregistrement reçoit une référence pour distinguer chaque utilisation. Par convention cette référence est encadrée par le signe @.

Voici les 10 types d'enregistrement avec le tag conventionnel et la nature des données:

HEAD en tête du fichier avec les paramètres 
FAM enregistrement de données pour une famille 
INDI enregistrement de données pour un individu 
NOTE enregistrement de données pour une note 
SOUR enregistrement de données pour une source 
REPO enregistrement de données pour une archive 
OBJE enregistrement de données pour un document 
SUBM enregistrement de données pour un rédacteur 
SUBN enregistrement de données pour soumission 
TRLR marque de fin de fichier 

Ce qui conduit à une première ligne d'un enregistrement par exemple

0 @xxxx@ INDI 
0 @xxxxxxx@ SOUR

A la suite viendront des lignes de détail au niveau 1 puis à l'intérieur de chaque niveau 1 des compléments affectés au niveau 2. Pour une personne on peut écrire

   0 @xxxxx@ INDI (création d'un enregistrement d'individu)
   1 NAME prénom/nom/ (indication du prénom et du nom)
   1 BIRT (les données du niveau supérieur concernent la naissance)
   2 DATE jj MMM aaaa (la date de naissance)
   2 PLAC village (le lieu de naissance)
   1 DEAT ( les données du niveau supérieur concernent le décès)
   ...
   0 @xxx@ INDI ( une autre personne)

Les textes entre parenthèses ne seront pas présents dans le fichier, ce sont des commentaires pour la compréhension.

Ce schéma simple permet de décrire parfaitement l'ensemble des informations. Un ensemble de tags est défini dans les règles gedcom pour couvrir les besoins. Cependant il ne permet pas de représenter des liens par exemple entre personnes.

Ainsi une famille est composée d'un homme et d'une femme, alors au lieu de reprendre les données de chaque personne il sera fait appel seulement à leur référence.

   0 @fxxx@ FAM (création d'un enregistrement famille)
   1 HUSB @ind215@ (l'époux est la personne décrite dans l'enregistrement    @ind215@ )
   1 WIFE @ind12@ (l'épouse est la personne décrite dans l'enregistrement    @ind12@ )
   1 MARR (éléments concernant le mariage)
   2 DATE jj MMM aaaa (date)
   2 plac un village (lieu)
   1 ......

Nous disposons maintenant d'un moyen pour écrire toutes les relations dans nos généalogies en imbriquant ce mécanisme de pointage dans l'arbre des données.

Un fichier complet: Il contient successivement

  • un enregistrement d'en tête unique et obligatoire HEAD
  • des enregistrements FAM INDI SOUR REPO NOTE OBJE
  • un enregistrement SUBM décrivant l'expéditeur ou rédacteur du fichier
  • un enregistrement SUBN décrivant la soumission à LDS
  • un enregistrement de fin unique et obligatoire TRLR

L'ordre des enregistrements peut être quelconque ainsi que le nombre mais sans fractionnement sauf les deux obligatoires HEAD en début et TRLR en fin. Un enregistrement commence toujours par un niveau 0 pour définir sa référence. L'ordre n'est pas imposé pour les niveaux supérieurs de même valeur.

   0 @fxxx@ FAM (création d'un enregistrement famille)
   1 HUSB @ind215@ (l'époux est la personne décrite dans l'enregistrement    @ind215@ )
   1 WIFE @ind12@ (l'épouse est la personne décrite dans l'enregistrement    @ind12@ )
   1 MARR (éléments concernant le mariage)
   2 DATE jj MMM aaaa (date)
   2 plac un village (lieu)
   1 ......

Ce fichier est grammaticalement correct. DEAT est avant BIRT ne respectant pas la chronologie. DATE et PLAC sont inversés. FAM apparait avant le deuxième individu. Ceci dit et sans obligation ce serait une bonne idée de respecter une logique pour faciliter la consultation à l'écran d'un fichier.

Résumé du concept

Le fondement et seul principe du gedcom c'est: une structure arborescente complétée par un dispositif de pointage entre les branches.

Le mécanisme de pointage fait appel à la référence d'un enregistrement, choisie librement, mais unique par rapport à l'ensemble du fichier. Elle est identifiée par deux @ qui l'encadrent : @ref@. Quand elle apparait dans la première ligne d'un enregistrement c'est un identificateur et quand elle apparait dans une citation c'est un pointeur.

 
   0 @R001@ REPO crée la référence @R001@ et l'utilise comme identificateur
   ....
   0 @.........
   1 SOUR @R001@ utilise la référence @R001@ pour constituer un pointeur, c'est une citation

L'identificateur apparait une seule fois dans la première ligne d'un enregistrement.

Le pointeur est utilisé dans le corps d'un enregistrement pour définir un lien. Un même enregistrement peut contenir plusieurs pointeurs si nécessaire. Le pointeur est la première ligne d'une citation qui englobe les lignes de niveau supérieur suivant celle qui contient le pointeur.


Il ne reste plus rien à comprendre. Il faut maintenant savoir, connaitre des conventions de détail. Elles sont détaillées dans le document encore en vigueur publié le 2 janvier 1996, dont il existe une version informatique.

Auteur

  • Ensemble de page réalisées par Sylvain Peyrichou (décédé en 2005).

Son site a fermé mais il est encore consultable dans les archives du web

  • http://web.archive.org/web/20041015225404/
  • http://perso.club-internet.fr/sypey/

et il a aussi été intégralement repris à l'identique par un de ses amis,

  • Jean-Pierre Stremler : http://www.sypey.org/

A voir aussi

  • Transfert (protocoles) Gedcom est largement utilisé à travers le monde entier, mais d'autres sont envisageables.