datagouv / data.gouv.fr

Ce dépôt rassemble les tickets techniques qui portent sur data.gouv.fr.
https://www.data.gouv.fr
76 stars 14 forks source link

Support consommation DCAT depuis un appel CSW de Geonetwork #913

Closed ThomasG77 closed 10 months ago

ThomasG77 commented 2 years ago

L’amélioration que vous avez en tête

Le endpoint Geonetwork DCAT directement consommable tel que documenté sur https://github.com/etalab/doc.data.gouv.fr/commit/f8a0b32f19f46c22c30add1bfa5cda248861531e#r75959289 n'est plus disponible à partir de la version 4.0 de Geonetwork car il est possible d'avoir une sortie sérialisé DCAT via le end-point CSW (https://github.com/geonetwork/core-geonetwork/wiki/DCAT-enhancements)

Il faut donc au choix rétablir le end-point tel qu'il était en faisant une PR dans Geonetwork mais c'est peu probable sinon il n'aurait pas été déprécié soit il faut voir comment adapter notre consommation du DCAT via l'appel depuis le endpoint CSW.

En dehors des aspects techniques, il faut voir la charge que cela implique pour nous ou le BRGM qui envisageait à un moment de passer par Geonetwork. Cela peut impliquer aussi l'équipe Geonetwork selon si des modifications doivent être faites sur la base de code du projet lui-même.

Constatations techniques préliminaires pour investiguer

Pour avoir une idée du retour de l'appel CSW comparativement à celui existant (attention, ici on tape sur un serveur avec une version 4.2.1 de Geonetwork

echo '<?xml version="1.0" encoding="UTF-8"?><csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" service="CSW" version="2.0.2" resultType="results" outputSchema="http://www.w3.org/ns/dcat#"><csw:Query typeNames="gmd:MD_Metadata"><csw:ElementSetName>full</csw:ElementSetName><csw:Constraint version="1.1.0"><Filter xmlns="http://www.opengis.net/ogc"><PropertyIsEqualTo><PropertyName>documentStandard</PropertyName><Literal>iso19139</Literal></PropertyIsEqualTo></Filter></csw:Constraint></csw:Query></csw:GetRecords>' >| demo-csw-dcat.xml
curl -H "Content-Type: application/xml" --data-binary @demo-csw-dcat.xml https://apps.titellus.net/geonetwork/srv/eng/csw

J'ai fait un test sur le catalogue de l'OREME qui sont en version 3.10 actuellement (ce qui me permettrait de comparer la sortie dcat actuelle encore supportée et celle via le endpoint CSW

Sortie DCAT "legacy" via https://sig.oreme.org/geonetwork/srv/eng/rdf.search

VS sortie "nouvelle" via le endpoint CSW

curl -H "Content-Type: application/xml" --data-binary @demo-csw-dcat.xml https://sig.oreme.org/geonetwork/srv/eng/csw

Problème dans ce 2nd cas: pas de records retournés. Nous avons enlevé le filtre iso19139 avec pour avoir des records

echo '<?xml version="1.0" encoding="UTF-8"?><csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:gmd="http://www.isotc211.org/2005/gmd" service="CSW" version="2.0.2" resultType="results" outputSchema="http://www.w3.org/ns/dcat#"><csw:Query typeNames="gmd:MD_Metadata"><csw:ElementSetName>full</csw:ElementSetName></csw:Query></csw:GetRecords>' >| demo-csw-dcat-no-filter-iso19139.xml
curl -H "Content-Type: application/xml" --data-binary @demo-csw-dcat-no-filter-iso19139.xml https://sig.oreme.org/geonetwork/srv/eng/csw
jeanpommier commented 1 year ago

Pour le moissonnage csw-dcat, dans la majorité des cas, les mentions de licences n'étaient pas reconnues. Dans GeoNetwork, la partie qui va gérer la conversion (CSW) ISO->DCAT pour les contraintes d'utilisation se trouve là : https://github.com/geonetwork/core-geonetwork/blob/main/schemas/iso19139/src/main/plugin/iso19139/layout/tpl-rdf.xsl#L430-L448

Le contenu des balises gmd:MD_LegalConstraints/gmd:otherConstraints est copié en dct:license quel que soit sa parenté (useConstraints, accessConstraints), ce qui passe mal avec udata (et à raison je dirais).

J'ai essayé d'améliorer la façon de gérer ces blocs. Il y a une PR en cours sur Geonetwork : https://github.com/geonetwork/core-geonetwork/pull/7176

maudetes commented 10 months ago

Bonjour,

Je reviens avec quelques nouvelles sur le sujet du moissonnage des GeoNetwork v4 par data.gouv.fr.

CSW-DCAT en production

Tout d'abord, suite aux tests concluants réalisés, la pull request pour le moissonnage de GeoNetwork v4 via CSW avec schéma DCAT a été mergée côté data.gouv.fr et déployée en production ! :rocket:

Certaines questions de mapping en DCAT des métadonnées ne sont pas forcément résolues, et des itérations sont bien évidemment à prévoir par la suite, mais cette première version est fonctionnelle. La version GeoNetwork minimale supportée est la 4.2.3.

Il est donc maintenant possible de moissonner les portails GeoNetwork 4 sur data.gouv.fr via CSW. Vous êtes les bienvenus pour créer vos moissonneurs (sur demo.data.gouv.fr d'abord pour test) en choisissant le moissonneur CSW-DCAT. Une documentation spécifique a été rajoutée sur https://guides.data.gouv.fr/publier-des-donnees/guide-data.gouv.fr/moissonnage/les-differents-types-de-moissonneurs#geonetwork.

Autres considérations

Le moissonnage via OGC API Records est toujours en phase de test, avec certaines questions sur les identifiants ou la pagination pas encore résolues. Par ailleurs, des études ont été réalisées pour le support d'autres mapping DCAT côté GeoNetwork (ex: https://github.com/geonetwork/core-geonetwork/pull/7212), mais pour l'instant seul le schéma http://www.w3.org/ns/dcat# est disponible au moissonnage.

Je vais donc clôturer ce ticket, mais au besoin, des tickets dédiés seront créés pour les itérations futures, pour plus de lisibilité.