Support #2459

Using references to a code list in <gmd:organizationName>

Added by Michael Lutz about 5 years ago. Updated almost 5 years ago.

Status:NewStart date:25 Jun 2015
Priority:NormalDue date:
Assignee:Michael Östling% Done:

0%

Category:-
Target version:-

Description

From: Ines Falcão <ines.falcao@emepc.mam.gov.pt>
Subject: Metadata doubt
Date: 24 June 2015 6:43:42 PM GMT+02:00
Cc: Eduardo Pascoal <eduardo.pascoal@emepc.mamaot.pt>

 

Dear Massimo Craglia, 

I'm presently involved in the SNIMar project, a portuguese marine SDI, and for now I'm creating matadata according to INSPIRE metadata implementing rules. However I have a doubt related to that which I hope you can help.

The problem is that, similarly to SeaDataNet project, we pretend to define a list of all organizations involved in our project, in order to use it in the metadata element organizationName as a codelist type and not as a characterString type. 

How can I use a codelist in the element <gmd:organizationName> if this element always expects a <gco:CharacterString> child or nothing?

Can you help me please?

Thank you in advance.

INÊS FALCÃO


Related issues

Related to MIWP-8: Metadata - Task #2468: ISO 19139 Profiles in INSPIRE New 26 Jun 2015

History

#1 Updated by Michael Lutz about 5 years ago

Dear Michael,

does this request fall within the scope of the discussions you are having in MIWP-8. If so, could you (or one of the sub-group members) draft an answer?

Thanks,

Michael

#2 Updated by Michael Lutz about 5 years ago

Follow-up e-mail:

Following our email with Massimo Craglia we would like to clarify our question about the reported issue in concern with codelists.
We are looking for a good approach to connect our codelist values to our metadata.
We looked to the seadatanet example which changes a type of a metadata element according to their xml schema. For us, Seadatanet approach seems to be a good one but we don't know if this could compromise the INSPIRE  Metadata compliance.

Please, take a look on this example:


SeaDataNet:
<gmd:organisationName>
    <sdn:SDN_EDMOCode codeList="http://seadatanet.maris2.nl/isocodelists/sdncodelists/edmo-edmerp-Codelists.xml#SDN_EDMOCode" codeSpace="SeaDataNet" codeListValue="540">SHOM (SERVICE HYDROGRAPHIQUE ET OCEANOGRAPHIQUE DE LA MARINE)</sdn:SDN_EDMOCode>
</gmd:organisationName>

INSPIRE:
<gmd:organisationName>
    <gco:CharacterString>Estrutura de Missão para a Extensão da Plataforma Continental</gco:CharacterString>
</gmd:organisationName>

As you can see in <gmd:organisationName> element seadatanet uses a codelist to fill this element. For this purpose seadatanet metadata XMLSchema provides the following statement:

<xs:element name="SDN_EDMOCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/>
<xs:complexType name="SDN_EDMOCode_PropertyType">
  <xs:sequence minOccurs="0">
    <xs:element ref="sdn:SDN_EDMOCode"/>
  </xs:sequence>
  <xs:attribute ref="gco:nilReason"/>
</xs:complexType>

Once we try to validate a SeaDataNet Metadata( example of seadatanet metadata) on INSPIRE validator and several erros occur:

Like this:

In content of element <organisationName>: The content model does not allow element <Q{.../www.seadatanet.org}SDN_EDMOCode> to appear as the first child. Expected <Q{.../gco}CharacterString> or nothing.

Please, click here if you want to see whole validation report.

We can conclude that according to INSPIRE validator, the organisationName element only expects a <gco:CharacterString>. It seems that is not possible to connect our characterstring with  a codelist value.

We also tried to use another possible approach by using a <gmd:LocalisedCharacterString> instead of <gco:CharacterString>:



<gmd:LocalisedCharacterString id="_1235" locale="http://www.mywebpage.com/mycodelist">Aquicultura</gmd:LocalisedCharacterString>

The result here was positive in validator, but doesn't recognize the keyword with LocalisedCharacterString, it seems to ignore this keyword.


How can we connect a codelist value (e.g "_1235")? How this can be made?

INSPIRE Registry for instance have codelists with ids as their child values have. How can we link these ids in metadata?

A similar question was already raised on NOAA EDM wiki, you can take a look to complement this question.

#3 Updated by Michael Lutz about 5 years ago

