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

What's new in Version 2?

1. Only approved records (Component or Service) will be retrieved.
2. Only standardIDs will be returned in the Service record.
Clearinghouses, Web Portals and other CSR clients need to issue a HTTP Get request to SIR to know the details about referenced standard(s).The exact HTTP Get KVP looks like:
http://seabass.ieee.org/groups/geoss/index.php?option=com_sir_200&Itemid=157&ID=STANDARDID
where STANDARDID needs to be replaced with the exact standardID returned in the response. Please check out "Response Example - for Service" section below for details.

 

Brief Introduction

The GEOSS registry exposes OGC CSW interfaces to be accessed by other applications, including GEOSS Clearinghouses, 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:csw="http://www.opengis.net/cat/csw/2.0.2" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
 xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 
 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" 
 version="2.0.2">
  <csw:SearchStatus timestamp="2009.08.31.14.35.18"/>
  <csw:SearchResults 
   numberOfRecordsReturned="1" 
   numberOfRecordsMatched="1" 
   nextRecord="0">
   <rim:Organization 
    status="null" primaryContact="urn:uuid:9d0880ba-7776-4aa1-a7d4-8b1c71b538c3" 
	objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Organization" 
	id="urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489:1.4">
	 <rim:Slot name="Approval">
	  <rim:ValueList>
	   <rim:Value>yes</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="Catalogue">
	  <rim:ValueList>
	   <rim:Value/>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="Category">
	  <rim:ValueList>
	   <rim:Value>disseminationSystemPortalWebsite</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="ContactEmail">
	  <rim:ValueList>
	   <rim:Value>support@geodata.gov</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="ContactName">
	  <rim:ValueList>
	   <rim:Value>User Support</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="DateOfLastUpdate">
	  <rim:ValueList>
	   <rim:Value>Wed Apr 15 16:08:04 EDT 2009</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="GeoSponsor">
	  <rim:ValueList>
	   <rim:Value>United States</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="OnLineRef">
	  <rim:ValueList>
	   <rim:Value>http://geodata.gov</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="Owner">
	  <rim:ValueList>
	   <rim:Value>ddnebert</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="RespOrg">
	  <rim:ValueList>
	   <rim:Value>U.S. Geological Survey</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="SocietalBenefit">
	  <rim:ValueList>
	   <rim:Value>AgricultureBiodiversityClimateDisastersHealthWaterWeather</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="Status">
	  <rim:ValueList>
	   <rim:Value>continuousOperation</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Slot name="componentAbbrev">
	  <rim:ValueList>
	   <rim:Value>geodata.gov</rim:Value>
	  </rim:ValueList>
	 </rim:Slot>
	 <rim:Name>
	  <rim:LocalizedString 
	   xml:lang="en-US" 
	   value="U.S. Geospatial One-Stop" 
	   charset="UTF-8"/>
	 </rim:Name>
	 <rim:Description>
	  <rim:LocalizedString 
	   xml:lang="en-US" 
	   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." 
	   charset="UTF-8"/>
    </rim:Description>
   </rim:Organization>
 </csw:SearchResults>
</csw:GetRecordsResponse>

 

Response Example - for Service

<?xml version="1.0" encoding="UTF-8"?>
<csw:GetRecordsResponse 
xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" 
xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 
http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd" 
version="2.0.2">
 <csw:SearchStatus 
 timestamp="2009.08.31.14.24.44"/>
 <csw:SearchResults 
  numberOfRecordsReturned="1" 
  numberOfRecordsMatched="1" 
  nextRecord="0">
  <rim:Service 
   status="null" 
   objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Service" 
   id="urn:uuid:a9ad5a4b-1589-4876-a149-904fc5a9fef0:1.8">
   <rim:Slot name="Approval">
    <rim:ValueList>
	 <rim:Value>yes</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="ContactEmail">
    <rim:ValueList>
	 <rim:Value>support@geodata.gov</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="ContactName">
    <rim:ValueList>
	 <rim:Value>User Support</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="DateOfLastUpdate">
    <rim:ValueList>
	 <rim:Value>Tue Oct 28 13:37:05 EDT 2008</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="OnLineRef">
    <rim:ValueList>
	 <rim:Value>http://www.geodata.gov/Portal/csw202/discovery?
	 request=GetCapabilities&service=CSW&
	 version=2.0.2</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="Owner">
    <rim:ValueList>
	 <rim:Value>ddnebert</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="abbrev">
    <rim:ValueList>
	 <rim:Value>gos-csw</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="beginDate">
    <rim:ValueList>
	 <rim:Value>Indefinite Start</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="endDate">
    <rim:ValueList>
	 <rim:Value>Ongoing</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="maxLat">
    <rim:ValueList>
	 <rim:Value>71.0</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="maxLong">
    <rim:ValueList>
	 <rim:Value>-65.0</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="minLat">
    <rim:ValueList>
	 <rim:Value>18.0</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="minLong">
    <rim:ValueList>
	 <rim:Value>-180.0</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="providingOrganization">
    <rim:ValueList>
	 <rim:Value>urn:uuid:85fd419c-081b-4e69-8998-d1003b5d4489:1.4</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="serviceInfo">
    <rim:ValueList>
	 <rim:Value>http://www.geodata.gov</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Slot name="standardIDs">
    <rim:ValueList>
	 <rim:Value>urn:ogc:serviceType:CatalogueService:2.0.2:HTTP</rim:Value>
	 <rim:Value>urn:geoss-uuid:71c9a9fe253991eb5f60aa508e3ad994</rim:Value>
	</rim:ValueList>
   </rim:Slot>
   <rim:Name>
    <rim:LocalizedString 
	  xml:lang="en-US" 
	  value="Geospatial One Stop Catalog Service (OGC CSW)" charset="UTF-8"/>
   </rim:Name>
   <rim:Description>
	  <rim:LocalizedString 
	    xml:lang="en-US" 
		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. " 
		charset="UTF-8"/>
   </rim:Description>
   </rim:Service>
 </csw:SearchResults>
</csw:GetRecordsResponse>

Last updated: August 31, 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)