Catalogue Service for the Web

Summary

Catalogue Service for the Web (CSW), sometimes seen as Catalogue Service - Web, is a standard for exposing a catalogue of geospatial records in XML on the Internet (over HTTP). The catalogue is made up of records that describe geospatial data (e.g. KML), geospatial services (e.g. WMS), and related resources.

CSW is one part (or "profile") of the OGC Catalogue Service, which defines common interfaces to discover, browse, and query metadata about data, services, and other potential resources. Version 2.0 of the specification was released in May 2004. The most recent release is 2.0.2, which was published in 2007.[1][2]

The records are in XML according to the standard. Typically the records include Dublin Core, ISO 19139 or FGDC metadata, encoded in UTF-8 characters. Each record must contain certain core fields including: Title, Format, Type (e.g. Dataset, DatasetCollection or Service), BoundingBox (a rectangle of interest, expressed in latitude and longitude), Coordinate Reference System, and Association (a link to another metadata record).

Operations defined by the CSW standard include:[1][3]

  • GetCapabilities: "allows CSW clients to retrieve service metadata from a server"
  • DescribeRecord: "allows a client to discover elements of the information model supported by the target catalogue service. The operation allows some or all of the information model to be described".
  • GetRecords: search for records, returning record IDs
  • GetRecordById: "retrieves the default representation of catalogue records using their identifier"
  • GetDomain (optional): "used to obtain runtime information about the range of values of a metadata record element or request parameter"
  • Harvest (optional): create/update metadata by asking the server to 'pull' metadata from somewhere
  • Transaction (optional): create/edit metadata by 'pushing' the metadata to the server

Requests can encode the parameters in three different ways:

  • GET with URL parameters
  • POST with form-encoded payload
  • POST with XML payload

Responses are in XML.

Sample interaction

edit

GeoServer implements many OGC standards, including CSW. An example of the DescribeRecord operation is as follows:[4]

http://localhost:8080/geoserver/csw?service=CSW&version=2.0.2&request=DescribeRecord&typeName=gmd:MD_Metadata[permanent dead link]

A (truncated) response:

<?xml version="1.0" encoding="UTF-8"?>
<csw:DescribeRecordResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://localhost:8080/geoserver/schemas/csw/2.0.2CSW-discovery.xsd[permanent dead link]">
<csw:SchemaComponent targetNamespace="http://www.opengis.net/cat/csw/2.0.2" schemaLanguage="http://www.w3.org/XML/Schema">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" targetNamespace="http://www.isotc211.org/2005/gmd" elementFormDefault="qualified" version="2012-07-13">
<!-- ================================= Annotation ================================ -->
 <xs:annotation>
 <xs:documentation>Geographic MetaData (GMD) extensible markup language is a component of the XML Schema Implementation of Geographic Information Metadata documented in ISO/TS 19139:2007. GMD includes all the definitions of http://www.isotc211.org/2005/gmd namespace. The root document of this namespace is the file gmd.xsd. This identification.xsd schema implements the UML conceptual schema defined in A.2.2 of ISO 19115:2003. It contains the implementation of the following classes: MD_Identification, MD_BrowseGraphic, MD_DataIdentification, MD_ServiceIdentification, MD_RepresentativeFraction, MD_Usage, MD_Keywords, DS_Association, MD_AggregateInformation, MD_CharacterSetCode, MD_SpatialRepresentationTypeCode, MD_TopicCategoryCode, MD_ProgressCode, MD_KeywordTypeCode, DS_AssociationTypeCode, DS_InitiativeTypeCode, MD_ResolutionType.</xs:documentation>
</xs:annotation>

Versions

edit

Versions 2.0.0, 2.0.1 and 2.0.2 are subtly different, and different vendors implement them with variations.[5] Typically a CSW server will accept requests in one CSW version only, and it is up to the client to be flexible. e.g. ESRI Geoportal can be configured to harvest documents from CSW servers of a variety of versions and vendor variants [6] such as "GeoNetwork CSW 2.0.2 APISO".

See also

edit

References

edit
  1. ^ a b "OpenGIS Catalogue Service Implementation Specification". Open Geospatial Consortium (OGC). 2007-02-23.
  2. ^ "Webkatalog". Wednesday, 3 May 2017
  3. ^ "GeoServer | Catalogue Services for the Web (CSW) features". Archived from the original on 2015-03-29.
  4. ^ "Catalog Services for the Web (CSW) tutorial". GeoServer 2.8.x User Manual. Archived from the original on 2015-03-29. Retrieved 2015-03-24.
  5. ^ "GeoNetwork's cross-platform interoperability".
  6. ^ "ESRI Geoportal".
edit
  • OGC Catalogue Service
  • OpenGIS Catalogue Service Implementation Specification (PDF)
  • Implementations of CSW 2.0.2 registered with OGC
  • OGC e-Learning about CSW
  • pycsw - Open source Python implementation of CSW
  • GeoNetwork - Open source Java implementation of CSW
  • OWSLib - Open source Python client for CSW 2.0.2