SPW-DIG / metawal-core-geonetwork

Metawal - Catalogue pour l'information géographique de Wallonie
http://metawal.wallonie.be
GNU General Public License v2.0
3 stars 1 forks source link

MobilityDCAT-AP - fréquence de mise à jour #896

Open vbombaerts opened 4 months ago

vbombaerts commented 4 months ago

Pour l'encodage de la fréquence de mise à jour, d'autres valeurs que celles de l'ISO peuvent être encodées. C'est intéressant notamment pour des fréquences plus hautes, par exemple mise à jour toutes les 15 minutes...

"Obligation d'utiliser la liste de valeurs http://publications.europa.eu/resource/authority/frequency et si pas suffisante https://w3id.org/mobilitydcat-ap/update-frequency"

Comment peut-on travailler pour intégrer ces listes de valeurs supplémentaires ?

Une proposition est de de travailler en duo avec l'élément maintenanceAndUpdateFrequency (et la liste de valeur ISO associée) et avec l'élément userDefinedMaintenance (pour les valeurs qui ne sont pas dans la liste ISO). De cette façon on couvre toutes les valeurs possibles des listes imposées par MobilityDCAT.

D'autres idées ?

fxprunayre commented 4 months ago

En ISO, on peut en effet encoder une autre fréquence de mise à jour si la codeliste n'est pas suffisante. eg. 15min

               <mmi:userDefinedMaintenanceFrequency>
                  <gco:TM_PeriodDuration>P0Y0M0DT0H15M0S</gco:TM_PeriodDuration>
               </mmi:userDefinedMaintenanceFrequency>

Il semblerait que dct:accrualPeriodicity/dct:Frequency soit forcément une URI piochant une valeur dans un vocabulaire. Actuellement, si on a une valeur ISO correspondant à une valeur Dublin core (cf. https://github.com/SPW-DIG/metawal-core-geonetwork/blob/dcat/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/formatter/dcat/dcat-core-dataset.xsl#L107-L123) alors on utilise le vocabulaire de la Commission, sinon, on utilise une URI ISO.

Donc on peut a minima ajouter un mapping vers le vocabulaire mobility si on a userDefinedMaintenanceFrequency (cf. https://github.com/geonetwork/core-geonetwork/pull/7600/commits/53aeffc068eed243be50e0a267e7350e4a82a6e1)

eg.

        <dct:accrualPeriodicity>
            <dct:Frequency rdf:about="https://w3id.org/mobilitydcat-ap/update-frequency/15min"/>
        </dct:accrualPeriodicity>

Ensuite, on peut avoir un problème de cardinalité. En général accrualPeriodicity est 0..1 ou 1..1. En ISO, on peut potentiellement en avoir plusieurs. Donc soit on considère que la saisie en ISO sera d'une seule fréquence, soit dans le mapping on ne prend qu'une seule valeur ? @vbombaerts

vbombaerts commented 3 months ago

En ISO, on peut avoir plusieurs fréquences si elles portent sur des scopes différents. (ce qui pourrait être le cas si on met à jour les géométries à une certaine fréquence et les infos attributaires à une autre fréquence) A ce moment, on pourrait définir plusieurs blocs de MaintenanceInformation.

Je pense qu'on peut considérer que l'info du premier bloc est celle à transposer en DCAT. Je ne pense pas avoir de cas dans Metawal où on a défini plusieurs fréquences.

Une fois le mapping établi, est-il possible que Metawal présente une liste des valeurs possibles au moment de l'encodage plutôt que de devoir encoder manuellement P0Y0M0DT0H15M0S ? Ca permet de contraindre les valeurs possibles à celles existantes dans les vocabulaires ISO et mobilityDCAT-AP.

fxprunayre commented 3 months ago
GeryNi commented 3 months ago

Si plusieures occurences, on garde la première valeur.

fxprunayre commented 2 months ago
  • Etendre la codelist ISO avec les valeurs mobility DCAT

@vbombaerts pour avis

Ca pourrait donner quelquechose comme ça - pour garder la distinction codelist de l'ISO et celle de DCAT mobility

image

On pourrait aussi n'afficher cette codelist que si la fiche à un thème mobilité, ...

Elle est bizarre cette liste quand même ? Pourquoi y'a pas 5h ? "3 months" vs "2h" ... "2 hours" ? C'est peut être en lien avec les specs?

Ensuite faut adapter le mapping DCAT.

vbombaerts commented 2 months ago

Ca me convient.

vbombaerts commented 2 months ago

Est-ce qu'il ne faudrait pas lier les valeurs MobilityDCAT aux ancres MobilityDCAT, comme on le fait pour des mots-clés ?

         <mri:resourceMaintenance>
            <mmi:MD_MaintenanceInformation>
               <mmi:maintenanceAndUpdateFrequency>
                  <mmi:MD_MaintenanceFrequencyCode codeList="http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#MD_MaintenanceFrequencyCode"
                                                   codeListValue="15min"/>
               </mmi:maintenanceAndUpdateFrequency>
            </mmi:MD_MaintenanceInformation>
         </mri:resourceMaintenance>
<dct:accrualPeriodicity>
<dct:Frequency rdf:about="http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#15min"/>
</dct:accrualPeriodicity>

https://publications.europa.eu/resource/authority/frequency et https://w3id.org/mobilitydcat-ap/update-frequency

GeryNi commented 1 month ago

Déployé en Test

fxprunayre commented 1 month ago

Mapping DCAT à déployer

cf. https://github.com/geonetwork/core-geonetwork/pull/7600/commits/12ffbedcac3189b675cc1d58ef02f5cbbc1da8d3

Donc:

Après j'imagine que "https://w3id.org/mobilitydcat-ap/update-frequency/3h" n'est pas valide DCAT-AP - donc on aura toujours un peu des problèmes sur un champ 0..1 ou 1..1 qui doit utiliser des codeslistes différentes....

GeryNi commented 1 month ago

Déployé en TEST.