Introduction

Plume est un outil pour la documentation des données stockées sous PostgreSQL. Via son interface sous QGIS, il permet aux producteurs et administrateurs de données de saisir des métadonnées sur les tables et vues PostgreSQL. Tout utilisateur peut ensuite consulter en quelques clics les fiches de métadonnées associées aux couches QGIS qui l'intéressent.

Il s'agit d'un outil souple, qui peut être fortement personnalisé pour s'adapter aux spécificités des services et mieux répondre aux besoins de chaque utilisateur.

La démarche

Plume est né des réflexions du groupe de travail PostGIS des ministères en charge de l'écologie et de l'agriculture.

Il apporte une réponse au besoin exprimé par les services de disposer d'un outil pour associer à leurs patrimoines de données PostgreSQL des métadonnées détaillées accessibles par tous les utilisateurs, notamment ceux qui exploitent les données dans QGIS.

Les fonctionnalités de l'outil ont été définies par les services membres du GT PostGIS, dans le cadre du « sous-groupe Métadonnées ».

Complément

Accès aux comptes rendus du sous-groupe Métadonnées.

Les grands principes

Plume privilégie la robustesse et l'interopérabilité : les métadonnées sont stockées dans les descriptifs[1] des tables et vues PostgreSQL (tous les objets de type « relation » sont pris en charge), sous la forme d'un graphe RDF encodé en JSON-LD.

L'information est représentée grâce au vocabulaire « Data Catalog Vocabulary » (DCAT v2 et DCAT v3), qui fait référence dans le monde de l'open data, et à sa déclinaison par les profils DCAT-AP v2.1 et GeoDCAT-AP v2.0 établis par la commission européenne pour la mise en œuvre de DCAT par les catalogues de données européens.

Les JSON-LD sont placés entre deux balises <METADATA> et </METADATA>. Il est parfaitement possible de continuer à saisir des informations hors de ces balises. Les JSON-LD ne sont pas supposés être lus ou édités directement, mais par l'intermédiaire d'une interface de saisie et consultation qui constitue le cœur de Plume.

Le stockage dans le descriptif de l'objet a l'intérêt de créer un lien solide entre la table et ses métadonnées, reposant uniquement sur un mécanisme natif de PostgreSQL, qui ne risque pas d'être perdu si la table change de nom, en cas de sauvegarde/restauration, etc. Il implique par contre que la suppression d'une table provoquera la perte de ses métadonnées en plus de celle des données si aucune sauvegarde de l'ensemble n'avait été réalisée.

Plume ne modifie pas le comportement natif de PostgreSQL s'agissant des droits sur le descriptif PostgreSQL, et donc sur les métadonnées qu'il contient :

  • Toute personne accédant au serveur peut consulter toutes les métadonnées.

  • Toute personne dont le rôle de connexion est membre, y compris par héritage, du rôle propriétaire d'une table ou vue peut éditer ses métadonnées.

Plume ne contraint en aucune manière à documenter toutes les tables. Il met à disposition de l'utilisateur plusieurs modèles de fiches de métadonnées utilisables en lecture et en édition pour ne faire apparaître/renseigner que les informations pertinentes. L'administrateur du serveur PostgreSQL peut également ajouter des modèles supplémentaires pour les utilisateurs de son organisation. Une autre spécificité de Plume est de ne pas montrer les champs vides lors de la consultation, afin d'alléger les fiches de métadonnées.

Considérant que les données peuvent d'ores-et-déjà avoir été documentées sous diverses formes et dans différents lieux, Plume facilite l'import de ces métadonnées préexistantes en permettant par exemple de charger des métadonnées depuis des catalogues INSPIRE, ou encore de réintégrer dans les métadonnées des informations (libellé, description) qui auraient pu être antérieurement saisies dans le descriptif de la table ou vue.

Mise en place de Plume dans un service

En pratique, Plume prend la forme de deux modules applicatifs :

  • Un plugin QGIS à installer sur les postes de tous les utilisateurs. Il sert à la consultation et à l'édition des métadonnées.

  • Une extension PostgreSQL, nommée PlumePg, que l'administrateur du serveur peut choisir d'activer sur ses bases PostgreSQL s'il juge que les fonctionnalités supplémentaires qu'elle apporte sont pertinentes dans le contexte de son organisation.

Plume stockant ses métadonnées dans les descriptifs des objets (fonctionnalité native de PostgreSQL), aucune opération n'est nécessaire sur le serveur PostgreSQL pour permettre la documentation des données, il suffit que les utilisateurs diposent du plugin QGIS.

L'usage de l'extension PlumePg est entièrement optionnel. Elle permet à l'administrateur de données de personnaliser ses modèles de fiches de métadonnées et propose un mécanisme de suivi automatisé des dates de modification des données.