Group On Earth Observations banner
 
GEOSS Component and Service Registry - API Interface  

The GEOSS registry exposes OGC CSW interfaces to be accessed by other applications, including GEOSS Web Portal solutions. The UDDI and OASIS ebXML-ebRS interfaces will be ready soon. Clearinghouse implementations can use the GEOSS registry to register and locate GEOSS catalog services as a basis for evaluation, configuration, harvest, and distributed query.

 

This OGC CSW Interface follows OGC 07-006r1: OpenGIS Catalogue Service Implementation Specification (Ver.2.0.2), HTTP Protocol Binding. It supports GetCapabilities, DescribeRecord, GetRecordByID, and GetRecords funtions.

 

Service Address

http://geossregistries.info:1090/GEOSSCSW202/discovery

 

GetCapabilities

The mandatory GetCapabilities operation allows CSW clients to retrieve service metadata from a server. The response to a GetCapabilities request shall be an XML document containing service metadata about the server. This subclause specifies the XML document that a CSW server shall return to describe its capabilities.

This GetCapabilities HTTP Get Request Example contains the following KVPs:

Request=GetCapabilities
Service=CSW
Version=2.0.2

 

DescribeRecord

The mandatory DescribeRecord operation 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.

This DescribeRecord HTTP Get Request Example contains the following KVPs:

Request=DescribeRecord
Service=CSW
Version=2.0.2
NAMESPACE=xmlns(rim=urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0)

 

GetRecordById

The GetRecordById function returns the detailed information for some specific objects (Components and/or Services) of interest.

This GetRecordById HTTP Get Request Example contains the following KVPs:

Request=GetRecordById
Service=CSW
Id=urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489:1.4,urn:uuid:a9ad5a4b-1589-4876-a149-904fc5a9fef0:1.8

 

Controlled Vocabulary

The following controlled vocabularies are used in the CSR database for GEOSS Resource(Component) type, Resource availability, Societal Benefit Areas.

Resource Category
-------------------------------------------------------------------
            Type                                    Value
-------------------------------------------------------------------
Observing System or Sensor Network              observingSystem
Exchange and Dissemination System               dataExchangeAndDisseminationSystem
Modeling and Data Processing Center             modelingAndDataProcessingCenter
Data set or Database                            dataSetdataBase
Catalog, Registry or Metadata Collection        catalogRegistry
Portal or website                               webPortal
Software or application                         softwareApplication
Computational model                             model
Initiative or Programme                         initiative
Information feed, RSS, or alert                 feedAlert
Training or educational resources               training
Web-accessible document, file, or graphic       document
Resource Availability
-------------------------------------------------------------------
  Name                                           Value
-------------------------------------------------------------------
Continuously Operational                        continuousOperation
Intermittently Operational                      intermittentOperation
Not Operational                                 notOperational
Societal Benefit Areas
-------------------------------------------------------------------
  Name                                           Value
-------------------------------------------------------------------
Agriculture                                     Agriculture
Biodiversity                                    Biodiversity
Climate                                         Climate
Disasters                                       Disasters
Ecosystems                                      Ecosystems
Energy                                          Energy
Health                                          Health
Water                                           Water
Weather                                         Weather

 

GetRecords

The mandatory GetRecords operation works as the primary mean of resource discovery in the HTTP protocal binding. It does a search and a piggybacked present. Only XML encoding is supported at this moment.

 

GetRecords Request XML Encoding Examples

Request Example 1 - for All the Component Systems

This query matches all the components. The response will only contains one Component, as defined by the maxRecords attribute.

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2"
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Organization">
 <csw:ElementName>/rim:Organization/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

 

Request Example 2 - Component discovery based on its name.

This query is for the component that has name of "U.S. Geospatial One-Stop".

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords
 xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2"
 maxRecords="1" 
 startPosition="1">
 
 <csw:Query typeNames="rim:Organization">
 <csw:ElementName>/rim:Organization/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
    <ogc:PropertyIsEqualTo>
     <ogc:PropertyName>/rim:Organization/rim:Name/rim:LocalizedString/@value</ogc:PropertyName>
     <ogc:Literal>U.S. Geospatial One-Stop</ogc:Literal>
    </ogc:PropertyIsEqualTo>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

 

Request Example 3 - for all the Service

This query matches all the services. The response will only contains one Service, as defined by the maxRecords attribute.

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords
 xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2"
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Service">
  <csw:ElementName>/rim:Service/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter> </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

 

Request Example 4 - Service Request based on service name.

This query is for those services with their names contain "Geospatial One Stop".

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2" 
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Service">
 <csw:ElementName>/rim:Service/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
    <ogc:PropertyIsLike wildCard="*" singleChar="#" escapeChar="\">
     <ogc:PropertyName>/rim:Service/rim:Name/rim:LocalizedString/@value</ogc:PropertyName>
	 <ogc:Literal>*Geospatial One Stop*</ogc:Literal>
    </ogc:PropertyIsLike>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

Request Example 5 - Service discovery based on its type.

