Encoding URIs in ISO 19139

Discusses how to encode URIs within ISO XML documents compliant with ISO 19139 Schemas (2005)

 

Motivation

 

ISO 19139 is the application of the ISO 19115 Geospatial Metadata Standard. It is being used to describe resources within Catalog Services for the Web (CS-W). For example a resource is a layer, and observation, or a feature. These could be served respectively as WMS, SOS and WFS. Ideally we would like to discover these resources by using hierarchy of concepts (or ontologies). For example searching for recreation we should be able to get a map of public beaches. We need to tag these resources with concepts available from a hierarchy. One way to do it is using ontologies and the Semantic Web, which relies on URIs to identify each concept. So then the problem is how do we encode a URI within an ISO 19139 XML.


Assumptions:

  • A URI is compose of a URI_Base and a URI_fragment. For example for the URI : http://marinemetadata.org/ont/term#recreation123. http://marinemetadata.org/ont/term# is the base, while recreation123 is the fragment.
  • A URI should have an associated English label.

Best Practice (read Proposal 3)

  • URI is use for identification purposes of the keyword
  • Human labels, as well as more information related to this URI should be store and retrieve from the ontology

 

Proposal 1:

Use MD_Keywords. Encode the fragment in the keyword element and the URI_base in the identifier of the thesaurusName

<gmd:descriptiveKeywords>
<gmd:MD_Keywords>
<gmd:keyword>
<gco:CharacterString>{URI_fragment}</gco:CharacterString>
</gmd:keyword>
<gmd:thesaurusName>
<gmd:CI_Citation>
<gmd:title/>
<gmd:date/>
<gmd:identifier>
<gmd:MD_Identifier>
<gmd:code>
<gco:CharacterString>{URI_base}</gco:CharacterString>
</gmd:code>
</gmd:MD_Identifier>
</gmd:identifier>
</gmd:CI_Citation>
</gmd:thesaurusName>
<gmd:keyword>
<gco:CharacterString>{english_label}</gco:CharacterString>
</gmd:keyword>
</gmd:MD_Keywords>
</gmd:descriptiveKeywords>


Proposal 2:

Use MD_Keywords. Encode all the URI in the keyword element

<gmd:descriptiveKeywords>
<gmd:MD_Keywords>
<gmd:keyword>
<gco:CharacterString>{URI_base}{URI_fragment}</gco:CharacterString>
</gmd:keyword>
<gmd:keyword>
<gco:CharacterString>{english_label}</gco:CharacterString>
</gmd:keyword>
</gmd:MD_Keywords>
</gmd:descriptiveKeywords>


Proposal 3:

Complete example - Includes URI, information about the ontology. It does not include human readable labels. These should be extracted from the thesaurus (ontology).

 

<!-- For URIs encoding from ontologies -->
<gmd:descriptiveKeywords>
<gmd:MD_Keywords >
<gmd:keyword>
<gco:CharacterString>{URI_fragment}</gco:CharacterString>
</gmd:keyword>
<gmd:type>
<gmd:MD_KeywordTypeCode codeList="005" codeListValue="theme"></gmd:MD_KeywordTypeCode>
</gmd:type>
<gmd:thesaurusName>
<gmd:CI_Citation>
<gmd:title>
<gco:CharacterString>{Title Ontology}</gco:CharacterString>
</gmd:title>
<gmd:date>
<gmd:CI_Date>
<gmd:date> <gco:Date>{Date of creation of the resource or Ontology, in ISO 8601 format}</gco:Date></gmd:date>
<gmd:dateType>
<gmd:CI_DateTypeCode codeList="001" codeListValue="creation"></gmd:CI_DateTypeCode>
</gmd:dateType>
</gmd:CI_Date>
</gmd:date>
<gmd:identifier>
<gmd:MD_Identifier>
<gmd:code>
<gco:CharacterString>{URI_base (including the character string before the fragment, for example '#'}</gco:CharacterString>
</gmd:code>
</gmd:MD_Identifier>
</gmd:identifier>
</gmd:CI_Citation>
</gmd:thesaurusName>
</gmd:MD_Keywords>
</gmd:descriptiveKeywords>