Yoann Sculo

Technologie, généalogie, archives et libertés numériques

Un logiciel libre de gestion d'archives familiales et d'aide à la recherche

Le

Contexte

J’accumule depuis bientôt six ans de très nombreux documents physiques et numériques relatifs à ma généalogie familiale. À ce jour, mon dossier de généalogie représente près de 41 000 fichiers soit 310 Go. Les documents numériques archivés sont issus de très nombreuses sources publiques et privées. Une bonne partie de ces documents est le résultat d’un long travail personnel de numérisation. Pour m’y retrouver, je me suis fixé une méthodologie de classement que j’essaie de suivre rigoureusement. J’ai également mis en place un serveur MediaWiki personnel dédié à mes recherches généalogiques.

Hélas, je suis arrivé à un stade où mon cerveau ne peut plus appréhender la masse de documents et d’informations que je collecte. J’ai de plus en plus de difficultés à retrouver des documents et certaines informations malgré mon classement.

Et je n’en suis qu’au début ! Cela ne va faire qu’empirer si je ne trouve pas de solution. Je constate donc qu’il me faut un outil pour m’aider à manipuler, consulter et enrichir mes archives numériques familiales que je constitue année après année.

Malheureusement, je n’ai pas trouvé l’outil qui correspond à mes besoins. Je me suis donc lancé dans sa création. Cet article me permet à la fois de décrire le cahier des charges, le cadre de mon projet mais aussi de recueillir des remarques et retours d’autres personnes. Je suis donc particulièrement intéressé par toute remarque et commentaire, n’hésitez donc pas à me contacter !

Mes besoins

J’identifie cinq besoins

  1. Stockage et conservation des documents
  2. Consultation et enrichissement des documents et métadonnées
  3. Croisement et exploitation des documents
  4. Partage et transmission
  5. Logiciel libre

1. Stockage et conservation des documents

Tout d’abord, je veux pouvoir facilement et rapidement importer tout document numérique au sein d’un outil local, centralisé, sécurisé et intelligent.

Par documents numériques, j’entends des fichiers nés-numériques ou bien issus de la numérisation de documents analogiques. (Image, Vidéo, Audio, Texte, Pdf, Spreadsheet, Email, Archive, Présentation, Web, etc.)

Certains documents relèvent du fonds d’archive, d’autres de la collection et de la documentation. Ce qui m’importe ici est de pouvoir regrouper et conserver tous ces documents numériques au même endroit.

Local

Je ne veux pas déposer mes archives familiales sur un serveur tiers. Déjà pour des raisons de confidentialité mais également pour des raisons économiques et de fluidité. Des archives de taille trop importante représenteraient des coûts de stockage importants. La manipulation distante de certains gros fichiers serait par ailleurs assez lourde et fastidieuse.

Centralisé

Aujourd’hui je constate l’éparpillement de mes données via différents outils et types de stockages. J’ai notamment :

  • des fichiers sur mon serveur de stockage en réseau (NAS) ;
  • d’autres fichiers uniquement sur mon ordinateur ou encore dans ma boite email ;
  • certains fichiers dupliqués et adaptés à la consultation (format web) sur mon instance personnelle MediaWiki de généalogie ;
  • des documents et photos déposés sur Geneanet, Filae, etc.

Je perds un temps fou à dupliquer certains fichiers d’un endroit à un autre. J’ai donc besoin que toutes ces données soient centralisées à un unique endroit qui fait foi et qui me facilite la consultation et surtout les sauvegardes.

Je veux pouvoir non seulement accéder aux documents de consultation, en basse résolution, mais aussi ponctuellement à leur version en haute définition.

Sécurisé

Nous sommes maintenant hélas familiers des défauts réguliers de sécurisation de nos données personnelles, et je ne souhaite pas que mes archives puissent fuiter par la négligence de l’organisme en charge de leur hébergement. Au delà de mes propres documents, on me confie des fichiers qui ont pour vocation à rester dans un cercle familial. Je possède par ailleurs des documents et informations sur des personnes vivantes, qui sont d’autant plus sensibles.

Je souhaite donc réduire le risque de perte, d’altération (corruption ou modification non souhaitée lors de la consultation) voire de vol de mes fichiers. L’outil doit pouvoir détecter et corriger des anomalies et remonter des alertes.

Intelligent

Intelligent car cet outil doit pouvoir optimiser l’espace de stockage utilisé, en garantissant l’unicité de chaque fichier. En évitant de stocker plusieurs fois le même document sur mon espace de stockage, je m’affranchis de la logique de système de fichier de nos systèmes d’exploitation et mutualise l’espace.

Je possède de nombreux doublons dus au fait que certains fichiers et fonds numériques arrivés jusqu’à moi ont déjà circulé dans la famille. Je les retrouve alors parfois intégrés et mélangés aux archives de cousins.

