Catalog Service for the Web
Catalog Service for the Web (CSW), sometimes seen as Catalog 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 Catalog 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]
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][2]
-
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
GeoServer implements many OGC standards, including CSW. An example of the DescribeRecord
operation is as follows:[3]
http://localhost:8080/geoserver/csw?service=CSW&version=2.0.2&request=DescribeRecord&typeName=gmd:MD_Metadata
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"> <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
Versions 2.0.0, 2.0.1 and 2.0.2 are subtly different, and different vendors implement them with variations.[4] 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 [5] such as "GeoNetwork CSW 2.0.2 APISO".
See also
- Web Map Service (WMS)
- Web Feature Service (WFS)
- Web Coverage Service (WCS)
- Web Processing Service (WPS)
References
- 1 2 "OpenGIS Catalogue Service Implementation Specification". Open Geospatial Consortium (OGC). 2007-02-23.
- ↑ "GeoServer | Catalog Services for the Web (CSW) features".
- ↑ "Catalog Services for the Web (CSW) tutorial". GeoServer 2.8.x User Manual. Retrieved 2015-03-24.
- ↑ "GeoNetwork's cross-platform interoperability".
- ↑ "ESRI Geoportal".
External links
- OGC Catalogue Service
- OpenGIS Catalogue Service Implementation Specification (PDF)
- Commercial implementations of CSW 2.0.2
- pycsw - Open source Python implementation of CSW
- GeoNetwork - Open source Java implentation of CSW
- Open source Python client for CSW 2.0.2