Open vbombaerts opened 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
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.
Si plusieures occurences, on garde la première valeur.
- 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
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.
Ca me convient.
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
Déployé en Test
Mapping DCAT à déployer
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....
Déployé en TEST.
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 ?