Property metadata in GML

... overloading href, and use of other xlinks

Contents

Related pages



GML Property pattern and xlinks

The implementation of properties as "child elements" of elements representing features is described in GmlImplementation. The standard pattern for properties with complex values is that the value may appear
  • by representation (inline) as a child element of the property element, or
  • by reference as the resource denoted by the value of the xlink:href attribute.

The standard rule is that one of these should occur, and neither or both is invalid. This rule is not enforceable using W3C XML Schema, but it may be formally expressed and enforced using the Schematron pattern provided in gmlBase.xsd.

However, there is a case for using xlink attributes for the additional purpose of property value metadata. In particular, this leverages the other (rarely used) simple link attributes other than xlink:href to augment a link.

Kinds of metadata

Metadata may apply to geospatial data at various levels. The ISO 19115 MD_ScopeCode codelist identifies 16 scope levels:
  • attribute
  • attributeType
  • collectionHardware
  • collectionSession
  • dataset
  • series
  • nonGeographicDataset
  • dimensionGroup
  • feature
  • featureType
  • propertyType
  • fieldSession
  • software
  • service
  • model
  • tile

In terms of data instances, we have most experience with dataset metadata, and related parts of a hierarchy such as series metadata. The possibility of seamless databases with incremental update also implies a requirement for feature level metadata, which is supported in GML. However, although attribute is one of the scope levels, implementations are rare at this scope level.

The well known metadata standards (FGDC, ISO 19115, ANZMETA) are primarily focussed on dataset metadata exchanged using the so-called transfer model which is primarily centered on the transfer of complete metadata records as artefacts in parallel with the datasets described.

We have recently encountered two use-cases for property level metadata
  1. the need to link to the observational basis of a property value, often in the form of an Observation
  2. construction of a denormalized representation of a feature or other record (i.e. everything inline), while still preserving an indication of the fact that a value is normatively available from another source

These use-cases can be supported by use of the xlink attributes together with inline values.

A property metadata pattern for GML property elements

We propose to relax the contraint that prohibits the occurrence of both an xlink:href as well as an inline value, so that the xlink:href can link to property-value metadata.

In order to implement this in a GML Application Schema,
  • where the property is a "normal" property, using the either inline/or byReference pattern, no change is required
  • where the property is tagged inlineOrByReference="inline", or where the property has a "simpleContent" type, then xlinks must be added to the type in the element declaration, for example following this pattern:
   <element name="size" minOccurs="0">
      <annotation>
         <documentation>
            This property is stereotyped //estimatedProperty// 
            so needs to provide a means to link to the Observation 
            that acts as the propertyValueProvider
         </documentation>
      </annotation>
      <complexType>
         <simpleContent>
            <extension base="gml:MeasureType">
               <attributeGroup ref="xlink:simpleLink"/>
            </extension>
         </simpleContent>
      </complexType>
   </element>
  • any property element on which a metadata link may appear must not provide context for the Schematron "refAndCOntent co-occurrence prohibited" pattern. An alternative rule applies as follows:

Rule for co-occurence of link and property value: if a property element both contains an inline value and carries an xlink:href attribute, the xlink:arcrole attribute must also be present, with a value selected from the following list:
  • urn:ogc:def:arcrole:OGC:evidence indicates that the target of the accompanying xlink:href provides evidence for the property value
  • urn:ogc:def:arcrole:OGC:original indicates that the target of the accompanying xlink:href provides the normative value for the property; i.e. if the local and remote values differ, then the remote value is correct

  • any others?
    • urn:ogc:def:arcrole:OGC:quality indicates the the target of the accompanying xlink:href provides a description of the quality of the property value (e.g. using a gmd:AbstractDQ_Element instance)

The xlink:role attribute may (optionally) be used to indicate the type of the target resource, for example

  • urn:ogc:def:featureType:OGC:OM:Observation may indicate that the target of a link to evidence is actually an om:Observation instance
  • urn:ogc:def:identifiableObjectType:ISOTC211:CI_ResponsibleParty may indicate that the target of a link to an original is a CI_ResponsibleParty instance.

Examples

<gsml:color 
   xlink:href="http://www.bogusdomain.org/observations/3679.xml" 
   xlink:arcrole="urn:ogc:def:arcrole:OGC:evidence" 
   xlink:role="urn:ogc:def:featureType:OGC:Observation">brown</gsml:color>

<myns:custodian 
   xlink:href="http://www.granddomain.gov/parties/yip99.xml" 
   xlink:arcrole="urn:ogc:def:arcrole:OGC:original" 
   xlink:role="urn:ogc:def:identifiableObjectType:ISOTC211:CI_ResponsibleParty">Fred</myns:custodian>

-- SimonCox - 21 Nov 2006

 
Topic revision: r8 - 15 Oct 2010, UnknownUser
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).