MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Import de métadonnées depuis le descriptif PostgreSQL #42

Closed WREATCHED closed 2 years ago

WREATCHED commented 2 years ago

Demande de la DDTM 40 :

Certaines métadonnées sont déjà formalisées dans notre base Postgis, en commentaire de table et d'attributs. Les commentaires d'attributs sont bien répercutés dans Plume, en revanche les commentaires de tables ne le sont pas. Pourrions-nous implémenter automatiquement (ou avec une action d'import ?) dans le descriptif des métadonnées de plume le contenu des commentaires de table déjà renseignés si pas de métadonnées Plume de formalisées ? Aussi, pourrions-nous implémenter dans le champ Libellé de Plume les métadonnées de libellé que l'on a déjà formalisé pour le plugin Asgard Menu -> "Nommer l'objet d'après son descriptif" - Expression rationnelle - [[]]. J'ai déjà implémenté quelques libellés sous cette forme "[Nom de la donnée]" et j'aurais bien aimé qu'il soient pris en compte... (si c'est possible, avec une condition du genre : si pas de libellé défini dans Plume prendre celui de Asgard Menu ?)

alhyss commented 2 years ago

Effectivement ! Il y a des métadonnées pré-existantes dans PostgreSQL et tout ce que Plume pourra faire pour faciliter leur intégration sera bienvenu. En particulier, il serait de bon ton que ce qui a été fait pour AsgardMenu soit récupérable par Plume (de même qu'il faudra qu'AsgardMenu sache récupérer ses libellés dans les métadonnées générées par Plume).

Je vais réfléchir à la meilleure manière de l'implémenter, mais je pense que le mécanisme de calcul des métadonnées côté serveur pourrait être mis à profit pour ce genre de chose, sous réserve d'ajouter une option 'empty' (calcul automatique si et seulement si la fiche de métadonnées est vierge), en plus de 'auto' et 'manual'. Cf. documentation technique et issue #23.

alhyss commented 2 years ago

Résultat des courses : je l'ai bel et bien mis en place en utilisant le mécanisme de calcul des métadonnées côté serveur.

La méthode de calcul est la même pour le titre (dct:title) que pour la description (dct:description). Elle récupère un fragment du descriptif PostgreSQL défini par une expression régulière à spécifier par le modèle, dans le nouveau champ compute_params de la table meta_categorie ou meta_template_categories. Les éventuelles métadonnées contenues entre les balises <METADATA> ne sont pas prises en compte. À défaut de paramètre "pattern" dans le JSON de compute_params (ou si l'expression régulière n'est pas valide), c'est tout le descriptif hors métadonnées qui est renvoyé.

En parallèle, il y a maintenant deux modes supplémentaires pour le calcul automatique à l'ouverture de la fiche de métadonnées, empty (pas de valeur pré-existante pour la métadonnée) et new (fiche de métadonnées vierge).

Cf. documentation technique pour un peu plus de précisions.

Je marque que c'est "résolu" parce que toutes les modifications nécessaires ont a priori été faites, mais la fonctionnalité ne sera effectivement disponible qu'après implémentation côté formulaire - cf. issue #23.