"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

Requirements for additional CS/W features in GeoNetwork

Contents

Related pages



Purpose of this document

This document describes the additional requirements for the CS/W service in GeoNetwork to enable users to query automatically harvested GeoNetwork metadata records in ISO19119 format through the CS/W interface for the following data:

  • service type (WFS, WMS, ...)
  • served feature types (GeologicUnit, MineralOccurrence, ...)

The motivation behind this is to enable the AuScope portal to discover web services based on searches for above data.

Requirements

The requirements will be described as follows:

Service type

The user should be able to query for OGC standard service types. This information can be found here in a GeoNetwork service data record based on ISO19119/139 (described as an XPath expression):

gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/srv:serviceType/gco:LocalName

Example values: OGC:WMS, OGC:WFS

Feature types

The user should be able to query for the feature types that are served by the above web services.

For services that support multiple features, separate records for each feature are created. The records are linked from the service record here:

gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/srv:operatesOn

Example tag:
<srv:operatesOn uuidref="f835722e-7036-4c04-87de-cfbb265ed823"
           xlink:href="/geonetwork/srv/en/metadata.show?id=19039"
           xlink:title="gsml:Borehole"/>

The feature types could be extracted either from:
  • the xlink:title property as seen in above example, if it is queryable.
  • each feature record at this location:
    gmd:MD_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:name/gco:CharacterString

Example value: gsml:Borehole

Data Records

Motivation

The ISO19119 format defines 2 types of records:
  • MD_DataIdentification
  • SV_ServiceIdentification

MD_DataIdentification records can be used to describe:
  • feature types of a given WFS
  • layers of a given WMS/WCS
  • any other non service related dataset

During harvesting of a WFS/WMS the following records are created:
  • one SV_ServiceIdentification record for the the given service
  • various MD_DataIdentification records for each layer and feature type of the given service

This auto harvesting makes accessing data records a fantastic optimization step in relation to Auscope Portal.

Querying service type and feature type from a service record is great, if we wish to display the data products to the user based on services.

But instead we wish to portray a more data focused view to the user. In order to do this using the current method (service type, feature type of a service record) would require getting service URLs, then having to individually query each service for its data. Needless to say, this would be a very time consuming endeavour.

Requirements

To be able to query:
  • Get all MD_DataIdentification records
  • Get all SV_ServiceIdentification records
  • Get all MD_DataIdentification records with
    • /MD_Metadata/distributionInfo/MD_Distribution/transferOptions/MD_DigitalTransferOptions/online/name/CharacterString == 'given name'
    • AND
    • /MD_Metadata/distributionInfo/MD_Distribution/transferOptions/MD_DigitalTransferOptions/online/protocol/CharacterString contains 'WMS'

Test cases:

Service type

A query like this should work (copy and paste the whole text into your browser):

http://localhost:8080/geonetwork/srv/en/csw?request=GetRecords
   &service=CSW
   &resultType=results
   &namespace=csw:http://www.opengis.net/cat/csw
   &outputSchema=csw:IsoRecord
   &constraint=
      <Filter xmlns="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml">
         <PropertyIsEqualTo>
            <PropertyName>serviceType</PropertyName>
            <Literal>OGC:WFS</Literal>
         </PropertyIsEqualTo>
      </Filter>
   &constraintLanguage=FILTER
   &constraint_language_version=1.1.0

Feature types

DONE Room for discussion. I see two possibilities:

  • One query for all service types. Feasible or not?
  • Different queries depending on service type.

-- MichaelStegherr - 22 Apr 2009

 
Topic revision: r10 - 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).