Introduction
The CSW interface is based upon the OGC Catalog Services Specification Version 2.0.1. The interaction between a client and a server is
accomplished using a standard request-response model of the HTTP protocol. That is, a client sends a
request to the server using HTTP, and expects to receive a response to the request or an exception message.
An XML HTTP
POST operation is performed.
The service repository resides in an Oracle database and has been implemented using the OASIS/ebXML
Repository Information Model v2.5 (see
http://www.ebxml.org).
Repository service access is based upon the HTTP protocol with client and server requests and responses
using XML. Client applications can use this interface for executing service repository queries and
receiving service repository metadata results. Basically, the essential purpose of a catalog service is to
enable a user to locate, access, and make use of resources in an open, distributed system by providing facilities
for retrieving, storing, and managing many kinds of resource descriptions.
The metadata repository managed by the catalog can store a multitude of resource descriptions that conform to any
standard Internet media type, such as:
- XML schemas;
- Thumbnail representations of remotely sensed images;
- Audio annotations;
- Specification documents;
- A simple map of a meteorological sensor network; and
- Style sheets for generating detailed topographic maps.
Furthermore, arbitrary relationships among cataloged items can be expressed by creating links between any two resource descriptions.
For example, a service offer may be associated with descriptions of the data sets that can be acquired using the service. A catalog can function
as a stand-alone service or it can interact with other affiliated catalogs within a federation that spans multiple administrative domains.
The federation then effectively enlarges the total search space within which resource descriptions may be discovered.
When a catalog is linked to a peer catalog, it makes the resource descriptions managed by the peer implicitly available to its own clients.
Each catalog client connects to a single catalog service as its main point of contact with the federation. This is the agent node;
the propagation of request messages to neighboring nodes is invisible to the client. It is not necessary to know where the metadata
repositories are located or how they are accessed.
The CSW catalog profile is intended to provide a flexible, general-purpose catalog service that can be adapted to meet the needs of diverse
communities of practice within the geospatial domain.
The following is an OGC CSW Interface example:
| OGC CSW Data & Services Interface |
|
|
Note: The input for North, South, West and East are the bounding coordinates in decimal degrees (i.e. North and South range from -90.0 to 90.0, West and East range from -180.0 to 180.0). The aspect ratio must be maintained to avoid a skewed map result.
CSW Data and Services Model
top
Repository service access is based upon the HTTP protocol with client and server requests and responses
using XML. Client applications can use this interface for executing service repository queries and receiving
service repository metadata results.
| Client & Catalog Service - Web |
 |
An example of how you can use the interface is to do a search for
Denver content.
Basically, an XML query is built and POSTED to the Catalog Service - Web (
see above diagram).
Once posted, the CSW will return a formatted XML result.
Example Query
top
Here is the XML query that would be built after entering 'DENVER' into the search content:
<GetRecords xmlns='http://www.opengis.net/cat/csw'
xmlns:ogc='http://www.opengis.net/ogc' elementSet='full'
startPosition='1' maxRecords='5'
outputFormat='application/xml;
charset=UTF-8'>
<Query typeNames='ExtrinsicObject:$eo'
xmlns:gml='http://www.opengis.net/gml'>
<ogc:SelectObjectType>/$eo</ogc:SelectObjectType>
<QueryConstraint>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>/$eo/Slot/@name</ogc:PropertyName>
<ogc:Literal>Keyword</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsLike>
<ogc:PropertyName>
/$eo/Slot/ValueList/Value
</ogc:PropertyName>
<ogc:Literal>denver</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Filter>
</QueryConstraint>
</Query>
</GetRecords>
Here is the result of searching for Denver:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<GetRecordsResponse xmlns="http://www.opengis.net/cat/csw" version="0.8.3">
<searchStatus status="complete" timestamp="2005-04-06T10:34:59-0800" />
<searchResults resultSetId="urn:uuid:DBFF2880-7716-4245-82AE-C9D1148C6550" expiration="2005-04-06T10:49:59-0800"
hitCount="0" numberOfResults="0" />
</GetRecordsResponse>