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

Structure du xml / Séparation des conditions d'accès et d'utilisation dans des balises distinctes #503

Closed stephyritz closed 4 years ago

stephyritz commented 4 years ago

Séparer les CGA/CPA/CGU/CPU et les mettre dans des balises "otherconstraints" dédiées. Enmode édition, ces rubriques seront associés avec une codelist. L'url renseignée dans l'ancre fera référence au document pdf décrivant les CGA/CPA/CGU/CPU.

Action à réaliser après https://github.com/SPW-DIG/metawal-core-geonetwork/issues/502 et en bonne coordination avec Samuel et Dominique pour les interactions avec le Géoportail et les outils FME.

Cf. https://github.com/SPW-DIG/metawal-core-geonetwork/issues/502

fxprunayre commented 4 years ago

Reprendre la transfo https://github.com/SPW-DIG/iso19115-3.2018/blob/3.10.x/src/main/plugin/iso19115-3.2018/process/mw-constraints-cleanup.xsl qui fait une partie de l'opération.

fxprunayre commented 4 years ago
  • État des lieux sur l'ensemble
WITH ns AS (
select ARRAY[ARRAY['xlink', 'http://www.w3.org/1999/xlink'],
       ARRAY['mdb', 'http://standards.iso.org/iso/19115/-3/mdb/2.0'],
       ARRAY['cit', 'http://standards.iso.org/iso/19115/-3/cit/2.0'],
       ARRAY['mri', 'http://standards.iso.org/iso/19115/-3/mri/1.0'],
       ARRAY['mco', 'http://standards.iso.org/iso/19115/-3/mco/1.0'],
       ARRAY['xsi', 'http://www.w3.org/2001/XMLSchema-instance'],
       ARRAY['gco', 'http://standards.iso.org/iso/19115/-3/gco/1.0']] AS n
)

SELECT distinct(unnest(xpath('//mdb:identificationInfo/*/mri:citation/*/cit:title/*/text()',
 XMLPARSE(DOCUMENT data), n)))::text  AS title,
 unnest(xpath('count(//mri:keyword[gco:CharacterString = ''Reporting INSPIRE'']) > 0',
 XMLPARSE(DOCUMENT data), n))::text  AS isInspire, isTemplate,
 unnest(xpath('//mco:uselimitation/*/text()',
 XMLPARSE(DOCUMENT data), n))::text  AS uselimitation,
 unnest(xpath('//mco:otherConstraints/*/text()',
 XMLPARSE(DOCUMENT data), n))::text  AS otherConstraints,
 unnest(xpath('count(//mco:otherConstraints/*[contains(text(), ''DataSPW-CPA-TypeA1'')]) > 0',
 XMLPARSE(DOCUMENT data), n))::text  AS CPATypeA1,
 unnest(xpath('count(//mco:otherConstraints/*[contains(text(), ''DataSPW-CPA-TypeD1'')]) > 0',
 XMLPARSE(DOCUMENT data), n))::text  AS CPATypeD1,
 unnest(xpath('count(//mco:otherConstraints/*[contains(text(), ''DataSPW-CPU-TypeC'')]) > 0',
 XMLPARSE(DOCUMENT data), n))::text  AS CPUTypeC,
 unnest(xpath('count(//mco:otherConstraints/*[contains(text(), ''DataSPW-CPU-TypeA'')]) > 0',
 XMLPARSE(DOCUMENT data), n))::text  AS CPUTypeA,
 unnest(xpath('count(//mri:resourceConstraints)',
 XMLPARSE(DOCUMENT data), n))::text  AS nbRC
FROM metadata, ns
WHERE data LIKE '%%' AND isHarvested = 'n'
ORDER BY isInspire, title;

@stephyritz tu me dis si y'a besoin de plus d'information ? Il faudrait arriver à sortir les cas particuliers à gérer et voir si on peut les gérer en automatique ou manuellement.

fxprunayre commented 4 years ago
  • Appliquer aux fiches INSPIRE
  • CSW inverse

