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 de plusieurs familles.

Il y a deux types de données imbriquées l'une dans l'autre; les données qui lient plusieurs personnes entre elles et les données qui sont propres à la personne seul. Les données liant les personnes entre elles formeront un graphe, tandis que les donnée propres à la personne seul se présenteront sous forme d'une liste d'évènements datés, localisés et pour lesquel seront joint des photos et des documents et auquel on enlève toutes référence logique à d'autres personnes. Cette dichotomie va nous amener à utiliser deux langages de données séparant bien ces deux types de données. Et un troisième type de données est constitué par les données brutes devant être traitées et à partir desquels on extrait les deux autres types de données.

Le graphe peut incorporer de nombreux types de liens autres que seulement les unions et filiations tels des liens professionnelles, des liens de voisinage, d'affinité, de connaissance, de filiation spirituel etc.... Cela permet d'élargire les domaines d'utilisation du logiciel.

On établit le niveau de précision généalogique correspondant à chaque donnée relative à une personne. Cela nous permet d'ordonner l'information et de définir un degré de précision que l'on pourra choisir pour l'affichage. 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, 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 tout lien entre personnes découle d'un évènement. Le graphe des relations entre personne se construit en lisant les données évènementielles de chaque personne. Ces données évènementielles forme un journal où les évènements sont regroupés par article pour une personne à la fois. Les informations doivent être lisibles par un humain, afin de pouvoir facilement être vérifiée et corrigée manuellement si nécessaire.

2) Le journal des évenements

Dans la représentation sous forme de graphe, les sommets représentent les personnes et sont numérotés. Ce numéro identifie la personne de façon local au fichier.

Les informations évènementielles forment un journal et s'écrivent dans un langage codifié comme suit :

Les évènements sont regroupés par article, un évènement par ligne. Le titre de l'article s'écrit sur une ligne et comprend le mot clé "Personne", un numéro identifiant la personne suivit d'une ou deux ou trois ou quatre ou cinq ou six ou sept ou huit indications dans cet ordre : prénom, nom, date de naissance, lieu de naissance, date de décès, le lieu de décès, deuxième prénom, troisième prénom. Le mot clé "inconnu" est utilisé si on ne sait pas une indication et que l'on souhaite donnée une indication supplémentaire dans la liste.

Chaque évènement a une date et un lieu noté inconnu si inconnu, et noté avec imprécision si impréci. Puis il a un type et une liste d'argument (selon le type d'évènement) constituée de photos (lettre "i" suivie d'un numéro), de documents (lettre "d" suivie d'un numéro), et de personnes identifiées par leur numéros.

Le mot clé "FIN" termine l'article.

Exemple :

Personne 125 Louis TARIEL
16/05/1884 AZAY-LE-RIDEAU Naissance i12 d23
20/12/1964 AZAY-LE-RIDEAU Décès i52 d54
03/07/1975 AZAY-LE-RIDEAU Mariage 9 i15 i23 d56 d59 i89 i56
05/04/1976 AZAY-LE-RIDEAU Parent 14 i16 i25 d57
FIN

La première version du langage utilisé comprend 4 type d'évènements :

Naissance
Décès
Mariage x
Parent x

Le caractère blanc servant de séparateur entre les arguments. il y a une contrainte sur les arguments. Ils ne doivent pas contenir de caractère blanc. C'est pourquoi on remplace dans les arguments le caractère blanc par le caractère souligné "_". Par exemples le lieu : La_Huaudière,_Azay-le-Rideau, et le nom : de_La_Bruyère

Les dates sont représentées sous le format jj/mm/aaaa ou mm/aaaa ou aaaa ou aaax ou aaxx selon la précision.

En une seul lecture du fichier journal, le compilateur va extraire les deux types de données, l'une spécifiques aux personnes indépendamment des autres, que nous appelons le recueil, et l'autre établissant les liens entres les personnes sans autre considération , que nous appelons le graphe.

3) Le graphe

4) Le recueil

5) Interface graphique

On choisie de programmer l'interface graphique en Javascripte et JQUERY.

On représente l'arbre généalogique sous forme de cadres emboités. Le cadre d'une personne comprent son nom et sa photo ainsi que l'accès à ses évènements. Le cadre d'un rôle est scindé en deux parties, une partie supérieur qui contient le cadre d'une personne et peut énumèrer ses conjoints, et une partie inférieure qui peut énumérer les enfants.

 

---- 22 janvier 2018 ----

 

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.

En particulier le numéro identifiant une personne est local au fichier. La fusion de fichier necessite alors d'identifier les personnes identiques entre les deux fichiers.

 

 

 

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.

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. Et la même question se repose pour sa publication.

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 nécessairement au moins 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)>