Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mapping of Distribution and DataService #59

Open
NielsHoffmann opened this issue Oct 17, 2024 · 1 comment
Open

mapping of Distribution and DataService #59

NielsHoffmann opened this issue Oct 17, 2024 · 1 comment
Labels
3.0.0 Pilot Issues coming from the GeoDCAT-AP 3.0.0 Pilot

Comments

@NielsHoffmann
Copy link

NielsHoffmann commented Oct 17, 2024

I'm testing the transformation to geodcat ap for the 3.0.0 pilot.

In addition to my remark in #58 about blank nodes, I also think there are some issues with the mapping of Distributions and DataServices.

My original iso19115 xml is listing a distribution format like this:

<gmd:distributionInfo>
    <gmd:MD_Distribution>
      <gmd:distributionFormat>
        <gmd:MD_Format>
          <gmd:name>
            <gco:CharacterString>ESRI Shape</gco:CharacterString>
          </gmd:name>

and 5 different transfer options:

<gmd:MD_DigitalTransferOptions>
          <gmd:onLine xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="java:org.fao.geonet.util.XslUtil">
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://services.rce.geovoorziening.nl/rce/wms?request=GetCapabilities</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="http://www.opengis.net/def/serviceType/ogc/wms">OGC:WMS</gmx:Anchor>
              </gmd:protocol>
              <gmd:applicationProfile>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/view">view</gmx:Anchor>
              </gmd:applicationProfile>
              <gmd:name>
                <gco:CharacterString>Townscapes</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
            </gmd:CI_OnlineResource>
          </gmd:onLine>
          <gmd:onLine xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="java:org.fao.geonet.util.XslUtil">
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://services.rce.geovoorziening.nl/rce/wfs?request=GetCapabilities</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="http://www.opengis.net/def/serviceType/ogc/wfs">OGC:WFS</gmx:Anchor>
              </gmd:protocol>
              <gmd:applicationProfile>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/download">download</gmx:Anchor>
              </gmd:applicationProfile>
              <gmd:name>
                <gco:CharacterString>Townscapes</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
            </gmd:CI_OnlineResource>
          </gmd:onLine>
          <gmd:onLine xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="java:org.fao.geonet.util.XslUtil">
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://services.rce.geovoorziening.nl/rce_download/download/data/Stads_en_Dorpsgezichten_nl.xml</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="https://tools.ietf.org/html/rfc4287">INSPIRE Atom</gmx:Anchor>
              </gmd:protocol>
              <gmd:applicationProfile>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/download">download</gmx:Anchor>
              </gmd:applicationProfile>
              <gmd:name>
                <gco:CharacterString>Atom feed Townscapes</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
            </gmd:CI_OnlineResource>
          </gmd:onLine>
          <gmd:onLine xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="java:org.fao.geonet.util.XslUtil">
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://www.cultureelerfgoed.nl/onderwerpen/bronnen-en-kaarten/overzicht/kaart-van-beschermde-stads--en-dorpsgezichten</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="https://www.w3.org/TR/vocab-dcat-2/#Property:resource_landing_page">landingpage</gmx:Anchor>
              </gmd:protocol>
              <gmd:applicationProfile>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/other">other</gmx:Anchor>
              </gmd:applicationProfile>
              <gmd:name>
                <gco:CharacterString>Kaart met stads- en dorpsgezichten</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
            </gmd:CI_OnlineResource>
          </gmd:onLine>
          <gmd:onLine xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="java:org.fao.geonet.util.XslUtil">
            <gmd:CI_OnlineResource>
              <gmd:linkage>
                <gmd:URL>https://linkeddata.cultureelerfgoed.nl/rce/-/stories/High-Value-datasets</gmd:URL>
              </gmd:linkage>
              <gmd:protocol>
                <gmx:Anchor xlink:href="https://www.w3.org/TR/vocab-dcat-2/#Property:resource_landing_page">landingpage</gmx:Anchor>
              </gmd:protocol>
              <gmd:applicationProfile>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/SpatialDataServiceType/other">other</gmx:Anchor>
              </gmd:applicationProfile>
              <gmd:name>
                <gco:CharacterString>Linked data INSPIRE en High Value datasets RCE</gco:CharacterString>
              </gmd:name>
              <gmd:description>
                <gmx:Anchor xlink:href="http://inspire.ec.europa.eu/metadata-codelist/OnLineDescriptionCode/accessPoint">accessPoint</gmx:Anchor>
              </gmd:description>
              <gmd:function>
                <gmd:CI_OnLineFunctionCode codeList="http://schemas.opengis.net/iso/19139/20060504/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" codeListValue="information">information</gmd:CI_OnLineFunctionCode>
              </gmd:function>
            </gmd:CI_OnlineResource>
          </gmd:onLine>
        </gmd:MD_DigitalTransferOptions>

