(Return to Portal)
OGC CSW Interface

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:
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>
top

Links