Responder

avis sur Gramps, qualités / défauts

lucsecouard
male
Mensagens: 14
@dhavrais

Bonjour,

À ma connaissance, Heredis pour Windows utilise une base SQLite. Cela signifie que la phase de rétro-analyse est un peu simplifiée par rapport au travail que j’avais dû faire sur Mac : au lieu d’essayer de comprendre comment sont stockées les données dans un fichier binaire, il suffit de comprendre comment est constitué le modèle relationnel utilisé par Heredis.

Cela ne signifie pas que ce soit un travail simple. Si identifier les tables est certainement assez évident, il faut repérer l'emplacement de tous les attributs, leur type et leur format éventuel.

J’avais pour ma part procédé ainsi :
– construire une vue relativement complète du modèle utilisé par Heredis (j’ai ignoré les éléments que je n’utilisais pas) ; pour cela, j’avais construit de nombreux petits tests élémentaires afin de repérer où étaient stockés les attributs ;
– établir les règles de correspondance avec le modèle de Gramps ; c'est l’étape la plus importante durant laquelle doivent être prises des décisions structurantes ;
– écrire les modules chargeant les données d’un fichier d’Heredis 3 (décodage depuis le fichier binaire) et en construisant une représentation en mémoire ;
– écrire le module produisant le fichier XML de Gramps (et contenant donc la logique de correspondance entre les modèles).

La programmation n’a pas été compliquée. Ce qui a été compliqué, c’est la rétro-analyse et surtout la définition des règles de correspondance car il y a beaucoup de détails à prendre en compte.

Mon script n’était donc pas complet, se contenant de traiter les éléments que j’utilisais (ce qui devait tout de même représenter au moins 95% des fonctions d’Heredis 3). Il incorporait aussi le traitement de conventions personnelles diverses : par exemple, puisque qu’Heredis 3 ne permettait d’associer plusieurs notes à un objet, de découper une note unique contenant de multiples informations en plusieurs notes contenant une seule information.

Je considère la réalisation d’un script similaire pour la version d’Heredis pour Windows, comme tout à fait réalisable, mais il faut procéder méthodiquement. Il ne sert à rien de programmer quoi que ce soit tant que vous n’avez pas une connaissance suffisante du modèle de données d’Heredis.

Je doute que mon script puisse vous être utile car il est assez fortement lié au modèle d’Heredis 3 tel que je l’ai reconstruit. Il pourrait éventuellement être intéressant pour récupérer la logique de production du fichier XML de Gramps, même si, depuis 2011, le modèle de données de Gramps a, lui aussi, fortement évolué. À l’époque, la gestion des lieux était beaucoup plus simple (non hiérarchique) et il n’existait pas de citations, seulement des sources (comme Heredis 3 ne gérait pas non plus les citations, cela tombait bien).

Par ailleurs, j’imagine que la version actuelle d’Heredis pour Windows doit être bien plus riche que la version 3 d’Heredis pour Mac. Même si je ne doute pas de la capacité de Gramps de représenter la quasi totalité des informations gérées par Heredis, il faudra définir les règles de correspondance.

Ceci étant, si cela vous semble utile, je pourrai vous transmettre mon script (environ 4000 lignes de Python). C’est relativement lisible et c’est correctement structuré (huit ans après, j’arrive à m’y retrouver :) ). Comme je l’ai dit, ce n’est pas de la programmation compliquée, c’est de la programmation avec plein de petits détails pour assurer la correspondance des modèles. Mon script peut alors donner une indication sur la manière de procéder. À vous de voir.

Si vous le souhaitez, je suis aussi prêt à discuter avec vous plus en détail sur ce sujet.

Cordialement.

romjerome
male
Mensagens: 1143
lucsecouard Escreveu:
22 agosto 2019, 20:04
– écrire le module produisant le fichier XML de Gramps (et contenant donc la logique de correspondance entre les modèles).
Si besoin, mon dépôt 'fourre-tout' me permettait de jouer avec les versions XML de Gramps. Le 'gramplet lxml' peut par exemple servir d'exemple pour une interface de transformation de (ou vers) un fichier XML de Gramps valide, ou tout simplement pour la création d'un fichier XML pour Gramps.

Un simple fichier texte résume le modèle actuel de Gramps (format XML). Par ailleurs, les principaux schémas 'Gramps XML' sont également disponibles dans le dépôt (ceci va plus loin que les simples fichiers DTD et RNG présents dans les sources !).

Responder

Voltar para “Gramps”