Généalogie

1) Introduction

Un logiciel de généalogie a pour fonction de présenter et de gérer toutes sortes d'informations publiques concernant la généalogie d'une ou plusieurs familles.

Il y a deux types de données; les données publiques qui lient plusieurs personnes entre elles et les données publiques qui sont propres à la personne. Les données liant les personnes entre elles se pésentent sous forme d'un graphe, tandis que les donnée propres à la personnes se présente sous forme d'une liste d'évènements documents qui peuvent être datés, localisés et quaifiés. Cette dichotomie va nous amener à utiliser un langage de données séparant bien ces deux types de données.

Le graphe peut incorporer d'autres type de liens que seulement les unions et filiations tels des liens professionelles, des liens de relation amicale, des liens de simple connaissance, des liens de filiation spirituel ou d'affinités diverses.... Cela permet d'élargire les domaines d'utilisation du logiciel, sans pour autant perdre des données spécifiques utilisable par la génétique.

On établit un ordre de précision généalogique des personnes. Cela nous permet d'ordonner l'information et de définir un degré de précision que l'on pourra choisir pour l'affichage. Les informations doivent être lisibles par un humain, et cela a également pesé dans le choix de l'ordre de précision. Chaque personne est décrites plus ou moins précisement en considérant les informations propres et les informations liantes dans les ordres suivant :

Dans la pratique classique, la personne est identifiées par les 4 premières données propres : prénom, nom, date de naissance, lieu de naissance, et est décrite encore plus précisement en ajoutant sa date de décès et le lieu de décés (s'il y a lieu). Mais il se peut que nous ne connaissions que le prénom de la personne, auquel cas il faut puiser dans les informations liantes pour identifier la personne. Exemple : "Jean conjoint d'Isabelle, conjoint de Claudine, fils de Léon". Avec ce genre de donnée, la construction du graphe devient un problème logique pour discerner les homonymes.

On remarque que, à l'exception de l'adoption individuelle, la relation de filiation lie les enfants à une union parente, et non à un parent plus qu'a un autre. Il apparait alors intéressant d'introduire dans le graphe, comme sommets, non seulement les personnes mais également les unions. On étudie les deux cas :

2) Graphes dont les sommets désignent les personnes et les unions.

Pour des raisons de facilité de programmation, les sommets du graphes, qui représentent les personnes et les unions, doivent être numérotés.

Le langage de compilation que nous utilisons est un jeu de 5 instructions : C, E, A, P, U,

Instruction
Appellation
Description
Exemple
x P
...
...
...
P
Personne

x désigne une personne et ses informations propres sont celles écrites dans cet ordre :
Prénom   Nom
Date_naissance   Lieu_naissance
Date_décès   Lieu_ décès
Date Lieu Evénement
Date Lieu Evenement

...

7 P
Louis TARIEL
16/05/1884 AZAY-LE-RIDEAU
20/12/1964 AZAY-LE-RIDEAU
P

x U
...
...
U
Union

x désigne une union et ses informations propres sont celles écrites dans cet ordre :
Qualité
Date   Lieu
Date Lieu Evénement
Date Lieu Evénement
...

9 U
Mariage
03/07/1975 AZAY-LE-RIDEAU
U
x C y
Lien d'union
x contracte l'union y 8 C 9
y E z
Lien de filiation
y engendre l'enfant z 9 E 12
u A v
Lien d'adoption
L'union ou la personne u adopte v 7 A 12

Une union doit être composée au plus de deux personnes. En cas d'enfant reconnu que par un seul parent, il est considéré qu'il y a une union dont un des parent est inconnu, autrement dit l'union ne lie qu'un seul parent. Il est fait la distinction entre adoption individuelle et adoption par une union. (Cela n'a d'intérêt que si le statut juridique de la filiation en fait la différence). Les enfants d'une union comprennent les enfants reconnus par les membres de l'union ainsi que les enfants adoptés par l'union. Dans les mariages recomposés suite à un décès, les enfants d'une première union sont adoptés par la seconde union et ainsi de suite (comme c'est souvent le cas juridiquement) parcontre dans la cas de séparation et de recomposition il peut en être autrement.

3) Graphes dont les sommets ne désignent que les personnes

Les sommets du graphes représentent les personnes et sont numérotés.

Le premier langage de compilation que nous utilisons est un jeu de 5 instructions : U, E, A, P.

Instruction
Appellation
Description
Exemple
x P
...
...
...
...
...
...
...
...
...
...
...
P
Personne
x désigne une personne et ses données propre sont celles écrites dans cette ordre :
Prénom Nom
Date_naissance   Lieu_naissance
Date_décès   Lieu_décès
Qualité Date Lieu
Prénom Nom
Date_naissance   Lieu_naissance

Date_décès   Lieu_décès
Qualité Date Lieu
Prénom Nom
Date_naissance   Lieu_naissance

Date_décès   Lieu_décès
...

