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

Edition / Remplacement de champs texte par des codelist #493

Closed stephyritz closed 4 years ago

stephyritz commented 4 years ago

Au cours des dernières mises à jour de Metawal, plusieurs champs, initialement en texte libre (dans des balise ont été remplacé par des codelist. La plupart du temps, les valeurs sont alors stockées dans des balises de type ancre et font référence à un thesaurus GN ou un registre. Il s'agit là d'une bonne amélioration pour la saisie et pour une homogénéisation du contenu des fiches.

Seulement, ces changements ont jusqu'à présent été implémentés dans l'interface sans modifiés le contenu de la DB. Par exemple, ceci signifie que, si j'encode aujourd'hui un nouveau format grâce à la codelist mise en place dans la release 3.8.1, il sera renseigné sous forme d'ancre. Mais, le même format, encodé il y a plus d'un an, est toujours sous forme de characterstring dans les autres fiches.

Ceci a pour conséquence que, au sein des fiches de Metawal, il y a du contenu hétérogène (cohabitation de "l'ancienne" manière de décrire et de "la nouvelle") ce qui peut poser problème, notamment pour les applications tierces qui utilisent des informations contenues dans les fiches (par ex. FME ou Geoportail). Ce phénomène est passé un peu inaperçu notamment parce que, lors de la création de fiche, nous avons pour habitude de dupliquer une fiche existantes.

Il faudrait donc, lorsque, à l'avenir nous faisons ce genre de modification, cela puisse s'accompagner d'un changement des valeurs en DB. A l'heure actuelle, voici les champs pour lesquels nous allons devoir planifier des requêtes en Db afin d'obtenir un contenu homogène pour l'ensemble de nos fiches :

Avant :

<gmd:title>
<gco:CharacterString>Mots-clés InfraSIG</gco:CharacterString>
</gmd:title>

Maintenant :

<gmd:title>
<gmx:Anchor xlink:href="http://metawal.wallonie.be/thesaurus/infrasig#">Mots-clés InfraSIG</gmx:Anchor>
</gmd:title>

Avant :

 <mrd:distributionFormat>
            <mrd:MD_Format>
               <mrd:formatSpecificationCitation>
                  <cit:CI_Citation>
                     <cit:title>
                        <gco:CharacterString>OGC:GeoPackage (.gpkg)</gco:CharacterString>
                     </cit:title>
                     <cit:date gco:nilReason="unknown"/>
                  </cit:CI_Citation>
               </mrd:formatSpecificationCitation>
            </mrd:MD_Format>
         </mrd:distributionFormat>

Maintenant :

    <mrd:distributionFormat>
            <mrd:MD_Format>
               <mrd:formatSpecificationCitation>
                  <cit:CI_Citation>
                     <cit:title>
                        <gcx:Anchor xlink:href="https://www.iana.org/assignments/media-types/application/geopackage+sqlite3">OGC GeoPackage (.gpkg)</gcx:Anchor>
                     </cit:title>
                  </cit:CI_Citation>
               </mrd:formatSpecificationCitation>
            </mrd:MD_Format>
         </mrd:distributionFormat>

Avant :

<mdb:referenceSystemInfo>
      <mrs:MD_ReferenceSystem>
         <mrs:referenceSystemIdentifier>
            <mcc:MD_Identifier>
               <mcc:code>
                  <gco:CharacterString>http://www.opengis.net/def/crs/EPSG/0/5710</gco:CharacterString>
               </mcc:code>
            </mcc:MD_Identifier>
         </mrs:referenceSystemIdentifier>
         <mrs:referenceSystemType>
            <mrs:MD_ReferenceSystemTypeCode codeList="http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ReferenceSystemTypeCode"
                                            codeListValue="vertical"/>
         </mrs:referenceSystemType>
      </mrs:MD_ReferenceSystem>
  </mdb:referenceSystemInfo>

Maintenant :

   <mdb:referenceSystemInfo>
      <mrs:MD_ReferenceSystem>
         <mrs:referenceSystemIdentifier>
            <mcc:MD_Identifier>
               <mcc:code>
                  <gcx:Anchor xlink:href="http://www.opengis.net/def/crs/EPSG/0/3812">EPSG:3812</gcx:Anchor>
               </mcc:code>
               <mcc:description>
                  <gco:CharacterString>ETRS89 / Belgian Lambert 2008 (EPSG:3812)</gco:CharacterString>
               </mcc:description>
            </mcc:MD_Identifier>
         </mrs:referenceSystemIdentifier>
         <mrs:referenceSystemType>
            <mrs:MD_ReferenceSystemTypeCode codeList="http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ReferenceSystemTypeCode"
                                            codeListValue="projected"/>
         </mrs:referenceSystemType>
      </mrs:MD_ReferenceSystem>
  </mdb:referenceSystemInfo>

Ces modifications en DB devraient normalement se faire en même temps que celles dans les query FME et Geoportail. Mais, afin de pouvoir tout de même avancer de manière autonome sur le sujet, ne pourrions-nous pas imaginer de créer un csw-geoportail associé à un xslt permettant de servir les fiches toujours sous le même format (par ex. avec valeurs en characterstring), jusqu'à ce que eux soient prêts (à ce moment-là on modifie le xslt ou on le supprime). Globalement, cette manière de faire nous permettrait chaque fois de prendre un petit temps d'avance et éventuellement de "réajuster le tir" sans passer par une phase "lourde" de déploiement d'une nouvelle version de l'application.

Qu'en pensez-vous ?

fxprunayre commented 4 years ago

Proposition: Ajour de composant pour aider à la saisie en vue avancée

image

image

fxprunayre commented 4 years ago

Pour les formats on reste sur le thésaurus utilisé pour définir l'anchor + text ? image

Pour thésaurus infraSIG on laisse en attente tant qu'on a pas de registre ?

stephyritz commented 4 years ago

Pour les formats on reste sur le thésaurus utilisé pour définir l'anchor + text ?

Oui.

Pour thésaurus infraSIG on laisse en attente tant qu'on a pas de registre ?

Oui, on reste sur du gco:characterstring pour le moment.

Attention, je crois que le contenu actuel est hétérogène (tout du moins dans la manière de déclarer le nom du thesaurus infraSIG (parfois anchor parfois charstring). Il est donc tout de même nécessaire de jouer soit une reuqête DB soit une transfo xsl pour homogénéiser les valeurs sur ce point.

stephyritz commented 4 years ago

En test :

fxprunayre commented 4 years ago
  • NOK pour la saisie de la conformité INSPIRE

Pourquoi NOK ? Sur quelle fiche ? eg. http://metawal4.test.wallonie.be/geonetwork/srv/fre/catalog.edit#/metadata/1754?redirectUrl=catalog.edit&tab=dataQualityInfo

on a bien les boutons pour les éléments non renseignés

image

Les boutons ne sont pas proposés si la conformité est renseignée.

fxprunayre commented 4 years ago
  • NOK pour uniformisation des valeurs dans les xml

Je pense qu'il faut qu'on distingue les aspects fonctionnalités de l'interface et actions sur l'encodage des fiches dans des tickets différents ? Leur déploiement ne se fera sans doute jamais en même temps.

Pour les projections on a aussi le ticket #494 du coup on doublone. Le process est: https://github.com/SPW-DIG/iso19115-3.2018/blob/8526fad87e428c36463b7b0b8ebb86826e4438bd/src/main/plugin/iso19115-3.2018/process/mw-epsg-harmonisation.xsl

Donc ensuite, il nous manque un process qui s'occupe de réencoder les formats avec une Anchor. Correct ?

stephyritz commented 4 years ago
  • NOK pour la saisie de la conformité INSPIRE

Pourquoi NOK ? Sur quelle fiche ? eg. http://metawal4.test.wallonie.be/geonetwork/srv/fre/catalog.edit#/metadata/1754?redirectUrl=catalog.edit&tab=dataQualityInfo

on a bien les boutons pour les éléments non renseignés

image

Les boutons ne sont pas proposés si la conformité est renseignée.

L'affichage des boutons ne semble pas être automatique. Sur cette fiche par exemple (http://metawal4.test.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/06adcd09-6e69-411c-9cdc-5bfb668c475f), quand je vais en édition/vue complète/qualité, ils n’apparaissent pas. Puis si je rajoute des "informations sur la qualité des données" et que je change d'onglet puis reviens sur l'onglet qualité, alors les boutons apparaissent.

stephyritz commented 4 years ago
  • NOK pour uniformisation des valeurs dans les xml

Je pense qu'il faut qu'on distingue les aspects fonctionnalités de l'interface et actions sur l'encodage des fiches dans des tickets différents ? Leur déploiement ne se fera sans doute jamais en même temps.

Pour les projections on a aussi le ticket #494 du coup on doublone. Le process est: https://github.com/SPW-DIG/iso19115-3.2018/blob/8526fad87e428c36463b7b0b8ebb86826e4438bd/src/main/plugin/iso19115-3.2018/process/mw-epsg-harmonisation.xsl

Donc ensuite, il nous manque un process qui s'occupe de réencoder les formats avec une Anchor. Correct ?

Oui je suis d'accord de séparer les tickets et c'est ce que j'avais fait initialement. Ce ticket était dédié aux changements en DB sur le contenu des fiches d'ailleurs. Et le 494 lié à l'interface de visualisation des données.

Oui, il reste les formats à ré-encoder avec une ancre. Et sur ces aspects de ré-encodage, il ne faudrait pas oublier de prévoir l'effet "reverse" dans le xsl qui permettrait au géoportail et à FME de consommer un CSW sous la même forme qu'avant. Il faudrait aussi que nous pensions à vérifier que les formats déclaré avec une ancre soient également conforme INSPIRE.

davinciagf commented 4 years ago

Attention, pour pouvoir disposer des boutons, il est n'écessaire d'avoir déjà référencé le titre de la spécification INSPIRE du résultats de conformité.

stephyritz commented 4 years ago

Attention, pour pouvoir disposer des boutons, il est n'écessaire d'avoir déjà référencé le titre de la spécification INSPIRE du résultats de conformité.

??

Non justement le but de ces boutons étaient, en plus de spécifier si conforme ou non ou non testé, de référencer les textes règlementaire en un clic. De plus, le fait que les boutons apparaissent ou disparaissent en fonction d'un refresh ou changement d'onglet est tout de même anormal.

fxprunayre commented 4 years ago

Non justement le but de ces boutons étaient, en plus de spécifier si conforme ou non ou non testé, de référencer les textes règlementaire en un clic.

Si dans ton modèle tu as juste la section qualité (sans rapport), alors

De plus, le fait que les boutons apparaissent ou disparaissent en fonction d'un refresh ou changement d'onglet est tout de même anormal.

Quand on supprime un élément, y'a refresh du formulaire - du coup mise à jour. Si le modèle contient la section qualité c'est bon. Par contre si on fait ajout d'une section qualité (il n'y a pas refresh de la totalité du formulaire), donc en effet, il faut faire un refresh. On a pas bien mieux pour le moment.

Est-ce que ça convient quand même?

stephyritz commented 4 years ago

Est-ce que ça convient quand même?

Oui, bien sûr. C'est clairement une amélioration.

stephyritz commented 4 years ago

NOK sur le contenu en DB (les systèmes de proj et les formats sont toujours renseignés sous la forme de characterstring) (Aussi en test, cela m'avait échappé)

OK pour le bouton de saisie rapide d'un système de proj.

davinciagf commented 4 years ago

Procédure à jouer et inclure dans le déploiement : https://github.com/SPW-DIG/iso19115-3.2018/blob/8526fad87e428c36463b7b0b8ebb86826e4438bd/src/main/plugin/iso19115-3.2018/process/mw-epsg-harmonisation.xsl