Test:


         <mri:resourceConstraints>
            <mco:MD_LegalConstraints>
               <mco:useLimitation>
                  <gco:CharacterString>Conditions d'accès et d'utilisation spécifiques</gco:CharacterString>
               </mco:useLimitation>
               <mco:useConstraints>
                  <mco:MD_RestrictionCode codeList="http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_RestrictionCode"
                                          codeListValue="otherRestrictions"/>
               </mco:useConstraints>
               <mco:otherConstraints>
                  <gco:CharacterString>ACCÈS : Les conditions générales d'accès s’appliquent (https://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CGA.pdf) mais sont restreintes par les conditions particulières de type D1 (https://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CPA-TypeD1.pdf).
                        UTILISATION : Les conditions générales d'utilisation s'appliquent (https://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CGU.pdf).</gco:CharacterString>
               </mco:otherConstraints>
            </mco:MD_LegalConstraints>

http://localhost:8080/geonetwork/srv/fre/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&ID=435c454c-0d4b-41cf-a136-a1aba134d9ac&outputSchema=mw&ElementSetName=full

<?xml version="1.0"?>
<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="mw">
  <csw:Query typeNames="gmd:MD_Metadata">       
  <csw:ElementSetName>full</csw:ElementSetName>
    <csw:Constraint version="1.1.0">
      <csw:CqlText>_uuid = '435c454c-0d4b-41cf-a136-a1aba134d9ac'</csw:CqlText>
    </csw:Constraint>
  </csw:Query>
</csw:GetRecords>

A déployer et tester. @davinciagf

stephyritz commented 4 years ago

Ok, je test la requête dès que j'ai de nouveau mes permissions sur la DB. J'imagine que le résultat correspond au document google sheet que tu m'as partagé ? Je vais regarder cela de près. Le timing est assez bon, car nous avons eu l'accord de la direction des routes pour passer toute une série de donnée en CGA/CGU. Cela fera l'objet d'un batchediting cette semaine.

stephyritz commented 4 years ago

Et aussi, tant qu'à faire, dans l'anchor, Dominique me demandait si cela était possible (conforme) de rajouter un paramètre pour l'anchre indiquant s'il s'agissait de contraintes liées à l'accès ou à l'utilisation. J'ai alors pensé à ce genre d'arguments qui semblent être conformes du point de vue du validateur INSPIRE :

<gmx:Anchor xlink:title="data access" xlink:href"http://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CGA.pdf">Conditions générales d’accès.</gmx:Anchor>

<gmx:Anchor xlink:title="data access" xlink:href="http://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CPA-TypeD1.pdf">Conditions particulières d’accès de type D1.</gmx:Anchor>

<gmx:Anchor xlink:title="data use" xlink:href=" http://geoportail.wallonie.be/files/documents/ConditionsSPW/DataSPW-CGU.pdf ">Conditions générales d’utilisation</gmx:Anchor>

Qu'en pensez-vous ? Il s'agirait d'indiquer ici au process FME s'il s'agit d'accès ou d'utilisation. Il pourrait peut-être se baser sur une recherche de la lettre "A" ou "U" dans la valeur mais c'est plus "propre" ainsi je trouve. Même si c'est un détournement de l'argument xlink:title..

fxprunayre commented 4 years ago

Qu'en pensez-vous ?

Dans l'éditeur, ça complique un peu les choses. Après si on a un bouton pour sélectionner les différents cas, ça peut être envisageable. Dans FME, on peut chercher "accès" ou "utilisation" dans le texte de la balise non ? Ca me semble plus simple.

stephyritz commented 4 years ago

Plus simple oui si on arrive à faire en sorte que les valeurs soient homogènes et restreintes par une codelist. Parce que actuellement, on est tributaire d'une recherche texte qui peut se faire potentiellement sur des valeurs ne contenant pas les mots "accès" ou "utilisation". Mais faisons step by step : split sans cet argument dans un premier temps et nous verrons alors si ce besoin côté FME est primordial. Nous analyserons à ce moment là quelle pourrait être la meilleure solution.

davinciagf commented 4 years ago

Procédure testée sur: http://metawal4.test.wallonie.be/geonetwork/srv/api/records/435c454c-0d4b-41cf-a136-a1aba134d9ac/formatters/xml

http://metawal4.test.wallonie.be/geonetwork/srv/fre/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&ID=435c454c-0d4b-41cf-a136-a1aba134d9ac&outputSchema=mw&ElementSetName=full

stephyritz commented 4 years ago

Ok ça m'a l'air bon et toujours conforme côté INSPIRE. On va pouvoir faire le split sur les données concernées par INSPIRE. Est-ce que je peux déjà transmettre cette commande à NSI : http://metawal4.test.wallonie.be/geonetwork/srv/fre/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&ID=435c454c-0d4b-41cf-a136-a1aba134d9ac&outputSchema=mw&ElementSetName=full pour modification des paramètres d'appel du CSW en environnement de test ?

fxprunayre commented 4 years ago

Est-ce que je peux déjà transmettre cette commande à NSI : http://metawal4.test.wallonie.be/geonetwork/srv/fre/csw?SERVICE=CSW&VERSION=2.0.2&REQUEST=GetRecordById&ID=435c454c-0d4b-41cf-a136-a1aba134d9ac&outputSchema=mw&ElementSetName=full pour modification des paramètres d'appel du CSW en environnement de test ?

Oui, il faudrait modifier outputSchema=mw côté geoportail.

stephyritz commented 4 years ago

Parfait, reste à adapter l'affichage du contenu dans le Geoportail côté SPW.