7 P
Louis TARIEL
16/05/1884 AZAY-LE-RIDEAU
20/12/1964 AZAY-LE-RIDEAU
Mariage 1919 PARIS 15°
Marie Josèphe ALLARY
1886 DESVRES (62)
17/02/2009 CHAMBRAY (37)
Mariage 1922
Madeleine d'ANGELY
04/01/1898 PARIS 6°
11/09/1951 AZAY-LE-RIDEAU
P

x U y
Lien d'union
x s'unit à y 8 U 9
y E z
Lien de filiation
y engendre l'enfant z 9 E 12
u A v
Lien d'adoption
u adopte v 7 A 12

Les enfants comprennent les enfants reconnus par la personne ainsi que les enfants adoptés par la personne. Il n'est pas fait de distinction entre adoption individuelle et adoption par un couple de personnes. Dans les mariages recomposés suite à un décès, les enfants d'une première union sont adoptés par le nouveau conjoint (comme c'est souvent le cas juridiquement), parcontre dans le cas de séparation et de recomposition il peut en être autrement.

Il convient que toutes les personnes mentionnées apparaissent comme sommet dans le graphe et que chaque annonce d'une union doit être accompagnés par l'instruction correspondante (x U y).

L'inconvénient de cette structure de données est que les deux types de données, les données propres et les données liantes, ne sont pas strictement séparées. Une redondance est conservée dans la donnée propre et qui regroupe les données relatives aux conjoints. On peut alors dans un premier temps utilisé un langage plus simple n'utilisant pas l'instruction (x U y), puis effectuer une compilation qui produit ces instructions (x U y) manquantes.

On peut pousser le raisonnement jusqu'au bout et partir de données exclusivement propres, puis effectuer une compilation qui produit ces instructions construisant le graphe :

Autre inconvénient, dans ces langages, les liens autres que les unions, filiation ou adoption, ne sont pas représentés.

4) Données regroupées par personne.

Les données sont une succesions de données propres aux personnes, est constitues donc une liste de personnes.

Le langage de compilation que nous utilisons est un jeu de 3 mots clefs : Union, Enfant, Adoption, Evènement

Données relatif à une personne
Prénom Nom
Date_naissance   Lieu_naissance
Date_décès   Lieu_décès
Union
Qualité Date Lieu
Prénom Nom
Date_naissance   Lieu_naissance

Date_décès   Lieu_décès
Enfant
Prénom Nom
Date_naissance   Lieu_naissance
Date_décès   Lieu_décès
Adoption
Prénom Nom
Date_naissance   Lieu_naissance

Date_décès   Lieu_décès
Lien
Qualité Date
Prénom Nom
Date_naissance   Lieu_naissance

Date_décès   Lieu_décès
Liste_documents
Evènement
Qualité Date Lieu
Liste_documents
Exemple

Louis TARIEL
16/05/1884 AZAY-LE-RIDEAU
20/12/1964 AZAY-LE-RIDEAU
Union
Mariage 1919 PARIS 15°
Marie Josèphe ALLARY
1886 DESVRES (62)
17/02/2009 CHAMBRAY (37)
Enfant
Marie-Louise TARIEL
02/05/1920 DESVRES (62)
17/02/2009 CHAMBRAY (37)
Union
Mariage 1922
Madeleine d'ANGELY
04/01/1898 PARIS 6°
11/09/1951 AZAY-LE-RIDEAU
Enfant
Marguerite TARIEL
29/02/1924 PARIS 16°
30/07/2007 CHINON
Enfant
Henri TARIEL
1926 LENS
-
Enfant
Anne-marie TARIEL
1927
-
Enfant
Geneviève TARIEL
11/12/1929 LENS
-
Enfant
Paul TARIEL
1932
-
Enfant
Dominique TARIEL
25/09/1938 LENS
-

 

 

5) Interface graphique

On choisie de programmer l''interface graphique en javascripte et JQUERY et en utilisant le canvas en HTML5. Cela a 2 avantages, portabilité, nécessite aucune installation juste un navigateur internet, framwork déjà spécialisé pour l'affichage de présentation de données.

 

---- 16 Aout 2016 ----

 

 

 

 

 

Le journal sert ainsi d'historique. Il intègre c'est à dire intégrant les modifications, placés dans un ordre quelconque, lisibles par un humain.

On y retrouve les fonctions communes à la gestion des bases de données. Pour assurer la perdurance des données, celles-ci sont groupées dans un fichier texte, en une succession d'informations élémentaires formalisées, et différentes compilations peuvent en être faite.

Une données est relative dans le sens qu'elle n'a jamais une précision absolue. Il y a toujours un risque d'homonymie ou d'erreurs occasionnant des ambiguités qui sont levées par le contexte. La donnée est donc relative au contexte.

 

Pour assurer la perdurance des données, celles-ci sont groupées dans un fichier journal, en une succession d'informations élémentaires et formalisées, avec date d'enregistrement, identifiant du scribe et origine de la source d'information.

 

