La famille Tournier (intitulé du site)

 
Navigation
  Accueil
  Recherche sur le site :

  

Informations
  Etymologie du nom
  Sens du mot
  Origine géographique
  Répartition géographique
  Hors de France
  Célébrités
      Nicolas Tournier
  Mediathèque
  Lieux

Généalogie
  Cousinade : Lièvremont 2008
  Quelques arbres
      Base GeneWeb
  Quelques documents
  Les pages de Christian,
  Claude, Hervé et Michel
  ...
  Forum Tournier sur GeneaNet

Communauté
  Annonces familiales
      Annonces archivées
  Les Tournier sur le Web
  Votre adresse @tournier.org
  Activités à partager
  ...
  Notre réseau sur Viaduc

 

A propos de G-Net

G-Net (prononcez "Ginette") est un petit logiciel généalogique que je développe à mes heures perdues, pour avoir l'occasion de faire encore un peu de développement, mais aussi pour approfondir mes connaissances généalogiques...

1. Eléments de spécification

1.1. Objectifs de conception

Par rapport aux logiciels de généalogie compatibles GEDCOM ou GENEANET, développer un logiciel :

  • reposant un peu plus sur les techniques utilisées dans les systèmes de gestion de bases de données relationnelles
  • multi lingue (français et anglais pour l'instant, mais d'autres langues (espagnol, vietnamien) seraient faciles à mettre en œuvre)
  • ayant notamment l'avantage de permettre l'utilisation de données libres présentées au format HTML, pratiques pour l'inclusion de photos et autres documents
  • dont les résultats soient consultables hors-ligne, sans utilisation de programme particulier

1.2. Reste à faire

Développer l'accès aux données par :

  • le calendrier des événements à venir
  • l'index des lieux d'enregistrement d'actes (de naissance, de mariage, de divorce, de décès, etc.)

A partir de la fiche généalogique d'une personne, développer :

  • la navigation dans ses relations familiales "latérales" :
    • frères et soeurs
    • oncles et tantes
    • cousins (germains et issus de germains)

Autres tâches fonctionnelles (si le besoin apparaît) :

  • rédiger un paragraphe sur les aspects légaux (notamment Loi Informatique et Libertés)
  • gérer différents ordres d'affichages du nom (par exemple, "nom prénom" pour les vietnamiens)
  • remplacer les codes de pays par l'intitulé correspondant dans les fiches de personnes
  • gérer les naissances sous X
  • distinguer les mariages civils, religieux, PACS
  • gérer les annulations de mariages
  • gérer les unions entre homosexuels
  • gérer les remariages avec un ancien conjoint
  • gérer les adoptions
  • gérer les relations entre personnes sans lien de parenté (concubin - quand il n'y a pas d'enfants -, témoin, parrain, etc.)
  • gérer les événements ne donnant pas nécessairement lieu à un acte (rencontre, baptème, etc.) pour la fonction de calendrier des événements à venir

2. Structures de données

2.1. Types de données

Une clé est une valeur numérique positive ou nulle.

Une date est une chaîne de caractères de la forme "AAAAMMJJ", où "AAAA" représente l'année sur 4 positions, "MM" le mois sur 2 positions, "JJ" le jour sur deux positions.
Il est possible de remplacer une position inconnue par le caractère "?".
Il est possible de remplacer une date inconnue par la chaîne de caractères "?".

Un lieu est une chaîne de caractères de la forme "VILLE (CODE_PAYS-CODE_POSTAL)", où "VILLE" représente la ville d'enregistrement d'un acte, "CODE_PAYS" le code du pays correspondant (voir la table des codes de pays) et "CODE_POSTAL" le code postal correspondant.
La partie "-CODE_POSTAL" peut être omise si le code postal n'est pas connu.
Il est possible de remplacer un lieu inconnu par la chaîne de caractères "?".

2.2. Les personnes

2.2.1. Table des personnes

Cette table regroupe les principales informations relatives à un individu.
Elle est gérée dans le fichier "personnes.tbl".

Nom du champDescriptionTypeValeur
ClePersonneL'identifiant de l'individucléNon nulle
ClePereL'identifiant du père de l'individucléLa valeur "0" indique un parent non référencé dans la base de données
CleMereL'identifiant de la mère de l'individucléLa valeur "0" indique un parent non référencé dans la base de données
NomLe nom patronymique de l'individuchaîne"?" s'il n'est pas connu
Par convention, mettre l'initiale en majuscule
PrenomPrincipalLe prénom principal de l'individuchaîne"?" s'il n'est pas connu
La partie "facultative" d'un prénom (notamment Vietnamien) peut-être précisée entre parenthèses
Par convention, mettre l'initiale en majuscule
AutresPrenomsLe(s) prénom(s) secondaire(s) de l'individuchaîneSéparés par la chaîne de caractères ", "
Ou vide s'il n'y en a aucun
Par convention, mettre l'initiale en majuscule
SurnomLe surnom ou le nom d'usage de l'individuchaîneOu vide s'il n'y en a pas
Par convention, mettre l'initiale en majuscule
DateNaissanceLa date de naissance de l'individudate 
LieuNaissanceLe lieu de naissance de l'individulieu 
DateDecesLa date de décès de l'individudateVide pour un individu présumé vivant
LieuDecesLe lieu de décès de l'individulieuVide pour un individu présumé vivant
SexeLe sexe de l'individucaractèreLe caractère "H" pour les hommes et "F" pour les femmes