This query is for those Catalog/Registry Services, no matter what kind of version it supports, no matter which application profile it follows.

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords
 xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2" 
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Service">
  <csw:ElementName>/rim:Service/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
    <ogc:And>
     <ogc:PropertyIsEqualTo>
	  <ogc:PropertyName>/rim:Service/rim:Slot/@name</ogc:PropertyName>
	  <ogc:Literal>standardTypes</ogc:Literal>
     </ogc:PropertyIsEqualTo>
     <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>/rim:Service/rim:Slot/rim:ValueList/rim:Value</ogc:PropertyName>
      <ogc:Literal>Catalog/Registry Service</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    </ogc:And>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

Request Example 6 - Service discovery based on detailed requirements.

This query is ONLY for those Catalog/Registry Services that support OGC Catalogue Service 2.0.1 - Z39.50 binding.

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords
 xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2"
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Service">
  <csw:ElementName>/rim:Service/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
    <ogc:And>
	 <ogc:PropertyIsEqualTo>
	  <ogc:PropertyName>/rim:Service/rim:Slot/@name</ogc:PropertyName>
	  <ogc:Literal>standards</ogc:Literal>
	 </ogc:PropertyIsEqualTo>
	 <ogc:PropertyIsEqualTo>
	  <ogc:PropertyName>/rim:Service/rim:Slot/rim:ValueList/rim:Value</ogc:PropertyName>
	  <ogc:Literal>urn:ogc:serviceType:CatalogueService:2.0.1:Z39.50</ogc:Literal>
	 </ogc:PropertyIsEqualTo>
	</ogc:And>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

Request Example 7 - Service discovery with more detailed requirements.

This query is ONLY for those Catalog/Registry Services that support OGC Catalogue Service 2.0.1 - HTTP binding - ISO19115/19119 application profile.

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecords
 xmlns="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:ogc="http://www.opengis.net/ogc"
 xmlns:gml="http://www.opengis.net/gml"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 version="2.0.2"
 outputFormat="text/xml; charset=UTF-8"
 outputSchema="http://www.opengis.net/cat/csw/2.0.2"
 maxRecords="1"
 startPosition="1">
 <csw:Query typeNames="rim:Service">
  <csw:ElementName>/rim:Service/</csw:ElementName>
  <csw:Constraint version="1.1.0">
   <ogc:Filter>
    <ogc:And>
     <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>/rim:Service/rim:Slot/@name</ogc:PropertyName>
      <ogc:Literal>standards</ogc:Literal>
     </ogc:PropertyIsEqualTo>
     <ogc:PropertyIsEqualTo>
      <ogc:PropertyName>/rim:Service/rim:Slot/rim:ValueList/rim:Value</ogc:PropertyName>
      <ogc:Literal>urn:ogc:serviceType:CatalogueService:2.0.1:HTTP:ISO19115/19119</ogc:Literal>
     </ogc:PropertyIsEqualTo>
    </ogc:And>
   </ogc:Filter>
  </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

 

 

GetRecords Response Examples

 

Response Example - for Component

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecordsResponse
 xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" 
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 xmlns:ogc="http://www.opengis.net/ogc"  version="2.0.2">
 <csw:SearchStatus timestamp="2009.04.08.10.45.16"/>
 <csw:SearchResults 
  numberOfRecordsMatched="1"
  numberOfRecordsReturned="1"
  nextRecord="0">
  <Organization
   primaryContact="urn:uuid:9d0880ba-7776-4aa1-a7d4-8b1c71b538c3"
   lid="urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489"
   objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Organization"
   status="urn:oasis:names:tc:ebxml-regrep:StatusType:Submitted"
   id="urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489:1.4"
   xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
   <Slot name="Approval">
    <ValueList><Value>no</Value></ValueList>
   </Slot>
   <Slot name="Catalogue">
    <ValueList><Value/></ValueList>
   </Slot>
   <Slot name="Category">
    <ValueList>
	 <Value>dataExchangeAndDisseminationSystem</Value>
	</ValueList>
   </Slot>
   <Slot name="ContactEmail">
    <ValueList><Value>support@geodata.gov</Value></ValueList>
   </Slot>
   <Slot name="ContactName">
    <ValueList><Value>User Support</Value></ValueList>
   </Slot>
   <Slot name="DateOfLastUpdate">
    <ValueList><Value>Wed Oct 29 11:23:13 EST 2008</Value></ValueList>
   </Slot>
   <Slot name="GeoSponsor">
    <ValueList><Value>M0068</Value></ValueList>
   </Slot>
   <Slot name="OnLineRef">
    <ValueList><Value>http://geodata.gov</Value></ValueList>
   </Slot>
   <Slot name="OrganizationType">
    <ValueList><Value>GEOSSComponent</Value></ValueList>
   </Slot>
   <Slot name="Owner">
    <ValueList><Value>ddnebert</Value></ValueList>
   </Slot>
   <Slot name="RespOrg">
    <ValueList><Value>U.S. Geological Survey</Value></ValueList>
   </Slot>
   <Slot name="SocietalBenefit">
    <ValueList>
     <Value>Agriculture</Value>
     <Value>Biodiversity</Value>
     <Value>Climate</Value>
     <Value>Disasters</Value>
     <Value>Health</Value>
     <Value>Water</Value>
     <Value>Weather</Value>
    </ValueList>
   </Slot>
   <Slot name="Status">
    <ValueList><Value>continuousOperation</Value></ValueList>
   </Slot>
   <Slot name="componentAbbrev">
    <ValueList><Value>geodata.gov</Value></ValueList>
   </Slot>
   <Name>
    <LocalizedString charset="UTF-8" value="U.S. Geospatial One-Stop" xml:lang="en"/>
   </Name>
   <Description>
    <LocalizedString 
	charset="UTF-8" 
	value="This Component provides comprehensive 
	access to U.S. geospatial data and services. 
	It enables publishing of data sets 
	through the collection or harvest of descriptive 
	metadata and enables search and 
	visualization of geospatial data through certain 
	standards-based services." 
	xml:lang="en"/>
   </Description>
   <VersionInfo versionName="1.4"/>
   <Address/>
  </Organization>
 </csw:SearchResults>