Les données publiques relatives à l'état civil des personnes et à la filiation juridique peuvent être subdivisé et transcrites à l'aide d'un nombre limité de types d'informations élémentaires telles que :

  1. Naisssance
  2. Décés
  3. Changement d'état civil
  4. Adobtion
  5. Mariage ou PACS
  6. Divorce ou séparation

Lorsque la base devient importante une difficulté d'ordre juridique se pose. En effet, selon la législation du pays où se trouve les données, une information personnelle nominale, même si elle est publique, peut ne pas être légalement mémorisable dans un fichier informatique, et ceci d'autant plus que le fichier contient un grand nombre de telles informations. Le principe général consiste à limiter l'usage informatisé de données personnelles nominales détenue par une administration publique ou privée, selon la nature de son utilisation, selon son périmètre fonctionnel, selon la façon dont est assurée cette restriction, selon le lieu de son utilisation, selon une période limitée dans le temps, etc.... Et dans les cas où la base de donnée est nécessaires, le principe général consiste à garantire la légalité des données personnelles nominales informatisées, qu'elles n'exposent pas la personne concernées à une discrimination illégale, et à garantire la légalité des usages qui en sont fait, un usage initial qui ne doit pas être changé en cours de route. Cela passe par le libre accès aux connaissances de ces données personnelles nominales par la personne concernée, avec la capacité de les faire changer si elle sont erronées ou non conformes.

Le logiciel peut se généraliser à d'autres types de données. On définie une structure de base de données comprenant des listes. Et on définie le langage du fichier journal. dans le but de pouvoir transmettre facilement les données à des tiers, d'établir des traitements automatiques, de pouvoir fusionner plusieurs arbre généalogique entre eux, de pouvoir vériifier l'intégrité, et de pouvoir restaurer à tout moment.

Les données peuvent contenir des erreurs telle que différentes écritures d'un même nom, où des données fausses. Dans certain cas la résolution consiste à opérer des fusions ou à repérer les erreurs manifestement fausse, ce qui constitue un point de vue subjectif, une données qui se rajoute, et qui peut être le résultat d'une recherche introspective automatisée par rapprochement des informations, ou d'un apport de connaissance de la part de l'utilisateur.

2) Schéma de la base de donnée

Les informations de chaque individu sont compilés en fiches comme suit :

Id : <Identifiant>
Nom : <Nom de naissance en majuscule>
Prénoms : <Liste des prénoms>
Naissance : <Date, Ville, Département, Pays>
Décès : <Date, Ville, Département, Pays>
Père : <Identifiant>
Mère : <Identifiant>
Enfants : <Liste d'identifiants>
Conjoints : <Liste de (Identifiant, Type, Date)>
Lieux : <Liste de (Date, Ville, Département, Pays)>
Evènements : < liste de (Date, Description, Références vers un document)>

Les fiches sont affichée en aperçu comme suit :

Nom : <Nom de naissance en majuscule>
Prénom : <Prénom>
Naissance : <Date, Ville, Département, Pays>
Décès : <Date, Ville, Département, Pays>
Père : <Prénom en minuscule suivi du nom de naissance en majuscule>
Mère : <Prénom en minuscule suivi du nom de naissance en majuscule>
Enfants : <Liste des premiers prénoms des enfants >
Conjoints : <Liste de (Prénom en minuscule suivi du nom de naissance en majuscule, Type, Date)>
Lieux : <Liste de (Date, Ville, Département, Pays)>
Evènements : < liste de (Date, Description, Références vers un document)>

La date peut contenir le mot clef "vers" suivit d'une année, ou bien contenir un slash si le mois est précisé, ou bien contenir deux slash si le jour est précisé. Par exemples Date : vers 1900, 1901, 5/1901, 12/5/1901

Le fichiers journal contient énormement de redondance ainsi que la trace de toute modification. Chaque article commence par <id>, <date>, <login>, puis par l'information élémentaire apportée en claire. L'identifiant de l'individu est un ensemble incomplet de Nom, Prénoms, date de naissance, ville de naissance, département, pays et éventuellement d'une référence locale, tel un emblème, qui permet de différentier facilement les homonymes.

---- 16 août 2015 ----

 

Modifit

<Id> :

Nom : <Nom>
Prénom : <Prénom>
Naissance : <Date, Ville, Département, Pays>
Décès : <Date, Ville, Département, Pays>
Père : <Prénom en minuscule suivi du nom de naissance en majuscule>
Mère : <Prénom en minuscule suivi du nom de naissance en majuscule>

<id>, <date>, <login>, Ajoute à <Id> :

Enfants : <prénoms des enfants >
Conjoints : <Liste de (Prénom en minuscule suivi du nom de naissance en majuscule, Type, Date)>
Lieux : <Liste de (Date, Ville, Département, Pays)>
Evènements : < liste de (Date, Description, Références vers un document)>

 

 

----------------