Dear Marc, Andrea, Javier, Michael,

I think this question is related to the task "(I) Language neutral identifiers". Could you draft an answer to the question?

Thanks,

Michael

#4 Updated by Angelo Quaglia about 5 years ago

I think this issue is linked to the more general question about whether INSPIRE supports ISO 19139 profiles, of which SeaDataNet is an example.

- Task #2468: ISO 19139 Profiles in INSPIRE

#5 Updated by Peter Kochmann about 5 years ago

As far as I know a characterString can be replaced by an anchor-element. otherConstraints is also designated to be filled with a characterString. In this case it looks like the following example:

<gmd:otherConstraints>

<gmx:Anchor xlink:href="http://inspire.ec.europa.eu/registry/metadata-codelist/ConditionsApplyingToAccessAndUse/NoConditionsApply">no conditions apply</gmx:Anchor>

</gmd:otherConstraints>

#6 Updated by Michael Lutz about 5 years ago

Thanks, Peter.

From Annex D.5 of ISO-TS 19139:2007:

D.5 Examples of use of the web environment extensions

FileName, Anchor and MimeFileType are substitutable to CharacterString. All the examples below use this
ability when instantiating the web environment extensions for properties having a CharacterString type in
ISO 19115.

(...)

An example of use of the Anchor type is the referenceSystemIdentifier property of MD_ReferenceSystem,

<referenceSystemIdentifier>
  <RS_Identifier>
    <code>
      <gmx:Anchor xlink:href="resources/crs/gmxCrs.xml#EPSG4326">WGS 84</gmx:Anchor>
    </code>
  </RS_Identifier>
</referenceSystemIdentifier>

 

#7 Updated by Angelo Quaglia about 5 years ago

 

I think it would be useful to clarify the intended semantics of each notation since the Anchor element is not a CodeList element and we are using the href attribute of the former as if it were the codeListValue attribute of the latter.

The CodeList element is designed so that you put the machine-readable code in the codeListValue attribute while the element content is a user oriented text like as intended in the element it replaces.

Instead, the RS_Identifier.code element is designed to hold the actual code which, in INSPIRE it has been agreed it should be an HTTP URIs, like:

http://www.opengis.net/def/crs/EPSG/0/4258

 

<gmd:identifier>
  <gmd:RS_Identifier>
    <gmd:code>
      <gmx:Anchor href="http://www.opengis.net/def/crs/EPSG/0/4258">http://www.opengis.net/def/crs/EPSG/0/4258</gmx:Anchor>
    </gmd:code>
    <gmd:codeSpace>
        EPSG
    </gmd:codeSpace>
  </gmd:RS_Identifier>
<gmd:identifier>

 

ISO/TS 19139:2007(E), p.8 says:

The Anchor class is needed to support hyper-linking capabilities and to ensure a web-like implementation of
ISO 19115's RS_Identifier and MD_Identifier classes. Because Anchor is a subclass of CharacterString, the
code attribute of RS_Identifier and MD_Identifier can be implemented by instantiating Anchor and thus provide
a reference to the place where the information related to the code is available.

So, the href attribute is supposed to reference a place where the information related to the code is available but it does not replace the code.

 

It would perhaps make more sense to use a CodeList element like they do in SeaDataNet, above, even though that requires to define a profile.

For keywords it is the same:

 

<gmd:keyword>
  <gmx:Anchor xlink:href="http://vocab.ndg.nerc.ac.uk/term/C161/0/55" xlink:actuate="onRequest">Bering Sea</gmx:Anchor>
 </gmd:keyword>

 

I think that storing the code in the xlink:href restricts everybody to the use of HTTP URIs which is not always desirable.

 

 

#8 Updated by Marc Leobet almost 5 years ago

As Peter showed, we are studying in MIWP-8  the use of Anchor for "access and use" elements and the Inès's question meets the same need : to be more efficient and understandable (free text for organizations is a nightmare when you have to request anything). Free text is against understandability (between languages) and interoperability (because of semantics). For some, the answer would be in using registries.

And we have too to examine usability first for humans and for machines (from FR point of view, in this order). That would lead to the final decision.

At one moment, we will have to propose a solution using - or not - anchors, and following Angelo it would depend on the decision to propose - or not - HTTP URI. I think the Malmö's meeting could be the place to work on it.

 

Also available in: Atom PDF