</csw:GetRecordsResponse>

 

Response Example - for Service

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecordsResponse 
 xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
 xmlns:ogc="http://www.opengis.net/ogc" 
 version="2.0.2">
 <csw:SearchStatus timestamp="2009.04.08.10.53.18"/>
 <csw:SearchResults 
  numberOfRecordsMatched="1"
  numberOfRecordsReturned="1"
  nextRecord="0">
  <Service
   lid="urn:uuid:a9ad5a4b-1589-4876-a149-904fc5a9fef0"
   objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Service"
   status="urn:oasis:names:tc:ebxml-regrep:StatusType:Submitted"
   id="urn:uuid:a9ad5a4b-1589-4876-a149-904fc5a9fef0:1.8"
   xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
   <Slot name="ContactEmail">
   <ValueList><Value>support@geodata.gov</Value></ValueList>
   </Slot>
   <Slot name="ContactName">
   <ValueList><Value>User Support</Value></ValueList>
   </Slot>
   <Slot name="DateOfLastUpdate">
   <ValueList><Value>Tue Oct 28 12:37:05 EST 2008</Value></ValueList>
   </Slot>
   <Slot name="OnLineRef">
   <ValueList>
   <Value>http://www.geodata.gov/Portal/csw202/discovery?
   request=GetCapabilities&service=CSW&version=2.0.2</Value>
   </ValueList>
   </Slot>
   <Slot name="Owner">
   <ValueList><Value>ddnebert</Value></ValueList>
   </Slot>
   <Slot name="ServiceType">
   <ValueList><Value>GEOSSService</Value></ValueList>
   </Slot>
   <Slot name="abbrev">
   <ValueList><Value>gos-csw</Value></ValueList>
   </Slot>
   <Slot name="beginDate">
   <ValueList><Value>Indefinite Start</Value></ValueList>
   </Slot>
   <Slot name="endDate">
   <ValueList><Value>Ongoing</Value></ValueList>
   </Slot>
   <Slot name="geoss">
   <ValueList><Value>yes</Value></ValueList>
   </Slot>
   <Slot name="maxLat">
   <ValueList><Value>71.0</Value></ValueList>
   </Slot>
   <Slot name="maxLong">
   <ValueList><Value>-65.0</Value></ValueList>
   </Slot>
   <Slot name="minLat">
   <ValueList><Value>18.0</Value></ValueList>
   </Slot>
   <Slot name="minLong">
   <ValueList><Value>-180.0</Value></ValueList>
   </Slot>
   <Slot name="providingOrganization">
   <ValueList>
   <Value>urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489:1.4</Value></ValueList>
   </Slot>
   <Slot name="serviceInfo">
   <ValueList><Value>http://www.geodata.gov</Value></ValueList>
   </Slot>
   <Slot name="standardTypes">
   <ValueList>
   <Value>Metadata</Value>
   <Value>Catalog/Registry Service</Value>
   </ValueList>
   </Slot>
   <Slot name="standards">
   <ValueList>
   <Value>USA FGDC CSDGM</Value>
   <Value>OGC Catalogue Service 2.0.2/HTTP</Value>
   </ValueList>
   </Slot>
   <Name>
   <LocalizedString 
   charset="UTF-8" 
   value="Geospatial One Stop Catalog Service (OGC CSW)" 
   xml:lang="en"/>
   </Name>
   <Description>
   <LocalizedString 
   charset="UTF-8" 
   value="This interface provides standard access to the 
   Geospatial One Stop national metadata catalog through 
   the Open Geospatial Consortium (OGC) Catalogue Service 
   interface, Version 2.0.2. " xml:lang="en"/>
   </Description>
   <VersionInfo versionName="1.8"/>
  </Service>
 </csw:SearchResults>
</csw:GetRecordsResponse>

Last updated: April 8th, 2009

   Designed, developed and maintained by:
The Global Earth Observation System of Systems (GEOSS), Architecture Task AR-07-01
The Center for Spatial Information Science and Systems (CSISS), George Mason University
The Federal Geographic Data Committee (FGDC), USA
Data Archiving and Distribution Technical Committee of IEEE Geoscience and Remote Sensing Society (DAD-TC)