Le cas suivants ne sont pas encore gérés, faute de s'être présentés :

  • naissance sous X

2.2.2. Dossier des portraits de personnes

Ce dossier regroupe les éventuels portraits d'individus.
Il est géré dans le répertoire "PHOTOS".

Ce répertoire peut contenir des fichiers nommés :

  • "CLE_PERSONNE.jpg"
  • "CLE_PERSONNE.html"
  • "CLE_PERSONNE.html.CODE_LANGUE"
où CLE_PERSONNE est l'identifiant de l'individu et CODE_LANGUE désigne la langue (auto-)sélectionnée dans le navigateur Web de l'utilisateur.

Les fichiers .jpg peuvent contenir des images de résolution arbitraire au format JPEG.

Les fichiers .html peuvent contenir des éléments HTML de type "WIDTH=X HEIGHT=Y", afin d'afficher une image dans un format redimensionné ne dépassant 320 par 256 pixels.

En plus de cela, les fichiers .html.CODE_LANGUE peuvent contenir l'élément HTML "TITLE="commentaire"", afin d'afficher un commentaire lors du survol de l'image, précisant notamment la date du cliché et éventuellement les circonstances dans lesquelles il a été pris.

Par convention - et dans la mesure du possible -, on privilégiera :

  • pour les personnes vivantes un portrait le plus actuel possible
  • pour les personnes décédées un portrait pris lors d'un temps fort de leur vie (mariage par exemple)

2.2.3. Dossier des autres informations sur une personne

Ce dossier regroupe d'autres informations relatives à un individu.
Il est géré dans le répertoire "INFOS".

Ce répertoire peut contenir des fichiers nommés :

  • "CLE_PERSONNE.html"
  • "CLE_PERSONNE.html.CODE_LANGUE"
où CLE_PERSONNE est l'identifiant de l'individu et CODE_LANGUE désigne la langue (auto-)sélectionnée dans le navigateur Web de l'utilisateur (la première forme, sans précision de langue, est à éviter dans la mesure du possible).

Ces fichiers peuvent contenir tout élément HTML susceptible d'apparaître entre une balise <BODY> et une balise </BODY>.

Ils peuvent également référencer des fichiers supplémentaires, tels que des images à afficher, des documents à télécharger, d'autres pages Web, etc.

2.2.4. Dossier des meta-informations sur une personne

Ce dossier regroupe des informations sur les recherches généalogiques relatives à un individu, telles que les informations manquantes, les informations douteuses ou à vérifier, les pistes de progrès, etc.
Il est géré dans le répertoire "META".

Ce répertoire peut contenir des fichiers nommés :

  • "CLE_PERSONNE.html"
  • "CLE_PERSONNE.html.CODE_LANGUE"
où CLE_PERSONNE est l'identifiant de l'individu et CODE_LANGUE désigne la langue (auto-)sélectionnée dans le navigateur Web de l'utilisateur (la première forme, sans précision de langue, est à éviter dans la mesure du possible).

Ces fichiers peuvent contenir tout élément HTML susceptible d'apparaître entre une balise <BODY> et une balise </BODY>.

Ils peuvent également référencer d'autres pages Web, etc.

2.3. Table des unions (et séparations)

Cette table regroupe les informations relatives aux unions et éventuelles séparations entre individus.
Elle est gérée dans le fichier "unions.tbl".

Nom du champDescriptionTypeValeur
CleConjoint1L'identifiant du premier conjoint (typiquement le mari)clé 
CleConjoint2L'identifiant du second conjoint (typiquement l'épouse)clé 
DateUnionLa date de l'uniondate 
LieuUnionLe lieu de l'unionlieu 
TypeUnionLe type d'unioncaractère"C" pour un mariage civil
"R" pour un mariage religieux
"P" pour un PACS
"?" dans le doute (pour les vieux mariages)
DateSeparationLa date de l'éventuelle séparationdateVide pour une union non échue
LieuSeparationLe lieu de l'éventuelle séparationlieuVide pour une union non échue
TypeSeparationLe type de l'éventuelle séparationcaractèreVide pour une union non échue
"D" pour un divorce civil
"A" pour un mariage annulé

