GCSV est un moyen de relever des données généalogiques ou historiographiques courantes, sous une forme simple pouvant être lue à la fois par des humains et par des logiciels. GCSV est un format de données en ligne, similaire à l'écriture quotidienne, mais de manière structurée, afin d'être réutilisé ou analysé par des logiciels sans ambiguïté.
GCSV est basé sur le format de fichier CSV (Commas Separated Values), permettant de représenter des données tabulaires par des valeurs séparées par des virgules. Le format CSV est un format de fichier extrêmement simple et répandu. Il est reconnu par de très nombreux logiciels comme des tableurs. De ce fait, les données écrites manuellement au format GCSV sont immédiatement utilisables par de très nombreux outils.
GCSV est si simple que beaucoup, avec un minimum d'expérience en généalogie ou historiographie, devraient pouvoir comprendre cet exemple :
GCSV, B, Vénissieux, 18/10/1694, Louis /Pizard/, fs Michel, & Marguerite /Lombard/
Il s'agit du baptême à Vénissieux de Louis Pizard, fils de Michel et Marguerite Lombard, le 18 octobre 1694.
Moyennant une opération simple, un collage spécial, cette entrée est immédiatement utilisable dans plusieurs tableurs, dont LibreOffice.
Son caractère frugal en fait un outil tout terrain : à la maison ou aux archives, avec un carnet manuscrit, sur ordinateur ou sur mobile, utilisé dans n'importe quel outil de saisie de texte, comme par exemple le champ note des logiciels de généalogie, etc.
À l'aide d'outils un peu plus avancés capables de le manipuler, le format GCSV peut servir à de nombreux usages : prises de notes rapide en situation, relevés ponctuels rapides pour explorer des hypothèses, échanges de données, relevés systématiques à partir d'outils frugaux, relevés collaboratifs en ligne à partir d'outils génériques, opérations de relevés coup de poing en ligne à partir d'un simple "pad" partagé, etc.
GCSV est proposé à titre expérimental par son auteur, Charles Nepote, sans aucune garantie de suivi ou de poursuite. Il s'agit aujourd'hui d'un usage personnel, mais le projet est ouvert à la discussion et la collaboration.
GCSV n'est pas versionné pour le moment étant donné son caractère trop encore expérimental.
GCSV est librement réutilisable sous licence Creative Commons CC-BY-SA.
GEDCOM est le format d'échanges de données généalogiques le plus utilisé. Ce dernier est orienté individus et famille mais n'est pas bien pensé pour relever tout ou partiellement des documents d'archives. Il en est de même pour les logiciels de généalogie qui tendent suivre une logique proche du format GEDCOM, bien que ce dernier ne soit qu'un format d'échange.
GCSV peut être utilisé au sein même d'un logiciel de généalogie, à l'aide du champ "notes", géré par la plupart de ces derniers.
À l'aide d'un script, les données saisies peuvent ensuite être aisément extraites d'un export GEDCOM pour être agrégées et reutilisées ultérieurement.
TODO : dessiner un graphique pour expliquer clairement l'anatomie d'une entrée.
GCSV est un ensemble de formats dédiés à des événements généalogiques simples : baptême/naissance, mariage, sépultures/décès. Un exemple simple permet de mieux comprendre :
GCSV, B, Vénissieux, 18/10/1694, Louis /Pizard/, fs Michel, & Marguerite /Lombard/
Dans le format GSV :
- Chaque ligne représente un acte ou un fait généalogique.
- Une ligne GCSV est composée d'informations — appelons-les champs — séparées par une virgule
,
. - Chaque ligne doit commencer par
GCSV
ou* GCSV
ou- GCSV
; elle peut également commencer directement par le type d'événement (B
,M
ouS
) ; vous pouvez également utiliser des minuscules pour accélérer la saisie des données, au détriment de la lisibilité. - Chaque champ peut commencer par un
<espace>
, pour une meilleure lisibilité. - Les noms de famille sont tous entourés de caractères
/
; par exempleJohn /Smith/
(comme dans le format GEDCOM). - La filiation est indiquée par
fs
(pour filius) oufa
(pour filia), afin de faciliter la lecture pour les humains. - Les unions sont mentionnées par les signes
&
etU
, également utilisés pour la lisibilité par les humains. - Les commentaires peuvent apparaître n'importe où à l'aide de parenthèses
( )
. - Tout ce qui se trouve entre guillemets doubles (
"comme ceci, ou comme cela"
) n'est pas interprété par les logiciels et doit être laissé tel quel ; cela permet d'utiliser des virgules à l'intérieur d'un champ.
FIXME: remplacer la notion de
ligne
par la notion d'entrée
, ouenregistrement
comme dans la spécification CSV ?
Champs :
- Le premier champ correspond au nom du format,
GCSV
. - Le deuxième champ correspond au
type
de l'événement. - Le troisième correspond au
lieu
de l'événement. - Le quatrième correspond à la
date
; le format est libre, mais nous recommandons d'utiliser le format ISO-8601 (norme internationale). - Le cinquième champ correspond à la personne principale concernée par l'événement — nous l'appelons
ego
— avec son prénom, suivi de son nom de famille entouré de/
; par exempleLouis /Pain/
. - Selon le type d'événement, le sixième champ et les suivants sont utilisés pour des données supplémentaires (détaillées ci-dessous).
- Le dernier champ est utilisé pour les commentaires ; les utilisateurs peuvent y ajouter les informations supplémentaires qu'ils souhaitent.
Vous pouvez donner d'autres indications pour certaines valeurs spécifiques. Cette étape est facultative, mais elle peut vous aider, vous ou vos contributeurs, à produire des données plus cohérentes.
-
(un trait-d'union) signifie que les données n'existent pas ; il peut être important d'indiquer explicitement que des informations manquent dans un document, et que cela n'est pas dû à la paresse de l'auteur de l'enregistrement. Mentionner une information manquante est une information en soi.+
(un signe plus) à la fin d'un champ signifie qu'une personne est explicitement mentionnée comme décédée dans le document.....
(4 points) signifie des caractères qui ne peuvent pas être lus____
(4 traits de soulignement) signifie un espace que le scribe a laissé vide
FIXME : les paires de traits de soulignement sont interprétées par de nombreux outils/langages comme un moyen de mettre en évidence du texte. Devrions-nous les conserver ou trouver une autre syntaxe ?
FIXME :
-
pourrait être une exigence, et non seulement une option, car cela facilite clairement la lecture d'une entrée.
FIXME :
+
est tellement commun que cela pourrait être une règle et pas seulement une option.
Exemple sans utiliser le mot-clé GCSV
:
B, Siran, 1636-03, Anthoine /Falguières/, fs Jehan, & Jehane /Galiniere/
Exemple avec un commentaire pour mentionner le parrain et la marraine :
GCSV, B, Canet, 22/07/1742, Jean François /Dulsou/, fs Pierre, & Elizabeth /Caumel/, P François Guiliou - M Marie Guiliou de la paroisse de Raissac
Exemple où le nom de la mère n'est pas mentionné dans l'acte :
GCSV, B, Canet, 22/07/1742, Jean François /Dulsou/, fs Pierre, & Elizabeth /-/, P François Guiliou - M Marie Guiliou de la paroisse de Raissac
Exemple où le nom d'ego a été délibérément laissé vide par le scribe :
S, Saint-Laurent-de-Mure, 09/10/1683, Clauda /____/, fa -, & - /-/, veuve de feu François /Villard/ - "septante cinq ans" - en presence "de Claude /Forey/ son geandre" - http://archives.rhone.fr/ark:/28729/a0114478417208dQTqY/1/3
Exemple de notation abrégée, utilisée quand l'acte donne peu d'information ou bien quand l'auteur de l'entrée ne souhaite pas entrer plus d'information :
B, Some Place, 1646-12-23, Pierre /Favre/
Exemple de notation abrégée avec des commentaires (sans besoin d'analyse automatisée (parsing)) :
B, xxxx, 1646-12-23, Pierre /Favre/,,,,comments here
Dans cet exemple, aucune analyse automatisée n'est requise, vous pouvez copier/coller cette entrée dans un tableur avec le même résultat que pour des données GCSV canoniques. Mais cette syntaxe, qui utilise plusieurs virgules consécutives, est difficile à écrire et à lire.
Exemple de notation abrégée où une analyse automatisée (parsing) est nécessaire :
B, xxxx, 1646-12-23, Pierre /Favre/, (commentaire ici)
Dans cette exemple, copier/coller dans un tableur ne produira pas le même résultat que pour une entrée GCSV canonique, car la chaîne (commentaire ici)
est à la place utilisée pour le prénom du père. Cet exemple nécessite un outil pour convertir cette entrée en entrée GCSV canonique.
Exemple avec des commentaires contenant des virgules :
TODO
Parfois nous avons besoin d'un format encore plus compact :
- lorsqu'on traite des tables anciennes, la parents ne sont généralement pas mentionnés ; il est alors pénible d'avoir a répéter
fs -, & - /-/
à la fin de chaque entrée - de plus, il peut être fastidieux de toujours répéter les trois premiers champs (ex.
GCSV, B, Lyon Saint-Nizier
) lorsque l'on travaille sur les baptêmes d'un même lieu.
La syntaxe compacte GCSV :
- permet de ne pas répéter le
type
et lelieu
relatifs aux entrées qui suivent - permet de ne pas ajouter les champs relatifs au père et à la mère
- mais permet cependant d'ajouter un champ commentaire, entre parenthèses, directement après le nom d'ego
Format :
- La syntaxe compacte GCSV débute avec une ligne contenant :
GCSV
ou directement le type de données- ensuite le
type
de données généalogique - ensuite, optionnellement, le
lieu
- enfin, terminant la première ligne,
:
ou<espace>:
.
- Les lignes suivantes contiennent les autres données généalogiques, comme d'habitude au format GCSV.
- Tout contenu entre parenthèses
( )
doit être traité comme un champ commentaire. - Les données relatives au père et à la mère peuvent être omises, mais il est toujours possible d'ajouter des données en commentaire en utilisant simplement des parenthèses
( )
. - L'ensemble de données se termine par une ligne vide (2 sauts de ligne).
Pour les lecteurs avertis, cela ressemble un peu au format YAML.
TODO
Exemple #1:
GCSV, TB, Lyon Saint-Nizier :
1658, Antoine /Lagrolée/, (page 135)
équivaut à :
GCSV, TB, Lyon Saint-Nizier, 1658, Antoine /Lagrolée/, fs -, & - /-/, page 135
Exemple #2:
GCSV, TB, Lyon Saint-Nizier :
1662-09, Pierre /Berthaud/, (page 278)
1662-11, Antoine /Berthet/, (page 302)
1662-12, Etiennette /Bertet/, (page 331)
équivaut à :
GCSV, TB, Lyon Saint-Nizier, 1662-09, Pierre /Berthaud/, fs -, & - /-/, page 278
GCSV, TB, Lyon Saint-Nizier, 1662-11, Antoine /Berthet/, fs -, & - /-/, page 302
GCSV, TB, Lyon Saint-Nizier, 1662-12, Etiennette /Bertet/, fa -, & - /-/, page 331
Voici la manière canonique d'exprimer les mariages avec GCSV : sur une ligne, la première personne est décrite comme s'il s'agissait d'un baptême ou d'une sépulture ; puis la deuxième personne, décrite de même, est précédée de U
ou x
.
GCSV, M, lieu, date, prénom /nom_ego/, fs prénom_père_ego, & prénom_mère_ego /nom_mère_ego/, U prénom_conjoint /nom_conjoint/, fa prénom_père_conjoint, & prénom_mère_conjoint /nom_mère_coinjoint/, commentaires
Cela présente certains inconvénients :
- le principal étant la difficulté de lecture
- l'autre étant que le mélange des entrées B, S et M dans la même feuille de calcul ne fonctionne pas bien, les données n'étant plus alignées à partir des champs relatifs au conjoint.
Dans les relevés généalogiques, les mariages sont souvent exprimés sur deux lignes (source : https://fr.wikipedia.org/wiki/Relev%C3%A9_syst%C3%A9matique ). Devrions-nous gérer cela ?
Voici un exemple utilisant deux lignes :
M, lieu, date, prénom /nom/, fs prénom, & prénom /nom/,
U prénom /nom/, fa prénom, & prénom /nom/, commentaires
L'exemple suivant offre la possibilité d'aligner les colonnes lors d'un copier/coller "tel quel" dans un tableur :
M, lieu, date, prénom /nom/, fs prénom, & prénom /nom/
,,, U prénom /nom/, fa prénom, & prénom /nom/, commentaires
Mais l'inconvénient est que cela perturbe la possibilité de tri dans dans un tableur, les colonnes M, lieu et date étant vides à la seconde ligne.
Il est cependant aisé de réunir ces deux lignes depuis un script, en supprimant le deuxième groupe de la regexp suivante ((?:GCSV)?M,).*\n(.*)U
.
Nous pourions encore réutiliser la forme compacte pour exprimer les mariages, au prix de 2 ou 3 lignes.
M, lieu, date :
prénom /nom/, fs prénom, & prénom /nom/,
U prénom /nom/, fa prénom, & prénom /nom/, commentaires
Cela simplifie la lecture mais cela présente également l'inconvénient de perturber la possilité tri dans un tableur.
Comme les données GCSV sont au format CSV (format international pour l'échange de données tabulaires), elles peuvent être réutilisées immédiatement avec des outils courants, sans aucune transformation :
- LibreOffice peut importer une ligne brute GCSV par copier-coller via les options : Collage spécial > Collage spécial > Utiliser la boîte de dialogue d'importation de texte
- Google Spreadsheet peut également importer ces données facilement :
- copiez-collez les données
- puis utilisez le menu : Données > Diviser le texte en colonnes
- Il existe probablement aussi un moyen facile de les importer avec Excel (n'hésitez pas à nous le faire savoir !)
- Comme les données GCSV sont au format CSV, certains services en ligne peuvent également les convertir en différents formats, par exemple https://tableconvert.com/csv-to-markdown
Des outils spécifiques pourraient faciliter considérablement l'utilisation des données GCSV et permettre des usages avancés.
Tout d'abord, des analyseurs automatisés (parseurs) GCSV devraient permettre d'analyser de grands corpus de texte (par exemple, des fichiers txt ou Markdown personnels, des fichiers GEDCOM, etc.) afin d'extraire et de transformer les données GCSV.
Une expression régulière permet dans un script d'extraire toutes les entrées GCSV canoniques :
^(2 CONT)?( )?(\*|-)? ?(GCSV, ?)?((B,|S,|M,) ?.*)$
Les données GCSV brutes ne sont pas tout à fait pratiques pour créer des bases de données efficaces. Des analyseurs et convertisseurs GCSV pouraient :
- extraire les données GCSV de tout format de fichier basé sur du texte
- normaliser les entrées GCSV : par exemple, toutes les entrées devraient commencer par le mot-clé
GCSV
- transformer la séquence
Prénom /Nom/
en deux champs - supprimer les données inutiles dans un tableur ou une base de données :
fs
,fa
,&
,x
, etc. - regrouper automatiquement toutes les notes entre parenthèses dans le champs commentaire, par example :
B, Lieu, date, Antoine /Martin/, fs (Sr) Pierre, & (Dam.lle) Mathilde /Pierre/
- donnerait :
B, Lieu, date, Antoine, Martin, Pierre, Mathilde, Pierre, père : Sr ; mère : dam.lle
- numéroter automatiquement les actes, permettant ainsi de gérer les mariage sur deux lignes
- etc.
De récents dispositifs socio-techniques montrent qu'il est possible de combiner en un même endroit données et métadonnées : certaines technologies de sites web statiques, des outils de base de connaissances personnelles comme Obsidian, feu CSVY, etc.
Exemple de syntaxe compacte exprimée par un en-tête YAML (inspiré par feu le projet CSVY) :
# This is a prospective example.
---
# En-tête YAML, inclus entre deux balises `---`
format: GCSV
type: "B"
place: "Some Place"
source: "Archive Center somewhere, 282GG5"
---
06/06/1695, Anthoine /Someone/, fs Jean, & Anne /Woman/
14/09/1702, Marie /Someone/, fa Jean, & Anne /Woman/
Serait converti en GCSV canonique :
GCSV, B, Some Place, 06/06/1695, Anthoine /Someone/, fs Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
GCSV, B, Some Place, 14/09/1702, Marie /Someone/, fa Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
Exemple où l'en-tête YAML pourrait permettre de changer le format :
# This is a prospective example.
---
schema: format, place, type, date, ego, father, mother, comments
schema_name: gcsv-td
place: "Some Place"
source: "Archive Center somewhere, 282GG5"
---
GCSV-TD:
B, 06/06/1695, Anthoine /Someone/, fs Jean, & Anne /Woman/
S, 03/12/1696, Anthoine /Someone/, fs Jean, & Anne /Woman/
B, 14/09/1702, Marie /Someone/, fa Jean, & Anne /Woman/
S, 22/03/1707, Louise /Someone/, fa Jean, & Anne /Woman/
Serait converti en GCSV canonique :
GCSV, B, Some Place, 06/06/1695, Anthoine /Someone/, fs Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
GCSV, S, Some Place, 03/12/1696, Anthoine /Someone/, fs Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
GCSV, B, Some Place, 14/09/1702, Marie /Someone/, fa Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
GCSV, S, Some Place, 22/03/1707, Louise /Someone/, fa Jean, & Anne /Woman/, source: Archive Center somewhere, 282GG5
Exemple où le premier mot-clé donne la variante GCSV.
# Intéressant à utiliser sous forme de syntaxe compacte lorsque le lieu est invariable
# mais pas le type d'acte et la date
GCSV-PTD, Place, Type, Date, ......
# Intéressant par exemple pour des tables anciennes par année,
# où le lieu est invariable et la date est une année donnée et invariable
GCSV-PDT, Place, Date, Type, ......