Lorsque j’importe ces différents fonds, je veux pouvoir garder la trace de leur contenu mais sans pour autant conserver les nombreux exemplaires d’un même fichier.

L’outil doit par conséquent être intelligent, en ne stockant qu’un seul fichier mais permettant toujours de le « représenter » à plusieurs endroits.

2. Consultation et enrichissement des documents

Consultation

Je veux pouvoir facilement consulter mes documents et cela sans risquer de les altérer. Au sein de cet outil, je souhaite donc par exemple pouvoir regarder des images et des vidéos, lire du texte, écouter des extraits sonores, consulter des pdf, etc.

Enrichissement et métadonnées

Il est important pour moi que la source de mes documents soit conservée de façon rigoureuse et surtout standardisée. En collectant des documents depuis de très nombreuses sources, il est très difficile de s’en sortir sans une traçabilité minutieuse des documents.

Lorsque l’information est disponible, il s’agit de pouvoir répondre à ces questions :

  • Qui m’a transmis ce document ? Qui l’a numérisé ?
  • Sais-je d’où vient exactement le fichier ? Qui l’a produit ?
  • Sais-je où se trouve le document physique représenté ?
  • Qu’ai-je le droit de faire avec ce document ? Quelle est la licence associée ?

Je veux pouvoir apporter des compléments d’informations sur les fichiers importées, en apportant des éléments de contexte via des métadonnées. Mais je souhaite aussi pouvoir renommer les documents, les étiqueter, les catégoriser, identifier des personnes, des lieux, des sociétés, etc.

Je veux également pouvoir transcrire certains documents (textes, video et audio) pour pouvoir facilement y revenir et y effectuer ensuite des recherches.

3. Recherche, croisement et exploitation des documents

J’ai besoin d’une capacité de recherche avancée afin de pouvoir retrouver facilement et rapidement des documents au sein de mes archives familiales. Par ailleurs, une fois que tous les documents sont importés et enrichis, je veux pouvoir créer facilement des liens entre eux et croiser les informations. Je parle ici :

  • de créer des listes de documents, de personnes, de lieux, de sociétés, etc.
  • de rechercher et lister des documents par types, source, par mentions de lieux ou de personnes, etc.
  • d’afficher et réprésenter précisément des informations sur une carte.

4. Partage et transmission

Je veux que cet outil facilite et favorise le partage, en permettant une extraction partielle ou complète de la base de données. Et cela, tout en respectant la vie privée et les licences associées aux différents documents.

Je veux que cet outil soit pensé sur le temps long. Qu’une base de données soit toujours exploitable dans plusieurs dizaines d’années.

Je souhaite donc garantir la pérennité de ma base de données et m’assurer de sa capacité à être transmise facilement à mes descendants.

Un dernier aspect de la transmission me semble particulièrement important, c’est la simplicité de la solution. L’outil doit être facilement appréhendé, installable et manipulable par une personne non technique. La stack technique doit donc rester simple et peu gourmande. Cela me semble déterminant pour la pérennité de la solution.

5. Logiciel libre

Opter pour un logiciel libre coule de sens pour moi. En effet, je ne veux pas m’enfermer dans un écosystème propriétaire dont je dépendrai et duquel il me sera difficile de sortir, moi ou mes descendants.

Solution

Mon logiciel idéal se trouve à l’intersection

Il est important pour moi de tout relier à un seul endroit. Je cherche un outil à l’interface graphique moderne mais pour autant volontairement peu complexe techniquement parlant. Des solutions indépendantes existent, mais rien de centralisé. Sans rentrer dans le long comparatif que j’ai mené, je me suis intéressé aux solutions Tropy, Zotero, MediaWiki, Mayan EDMS, Paperless-ngx, Gramps et Ancestris.

Je n’ai pas trouvé d’autre solution que de développer ma propre application.

Ce projet est dans ma tête depuis quelques années et j’ai commencé son développement il y a presque un an. J’ai débuté avec une version développée en Rust et React grâce à Tauri qui permet de créer des applications portables (Windows, Linux, MacOS). Développer en Rust le soir après avoir couché mes enfants n’est pas toujours une partie de plaisir. J’ai pris en compte mes contraintes personnelles et ma capacité de cerveau le soir et je suis donc revenu à un langage plus plaisant pour moi. J’ai ainsi réécrit mon backend en Go et l’application est packagée grace à Wails, qui fait la même chose que Tauri mais en Go.

J’ai trouvé le nom de mon application et sa license, AGPL. J’attends maintenant d’avoir une toute première version livrable pour lancer officiellement le projet. D’ici là, je reste très intéressé par tout retour et commentaire sur les principes évoqués. Je serais ravi de pouvoir échanger avec des personnes intéressées par le sujet ! Donc n’hésitez pas à me contacter.

« Précédent