Journal Le temps est gris, faisons de la généalogie

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
24
8
mai
2023

Bonjour Nal,

Le temps est morne, et ma lubie du moment, c'est la généalogie.

Je n'ai pas la prétention de faire un article sur les fantastiques outils libres qui existent (e.g. Gramps par exemple), d'autres l'ont fait et le feraient bien mieux que moi.

Je n'ai pas non plu la prétention d'écrire sur cet art méticuleux qu'est la généalogie, ou bien celui captivant (et lié) et la paléographie, tant certaines personnes m'impressionnent sur le sujet.

Je ne te parlerai pas non plus de la frustration qui est mienne de voir tant d'efforts de nombreuses personnes disséminés et des possibilités de partage que je trouve trop limitées, quand l'idéal me semblerait une généalogie unifiée (il existe des acteurs sur le sujet, mais plutôt soit dans le monde anglo-saxon, soit fermés, de ce que j'ai pu voir).

Non, je veux juste te parler d'un tout petit outil que le développeur que je suis a créé pour répondre à son besoin, et qui est désormais partagé au cas où.

Les problèmes que j'avais

J'ai un arbre que j'ai créé avec divers outils après moult tâtonnements, il est beau, il est tout sauf fini, mais surtout il est gros (ou enveloppé, ou généreux, comme tu veux).

Entre autres problème, j'ai donc :

  • sa taille (675 individus pour l'instant, et ça va encore augmenter un peu)
  • des boucles qui font que c'est un graphe, mais plus vraiment un arbre, ce qui donne souvent des branches dupliquées sur les plateformes
  • un nombre de générations élevé (18 au maximum), qui va au delà du seuil accepté par la plupart des plateformes pour un rendu graphique
  • mes goûts en terme de design

Tout cela combiné fait que les générateurs d'arbre (en PDF) des différentes plateformes que j'ai pu tester, créaient des rendus qui ne me plaisaient pas.

Et surtout, j'en avais marre de devoir à chaque fois importer mon fichier GEDCOM (le format le plus commun dans le domaine).

L'outil que j'ai créé

Cet outil, je l'ai appelé de manière sans doute trop pompeuse Genesys. Il est libre. Il ne fait qu'un truc, prendre un fichier GEDCOM, et générer un arbre en PDF.

Techniquement, il :

  • est codé en kotlin
  • utilise la lib gedcom5-java de FamilySearch pour parser ce format ante-dilluvien
  • s'appuie sur GraphViz pour générer le PDF résultant

L'interface graphique est quasi inexistante (un sélecteur de fichier), il est sans doute un peu rugueux, mais il fait le job que je lui demandais.

Et concrètement, ça donne quoi ?

(parceque le screenshot, ça devrait être obligatoire)

Une vue de loin
Une vue de près

C'est sans doute perfectible, mais c'est mieux pour mon cas que ce que j'ai pu atteindre avec les autres outils. C'est le mieux que j'ai pu faire avec graphviz, sans avoir recours à un rendu PDF à la main.

En te souhaitant, Nal, une belle journée, et espérant que ça serve, soit directement, soit de base pour faire un outil que corresponde à ton besoin.

  • # pas sûr d'avoir compris

    Posté par  . Évalué à 4.

    ou alors j'ai peur de comprendre.

    Entre autres problème, j'ai donc :
    […]
    des boucles qui font que c'est un graphe, mais plus vraiment un arbre

    ça arrive vraiment souvent les boucles en généalogie ?
    (enfin je ne juge pas…)

    Les vrais naviguent en -42

    • [^] # Re: pas sûr d'avoir compris

      Posté par  (site web personnel) . Évalué à 3.

      Oui, c'est fréquent. Si tu remontes suffisamment dans ton arbre, tu es presque sûr de trouver de la consanguinité à un degré quelconque.

      • [^] # Re: pas sûr d'avoir compris

        Posté par  . Évalué à 4.

        Consanguinité ça fait pas une boucle ça fait un Graphe acyclique orienté. Une boucle c’est retour vers le futur !

        • [^] # Re: pas sûr d'avoir compris

          Posté par  (site web personnel) . Évalué à 2.

          Au temps pour moi : après, si l'on modélise cela comme un graphe non-orienté, ce sont effectivement des boucles, non ? (bon, le terme de boucle est pas hyper-technique)

          • [^] # Re: pas sûr d'avoir compris

            Posté par  . Évalué à 3.

            Certes mais il y a tellement une orientation "naturelle" là que ça m’étais pas venu à l’esprit :)

            J’ai dû vérifier le vocabulaire technique précis (après à ce niveau ça peut dépendre des auteurs). Sur Wikipédia en français l’article théorie des graphes donne "boucle = sommet avec une arête sur lui même", et ça donnerait plutôt "cycle" pour "chemin fermé".

            • [^] # Re: pas sûr d'avoir compris

              Posté par  (site web personnel) . Évalué à 4.

              Oui, je chipote, c'est effectivement un cas où il y a une orientation assez naturelle ;).
              En tout cas, ça a un impact direct sur le rendu qui peut en être fait.

              • soit on a droit à une exploration récursive qui duplique les branches
              • soit on a droit à un rendu chaotique pour un arbre généalogique (surtout dans le cas d'un gros arbre, et des cycles à l'échelle de plusieurs générations)

              Mon approche a donc été de rendre une des branches prioritaires, et de mettre un lien de redirection en pointillé depuis les éventuels autres endroits qui y font référence. Je trouve ça plus lisible, et parlant.

    • [^] # Re: pas sûr d'avoir compris

      Posté par  . Évalué à 7. Dernière modification le 08 mai 2023 à 12:53.

      Hors consanguinité, il n'est pas rare d'avoir 2 personnes de la famille A mariées à 2 autres personnes de la famille B.

      • [^] # Re: pas sûr d'avoir compris

        Posté par  (site web personnel) . Évalué à 6.

        ou le frère qui épouse la veuve de son frère ou d'un cousin… voire la grand mère qui épouse le petit fils de sa sœur qui est un gigolo notoire (plus rare). Ou alors quelqu'un qui épouse sa petite cousine parce que lui est né sur le tard et sa cousine a des parents jeunes…

        Moui, c'est compliqué ces histoires de famille :-)

    • [^] # Re: pas sûr d'avoir compris

      Posté par  (site web personnel) . Évalué à 10.

      C'est beau cette innocence 😉

      À l'échelle de 18 générations, chez des individus restés dans quelques zones géographiques restreintes constituée de petits villages proches (ce qui est le cas courant), je ne pense pas que ce soit atypique.

      D'autant que outre l'évident "mariage entre cousins", des fois, l'ancêtre commun remonte à 5-10 générations. Tu connais tous tes ancêtres sur une telle période de temps, toi, pour éviter de fricoter avec l'un(e) de leurs descendant(e)s ? (et quand bien même, prendrais-tu ce critère en compte ?)

      Du coup plus tu remontes, plus c'est probable (hors déplacements répétés de la famille ou ville de taille très importante). Et j'ajouterais même qu'il y a des facteurs sociaux qui aggravent la chose, de ce que j'ai pu constater. En effet :

      • les personnes d'une zone restreinte qui ont un certain statut social avaient plutôt tendance à avoir des partenaires de rang social proche, ce qui réduit d'autant le sous-ensemble de familles concernées
      • à l'époque comme aujourd'hui, les premières rencontres et la création des premiers cercles sociaux se produisent lors des repas de famille et à l'école. Très localement donc. Et parfois, certaines familles sont amies depuis longtemps sans forcément que la mémoire d'une origine commune ait perduré

      Voilà : ce n'est pas un jugement de ma part, c'est juste ce que j'ai pu constater en remontant (et je doute que ce soit un cas isolé).

    • [^] # Re: pas sûr d'avoir compris

      Posté par  . Évalué à 2.

      Toi, t'as pas vu Dark

  • # Un outil très intéressent

    Posté par  (site web personnel) . Évalué à 2.

    Ça me semble un outil très intéressant.

    Je suis malheureusement pas sûr de savoir comme l'utiliser. Ça serait possible de détailler son utilisation ou avoir un petit tuto ?

    • [^] # Re: Un outil très intéressent

      Posté par  (site web personnel) . Évalué à 3. Dernière modification le 08 mai 2023 à 13:41.

      Ça serait possible de détailler son utilisation ou avoir un petit tuto ?

      bin il est là le tuto :

      il ne fait qu'un truc, prendre un fichier GEDCOM, et générer un arbre en PDF.

      forcément, si tu n'as pas ta généalogie dans un format quelconque (ancestris, gramps, généatique en proprio, heredis en proprio…) exportable en GEDCOM, tu vas difficilement pouvoir l'utiliser :-)

    • [^] # Re: Un outil très intéressent

      Posté par  (site web personnel) . Évalué à 3.

      Je peux effectivement faire un petit tuto, plutôt avec des screenshots qu'une vidéo, par contre, parce-que ce serait pas très planet-friendly ni efficace pour ce genre d'outil.

      Je vais créer ça.

    • [^] # Re: Un outil très intéressent

      Posté par  (site web personnel) . Évalué à 4.

      Voici le petit guide d'installation et d'utilisation.

      • [^] # Re: Un outil très intéressent

        Posté par  (site web personnel) . Évalué à 4. Dernière modification le 08 mai 2023 à 15:30.

        Tu peux rajouter que le répertoire sample/ n'est pas inclus par défaut dans le .tar

        et qu'il est possible de télécharger le fichier d'exemple https://raw.githubusercontent.com/mrlem/genesys/main/sample/sample.ged pour valider le bon fonctionnement de genesys (tu as bien fait de préciser que le fichier PDF est généré dans le même répertoire que le fichier .ged choisi, j'ai tout de même un peu cherché au début :p)

      • [^] # Re: Un outil très intéressent

        Posté par  (site web personnel) . Évalué à 2.

        Merci, c'est sympa !

        J'ai quand même eu un bug en essayent de l'exécuter. :P

        Bug

        • [^] # Re: Un outil très intéressent

          Posté par  (site web personnel) . Évalué à 1.

          A tout hasard, il y a des espaces dans le chemin ?

          Pas que j'aille te dire "tu n'as qu'à pas en mettre", mais juste pour m'aiguiller pour le fix ^

        • [^] # Re: Un outil très intéressent

          Posté par  (site web personnel) . Évalué à 1.

          Il y avait bien un problème sur la gestion des espaces, c'est désormais corrigé dans la dernière version. N'hésite pas à me dire si tu rencontres encore des problèmes :)

          • [^] # Re: Un outil très intéressent

            Posté par  (site web personnel) . Évalué à 1.

            Ça ne me met plus le message d'erreur, mais ça ne fonctionne toujours pas.

            Mon fichier .ged provient de geneanet.org et même en faisant des exports partiels (j'ai un peu plus de 1000 entrées) et en repassent par Gramps ça plante.

            • [^] # Re: Un outil très intéressent

              Posté par  (site web personnel) . Évalué à 1.

              Hmmm, je doute que le nombre d'entrée soit le problème (le mien fait 675 personnes ce qui n'est pas si éloigné en ordre de grandeur).

              Tu as un message d'erreur dans la console ?

              Je n'ai pas bien compris la partie "et en repassant par Gramps ça plante", tu entends quoi par là exactement ?

  • # en svg ?!

    Posté par  (site web personnel) . Évalué à 3.

    Du coup, si je comprends bien, c'est possible de générer aussi un .svg ?

    • [^] # Re: en svg ?!

      Posté par  (site web personnel) . Évalué à 5.

      Alors ça ne devrait pas être trop dur à implémenter, vu que c'est supporté par GraphViz : c'est juste une question de passer le bon argument, du coup je me suis permis de créer un ticket sur le sujet, ainsi qu'un pour autoriser l'usage purement en ligne de commande.

      Merci pour cette bonne idée :)

    • [^] # Re: en svg ?!

      Posté par  (site web personnel) . Évalué à 3. Dernière modification le 08 mai 2023 à 17:46.

      C'est implémenté, et ça fonctionne plutôt très bien sur mon propre arbre. La dernière release inclue le changement.

      Dans l'immédiat, je n'ai ajouté ça qu'en ligne de commande (c'est documenté dans le README).

  • # Ancestris

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Le temps est morne !? je reviens à peine de la plage où j'ai lézardé par 26° sous le soleil :-)

    A part ça j'utilise Ancestris qui est également un logiciel libre sous licence GNU GPL v3, alors certes c'est du java mais ça a le gros avantage de pouvoir partager sa base avec la famille qui est sous windows.
    Il intègre également le format gedcom pour pouvoir notamment importer/exporter des bases de l'excellent site geneanet.

    https://www.funix.org mettez un manchot dans votre PC

    • [^] # Re: Ancestris

      Posté par  (site web personnel) . Évalué à 1.

      Tu as raison de le mentionner, il a l'air très bien également. J'avais brièvement importé mon GEDCOM dessus, mais sans trouver mon bonheur en terme de rapports (j'aurais peut-être pu aller voir comment ça marchait pour faire un rapport custo dans ce soft, mais je préférais un truc plus générique qui ne dépende pas du soft utilisé).

    • [^] # Re: Ancestris

      Posté par  (Mastodon) . Évalué à 4. Dernière modification le 09 mai 2023 à 10:29.

      Pareil ici, je ne vois pas trop où est la grisaille. Je dirais même que ce serait bien qu'il pleuve vu le faible taux de reserve d'eau.

      À partir de quel âge on commence à s'intéresser à la généalogie? J'ai toujours vu ça comme un truc de vieux qui attend sa propre mort et j'ai vu mon père s'y intéresser une fois arrivée à la retraite et j'ai l'impression que si un jour je commence à m'y intéresser ce sera déjà une première mort. Où c'est un truc comme la calvitie qui arrive plus vite chez certains que pour d'autres?

      • [^] # Re: Ancestris

        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 09 mai 2023 à 11:00.

        Pour ma part j'ai commencé à m'y intéresser enfant, ce qui m'a permis de collecter des informations précieuses, mais ce n'est que très récemment que je m'y suis mis plus sérieusement, notamment par le biais des ressources en ligne.

        Et sinon, je suis dans l'est de la Bretagne et, en ce moment, la pluie est à foison, les collecteurs d'eau sont pleins à raz bord, et tout est luxuriant. Une chance par les temps qui courent.

  • # Esthétique

    Posté par  (site web personnel) . Évalué à 2. Dernière modification le 09 mai 2023 à 11:33.

    Je n'ai pas précisé l'aspect esthétique, qui pour moi était important, mais je l'ai pensé en me fixant 2 contraintes :

    • que tous les individus d'une génération (pas au sens date, mais au sens rang relatif à la racine) se retrouvent au même "étage"
    • que pour un couple les parents restent groupés, parce-que ce lien me semble important à matérialiser, quitte à avoir des traits plus longs vers leur ascendance
  • # Choix de l'individu dont on veut représenter les ascendants ?

    Posté par  . Évalué à 2.

    Comment Genesys détermine sur quel individu du fichier gedcom le graphe des ascendants va être calculé ? Je m'attendais à pouvoir choisir mais ça ne semble pas possible…
    Le graphe obtenu n'est pas centré sur la souche tel que définit dans Gramps…
    Il faut absolument filtrer l'export GEDCOM au préalable ?

  • # GEDCOM...

    Posté par  . Évalué à 2.

    J'ai aussi eut mon moment sur la généalogie… il y a déjà plus de 8 ans…

    J'ai voulu commencer de créer mes propres outils (utilisant principalement phpgedview -> webtree, qui est pas mal d’ailleurs, je trouvais rapidement des limites…)

    Ma problématique étant, comment travailler a plusieurs sur un arbre commun (chaqu'un dans sa branche, mais des fois, y'a des liens entre les différentes branches…)…

    J'en suis venu a imaginer un projet basé sur des fichiers en XML, versionnés sur Git, utilisant les submodules pour partager des portions de branches entre différente personnes…

    Je continue de penser que l’approche était bonne, mais le nombre de projets que j’essaie de mener en parallèle m'a fait faire d'autre choix, et j'ai abandonner un peu la généalogie… au profit de la domotique, et de mon boulot (compositeur wayland, linux embarqué…)

    Je suis quand même surpris que presque rien n'a été développé sur le sujet depuis 8 ans… le format Gedcom me semble plus que dépasser, utiliser git en backend me semble tellement plus puissant et universelle… un peu comme le projet password-store pour la gestion des password…
    J'avais bien vu a l'époque des tentatives de Gedcom 6.0 en XML, mais il me semble que le projet n'avance pas vite… a cause du "6" sûrement (cf IPv6 …)…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.