SIT down and enjoy OGC’s new CAT 3.0!

chair

If you read the recent press release about OGC’s new Catalogue Services CAT 3.0, you will find something very unusual: the test suite and reference implementations were part of the announcement. It’s the first time a standard has been released by OGC with an ready-to-go implementation test and example implementations that have already passed the test. This is what I’m calling a good SIT (Standard + Implementations + Tests), which you can enjoy as an implementer of technology solutions. Having these three (SIT) ingredients at the time of release is very important for a number of reasons:

  1. Easier to implement. Organizations seeking to develop technology solutions can look at the standard, inspect the exemplar implementations, and run their own tests to improve their software.

  2. More robust. Since the standard document was improved based on feedback from early implementers as well as the developers of the test, there are less ambiguities and less bugs, resulting in a more robust standard.

  3. Make the best decision about what part of the standard to implement first. Based on the experience of the implementers and the decision of the developer writing the test, the more workable part of the standard was developed first. Currently only tests for core and open search exist.

CAT 3.0 is much more friendly than CAT 2.0

CAT 3.0 provides major improvements on CAT2.0. My favorite new feature is OpenSearch, and I’ll use an example to show you why.

Previously, in CAT2.0, to check if there were any records containing, say, the word ‘Greece’, a client had to send the following XML in a post request to the server:

<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" service="CSW" version="2.0.2" resultType="results" startPosition="1" maxRecords="5" outputFormat="application/xml" outputSchema="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://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">

 <csw:Query typeNames="csw:Record">
   <csw:ElementSetName>brief</csw:ElementSetName>
   <csw:Constraint version="1.1.0">
     <ogc:Filter>
       <ogc:PropertyIsEqualTo>
         <ogc:PropertyName>csw:AnyText</ogc:PropertyName>
         <ogc:Literal>Greece</ogc:Literal>
       </ogc:PropertyIsEqualTo>
     </ogc:Filter>
   </csw:Constraint>
 </csw:Query>
</csw:GetRecords>

Now, with OpenSearch in CAT3.0, the query is reduced to:

http://demo.pycsw.org/cite/csw?mode=opensearch&service=CSW&version=3.0.0&request=GetRecords&elementsetname=full&typenames=csw:Record&resulttype=results&q=Greece

The following template OpenSearch URL shows you the kind of parameters you can use to retrieve records from a CSW server:

http://demo.pycsw.org/cite/csw?mode=opensearch&service=CSW&version=3.0.0&request=GetRecords&elementsetname=full&typenames=csw:Record&resulttype=results&q={searchTerms?}&bbox={geo:box?}&time={time:start?}/{time:end?}&startposition={startIndex?}&maxrecords={count?}

As well as search terms, you can specify bbox and time, as well as which results page you want to begin on (via start position). How cool is that!?

Demo to use the OGC Validation tool

To better understand how to use the OGC validator to test catalog servers, you can watch a demo video on the OGC’s YouTube channel. The video is only showing how to test for CAT 3.0, but the same process can be used to test for all other standards that OGC has tests for: WFS, WMS, KML, GML, SOS, etc.

The best part, the tool is free for anyone to use: you don’t need to be an OGC member, and you don’t need to pay for validation of your server, client, or file. At OGC, we want to make it easy for implementers to improve the reliability and interoperability of their software, giving them a bit more time to SIT and relax.