What I see in the resulting transformed DCAT structure (Converted to ttl from rdf/xml for readability) is this:

    dcat:distribution [ **a dcat:Distribution** ;
            dcterms:accessRights <http://inspire.ec.europa.eu/metadata-codelist/ConditionsApplyingToAccessAndUse/noConditionsApply>,
                <http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/noLimitations>,
                <https://creativecommons.org/licenses/by/4.0/deed.nl> ;
            dcterms:description "accessPoint"@nl ;
            dcterms:format [ a dcterms:MediaType ;
                    rdfs:label "ESRI Shape" ] ;
            dcterms:rights [ a dcterms:RightsStatement ;
                    dcterms:description "Met de ligging van de begrenzingen van de stads- en dorpsgezichten dient behoedzaam te worden omgegaan. De kwaliteit is namelijk wisselend."@nl ] ;
            dcterms:title "Townscapes"@nl ;
            cnt:characterEncoding "UTF-8"^^xsd:string ;
            adms:representationTechnique <http://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType/vector> ;
            dcat:accessService [ a dcat:DataService ;
                    geodcatap:serviceProtocol <http://www.opengeospatial.org/standards/wfs> ;
                    dcterms:title "Townscapes"@nl ;
                    dcat:endpointDescription <https://services.rce.geovoorziening.nl/rce/wfs?request=GetCapabilities> ;
                    dcat:endpointURL <https://services.rce.geovoorziening.nl/rce/wfs> ] ;
            dcat:accessURL <https://services.rce.geovoorziening.nl/rce/wfs?request=GetCapabilities> ],
        [ a dcat:Distribution ;
            dcterms:accessRights <http://inspire.ec.europa.eu/metadata-codelist/ConditionsApplyingToAccessAndUse/noConditionsApply>,
                <http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess/noLimitations>,
                <https://creativecommons.org/licenses/by/4.0/deed.nl> ;
            dcterms:description "accessPoint"@nl ;
            dcterms:format [ a dcterms:MediaType ;
                    rdfs:label "ESRI Shape" ] ;
            dcterms:rights [ a dcterms:RightsStatement ;
                    dcterms:description "Met de ligging van de begrenzingen van de stads- en dorpsgezichten dient behoedzaam te worden omgegaan. De kwaliteit is namelijk wisselend."@nl ] ;
            dcterms:title "Townscapes"@nl ;
            cnt:characterEncoding "UTF-8"^^xsd:string ;
            adms:representationTechnique <http://inspire.ec.europa.eu/metadata-codelist/SpatialRepresentationType/vector> ;
            dcat:accessService [ a dcat:DataService ;
                    geodcatap:serviceProtocol <http://www.opengeospatial.org/standards/wms> ;
                    dcterms:title "Townscapes"@nl ;
                    dcat:endpointDescription <https://services.rce.geovoorziening.nl/rce/wms?request=GetCapabilities> ;
                    dcat:endpointURL <https://services.rce.geovoorziening.nl/rce/wms> ] ;
            dcat:accessURL <https://services.rce.geovoorziening.nl/rce/wms?request=GetCapabilities> ] ;

I guess I would expect 3 Distributions (WMS, WFS and ATOM) with corresponding DataServices.

But there are only 2 distributions. Both with a format description of ESRI Shape, where I would expect WMS and WFS.

The ATOM feed is presented as a landingpage, I would expect that as a distribution/dataservice.

The first landing page is presented as a landingpage, which looks correct.

The second landingpage is mapped to a document. It's not clear to me why there is a difference being made here.

@NielsHoffmann
Copy link
Author

NielsHoffmann commented Oct 18, 2024

So in looking into this issue some more it seems to stem from the fact that the Dutch iso-19915 profile specifies the conditional use of 'protocol' if a URL is provided (https://docs.geostandaarden.nl/md/mdprofiel-iso19115/#protocol).
This follows the INSPIRE technical guidelines for Linked service metadata for data sets and data set series (https://github.com/INSPIRE-MIF/technical-guidelines/blob/main/metadata/metadata-iso19139/metadata-iso19139.adoc#331-protocol)

The usage notes in the GeoDCAT-AP mapping (https://semiceu.github.io/GeoDCAT-AP/releases/3.0.0/#resource-locator---on-line-resource) seem to follow another part of the INSPIRE technical guidelines: (https://github.com/INSPIRE-MIF/technical-guidelines/blob/main/metadata/metadata-iso19139/metadata-iso19139.adoc#413-distribution-info-section)

So both patterns seem to be stemming from the same technical guidelines, but resulting in different implementations.
It would be good to address this in the geodcat mapping notes. (this is Issue #139 in the GeoDCAT-AP repo: SEMICeu/GeoDCAT-AP#139)

I am not sure what the best approach is for a generic solution in the XSLT.

@jakubklimek jakubklimek added the 3.0.0 Pilot Issues coming from the GeoDCAT-AP 3.0.0 Pilot label Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.0.0 Pilot Issues coming from the GeoDCAT-AP 3.0.0 Pilot
Projects
None yet
Development

No branches or pull requests

2 participants