Les différents types d'unions et de séparations ne sont pas encore gérés, faute de s'être présentés :

  • les unions sont considérées comme de type mariage civil ("C")
  • les séparations sont considérées comme de type divorce civil ("D")

Le cas suivants ne sont pas encore gérés, faute de s'être présentés :

  • union homosexuelle
  • nouvelle union avec un ancien conjoint

2.4. Table des adoptions

Cette table regroupe les informations relatives aux adoptions d'individus.
Elle est gérée dans le fichier "adoptions.tbl".

Nom du champDescriptionTypeValeur
CleEnfantAdopteL'identifiant de l'individu adoptéclé 
ClePereAdoptifL'identifiant du père adoptif de l'individuclé 
CleMereAdoptiveL'identifiant de la mère adoptive de l'individuclé 
DateAdoptionLa date de l'adoptiondate 
LieuAdoptionLe lieu de l'adoptionlieu 

Le cas ne s'étant pas encore présenté, les fonctionnalités correspondantes ne sont pas encore implémentées.

2.5. Table des autres relations

Cette table regroupe les informations relatives aux autres types de relations entre individus, et notamment pour ceux sans relation de parenté.
Elle se lit de la façon suivante "[CleSource] [TypeRelation] de [CleDestination]", par exemple : "Alice marraine de Bernard".
Elle est gérée dans le fichier "relations.tbl".

Nom du champDescriptionTypeValeur
CleSourceL'identifiant de l'individu source (voir ci-dessus)clé 
CleDestinationL'identifiant de l'individu destination (voir ci-dessus)clé 
TypeRelationLe type de relation entre les individuscaractère"C" pour concubin(e)
"T" pour témoin
"P" pour parrain/marraine
DateDebutRelationLa date du début de la relationdate 
LieuDebutRelationLe lieu du début de la relationlieu 
DateFinRelationLa date de fin de la relation, si cela a un sensdateVide pour une relation non échue
LieuFinRelationLe lieu de fin de la relation, si cela a un senslieuVide pour une relation non échue

Le besoin ne s'étant pas encore présenté, les fonctionnalités correspondantes ne sont pas encore implémentées.
Les concubins avec enfant(s) apparaissent néanmoins dans l'implémentation actuelle.

2.6. Table des codes de pays

Cette table permet d'obtenir la correspondance entre un code de pays et son intitulé.
Elle est gérée dans un fichier "pays.tbl.CODE_LANGUE", où CODE_LANGUE désigne la langue (auto-)sélectionnée dans le navigateur Web de l'utilisateur.

Nom du champDescriptionTypeValeur
CodePaysLe code du payschaîneSur 2 caractères, sur le modèle des noms de domaines Internet
LibellePaysL'intitulé du payschaîne 
LibelleHabitantL'intitulé d'un habitant du payschaîne 
LibelleHabitanteL'intitulé d'une habitante du payschaîne 

2.7. Implémentation physique

G-Net est implémenté par un ensemble de scripts écrits en (Bourne) Shell, tirant avantage des utilitaires de traitement de données présents en standard sur les systèmes Unix et de fonctions évoluées du serveur Web Apache (auto-négociation de la langue, réécriture d'URL, etc.).

Sauf mention contraire, les tables de sa base de données sont gérées dans des fichiers "plats" avec un enregistrement par ligne et un séparateur de champ représenté par le caractère "|".

Cette approche "poids plume" s'explique par les caractéristiques du serveur Internet pour lequel il a été initialement développé en 1999 : un compatible PC de récupération, équipé d'un processeur 386, de 8 Mo de RAM et de 200 Mo de disque dur, fonctionnant sous FreeBSD v2.x ! Pas de quoi utiliser un véritable SGBD relationnel donc, d'autant que ce serveur, en plus du Web gérait déjà une multitude d'autres services réseau...

2.8. Logiciels requis

Sous FreeBSD, l'application dépend des ports/packages suivants :

  • archivers/zip / zip-2.3_1 : Create/update ZIP files compatible with pkzip
  • converters/i18ntools / i18ntools-1.0 : Tools for the conversion to and from UTF-8 Unicode encoding

2.9. Logiciels complémentaires

L'application peut également utiliser les ports/packages suivants :

  • misc/lifelines / lifelines-3.0.37.2 : An advanced genealogical system

Ainsi que les éléments suivants :

  • ... générateurs de rapports LifeLines ...

3. Documentation support

3.1. Autres formats de données généalogiques

3.2. Affichage d'arbres généalogiques

3.3. Jeux de caractères "exotiques"

3.4. Paramétrage de serveur Web


[ Drapeau anglais English version | Informations légales | Ours | Charte | Nous contacter | Commenter cette page ]