ecolabdata / ecospheres

Portail des données de la transition écologique et de la cohésion des territoires
https://ecologie.data.gouv.fr
2 stars 0 forks source link

Evaluer l'automatisation des préconisations ISO-DCAT #216

Closed streino closed 1 month ago

streino commented 2 months ago

Les tests avec DatARA montrent qu'il va être difficile pour les gestionnaires de catalogue de mettre en oeuvre les préconisations ISO-DCAT sans assistance.

Evaluer :

streino commented 2 months ago

Essais en cours :

Incoming :

streino commented 2 months ago

https://github.com/streino/core-geonetwork/compare/3.10.4...3.10.4-ecospheres-xsl-process

Ajoute une "suggestion" de transformation dans l'interface geonetwork : image

Résultat de la transformation directement visible dans l'interface (vue simplifiée) : image

Les suggestions peuvent être affichées en fonction de conditions définies en xsl, donc dépendantes du contenu de la fiche traitée, ce qui permet de n'afficher que les suggestions pertinentes.

Il est également possible d'appliquer les suggestions en batch via l'API (sur une liste d'ids ou sur un "bucket" préalablement défini via l'API). Je n'ai pas trouvé de moyen de faire ça via UI, mais voir s'il est facile d'ajouter un écran avec ce type fonctionnalité ?

streino commented 2 months ago

Je trouve aucun moyen d'uploader les modifications de config xslt via geonetwork. Ça n'est pas prévu et je n'ai pour l'instant trouvé aucune piste de patch qui n'implique pas de modifier le code de geonetwork.

Les approches ci-dessus requierent donc qu'il soit possible de déployer une nouvelle conf sur le serveur (ce qui d'ailleurs est la seule approche préconisée par GN dans sa doc).

streino commented 1 month ago

Alkante a un mécanisme de migration lors des montées de version qui tapent directement en base. Ils ont déjà aussi occasionnellement fait des modifications custom ponctuelles, selon les besoins clients.

Geonetwork stocke le XML des records tel quel, donc possible avec :

  1. Requête SQL pour sélectionner les items concernés.
  2. Script externe appliqué sur le XML pour faire les modifs.
  3. Update du résultat en base.

Plutôt qu'un script adhoc à l'étape 2 on pourrait envisager d'appliquer un XSL au même format que celui des suggestions Geonetwork (voir mes tests ci-dessus), ce qui permettrait de laisser le choix aux admins catalogues d'appliquer les transformations via les suggestions GN ou en tapant directement sur la base, selon leur fonctionnement habituel.

streino commented 1 month ago

Test de l'application d'un XSL de "suggestion" Geonetwork hors de Geonetwork : https://github.com/ecolabdata/ecospheres-scripts/tree/main/metadata. Les XSL de test proviennent de mes récentes expérimentations avec les suggestions GN.

Tout semble fonctionner correctement.

Le mécanisme de "trigger" conditionnelle ne concerne que l'affichage de la suggestion dans la UI, donc ça ne s'appliquera pas à notre cas. Cela dit, les transformations XSL ne s'appliqueront de manière générale que si le XML d'entrée contient le pattern à transformer, sinon ça ne matchera tout simplement pas. Donc je ne suis pas trop inquiet sur ce point ; il faudra juste faire des bons XSL :)

streino commented 1 month ago

Next step : spec "moulinette" avec Alkante.

streino commented 1 month ago

Specs en cours de finalisation. La presta commence aujourd'hui.