Semantic Generation Of WCS Catalogs: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
No edit summary
Line 1: Line 1:
== Introduction ==
== Introduction ==


A WCS service must maintain a catalog of ''Coverages''. In the Hyrax WCS service the implementation of this catalog is identified at server start-up from the DispatchHandler's configuration element in the olfs.xml file.  This page documents the work on the development and usage of a catalog implementation that utilizes semantic web technologies to generate the WCS catalog content from existing (and probably supplemented) metadata from within the existing OPeNDAP data framework.


== Technologies ==


== WCS Coverages Catalog ==
=== RDF ===


The WCS service must maintain a catalog of ''Coverages''. In the Hyrax WCS service the implementation of this catalog is identified at server start-up from the DispatchHandler's configuration element in the olfs.xml file.  As stated in the introduction the original intent (on the goal for the future) is to provide a catalog implementation that utilizes semantic web technologies to generate the WCS catalog content from existing (and probably supplemented) metadata from within the existing OPeNDAP data framework. However in there are many more fish to fry with respect to WCS than just the catalog issue, so in an effort to move that part of the process forward we have implemented a simple catalog that reads wcs:CoverageDescription elements local files. The name of this catalog implementation class is ''opendap.wcs.v1_1_2.LocalFileCatalog''.
=== OWL ===


Currently the ''LocalFileCatalog'' is implemented to use a directory in the local file system. It assumes that every file in the directory is an XML document that contains a single wcs:CoverageDescription element. The files are ingested and QC'd at start up.
=== SWRL & SEQRL ===


If you haven't noticed by now, this implementation requires that for each ''Coverage'' it's  wcs:CoverageDescription must be written by another entity - quite probably a human.
==Implementations ==


==WCS  DispatchHandler Configuration ==
=== Sesame RDF Datastore ===
 
=== Swift OWLIM ===
 
== Ontologies ==
 
== Processing Scheme ==
 
 
== Catalog Implementation ==
 
=== WCS  DispatchHandler Configuration ===





Revision as of 23:18, 15 April 2009

Introduction

A WCS service must maintain a catalog of Coverages. In the Hyrax WCS service the implementation of this catalog is identified at server start-up from the DispatchHandler's configuration element in the olfs.xml file. This page documents the work on the development and usage of a catalog implementation that utilizes semantic web technologies to generate the WCS catalog content from existing (and probably supplemented) metadata from within the existing OPeNDAP data framework.

Technologies

RDF

OWL

SWRL & SEQRL

Implementations

Sesame RDF Datastore

Swift OWLIM

Ontologies

Processing Scheme

Catalog Implementation

WCS DispatchHandler Configuration

The Hyrax WCS service is made of a collection 4 implementations of the opendap.coreServlet.DispatchHandler interface.

  • HTTP GET: opendap.wcs.v1_1_2.DispatchHandler
  • HTTP POST (For posting unadorned XML WCS requests): opendap.wcs.v1_1_2.PostHandler
  • HTTP POST (For posting SOAP envelopes containg WCS requests): opendap.wcs.v1_1_2.SoapHandler
  • HTTP POST (For handling WCS requests posted from an HTML form): opendap.wcs.v1_1_2.FormHandler

The service is enabled by creating an entry for each service component in the olfs.xml file.

The primary DispatchHandler is opendap.wcs.v1_1_2.DispatchHandler. It is required for the WCS service and it's Handler declaration contains the configuration information for the service. In it's Handler declaration the location of the ServiceIdentification, ServiceProvider, and OperationsMetadata documents are identified, along with a WCS catalog implementation to be used by the service.


To "turn on" the service Handler declarations must appear in the olfs.xml opendap.wcs.v1_1_2.DispatchHandler Configuration


Example Configuration

 <?xml version="1.0" encoding="UTF-8"?>
 <OLFSConfig>
   <DispatchHandlers>
       <HttpGetHandlers>
           <Handler className="opendap.bes.BESManager">
               <BES>
                   <prefix>/</prefix>
                   <host>localhost</host>
                   <port>10002</port>
                   <ClientPool maximum="10" />
               </BES>
           </Handler>

           <Handler className="opendap.coreServlet.BotBlocker">
              <IpMatch>65\.55\.[012]?\d?\d\.[012]?\d?\d</IpMatch>
            </Handler>  
                       

           <Handler className="opendap.wcs.v1_1_2.DispatchHandler">
               <prefix>WCS</prefix>
               <ServiceIdentification>/absolute/path/to/the/document/ServiceIdentification.xml</ServiceIdentification>
               <ServiceProvider>/absolute/path/to/the/document/ServiceProvider.xml</ServiceProvider>
               <OperationsMetadata>/absolute/path/to/the/document/OperationsMetadata.xml</OperationsMetadata>

               <WcsCatalog className="opendap.wcs.v1_1_2.RdfOwlCatalog">
                   <RDFServer>/absolute/path/to/the/directory/containing/the/wcs:CoverageDescription/documents/coverages/dir</RDFServer>
               </WcsCatalog>

           </Handler>
 
           <Handler className="opendap.threddsHandler.StaticCatalogDispatch">
               <prefix>thredds</prefix>
               <useMemoryCache>true</useMemoryCache>
           </Handler>
           <Handler className="opendap.bes.DapDispatchHandler" />
           <Handler className="opendap.bes.DirectoryDispatchHandler" />
           <Handler className="opendap.coreServlet.SpecialRequestDispatchHandler" />
           <Handler className="opendap.bes.VersionDispatchHandler" />
           <Handler className="opendap.bes.FileDispatchHandler" >
               <AllowDirectDataSourceAccess />
           </Handler>
           <Handler className="opendap.bes.BESThreddsDispatchHandler" />
       </HttpGetHandlers>


       <HttpPostHandlers>

           <Handler className="opendap.wcs.v1_1_2.PostHandler" >
               <prefix>WCS/post</prefix>
           </Handler>
           <Handler className="opendap.wcs.v1_1_2.SoapHandler" >
               <prefix>WCS/soap</prefix>
           </Handler>
           <Handler className="opendap.wcs.v1_1_2.FormHandler" >
               <prefix>WCS/form</prefix>
           </Handler>
 

           <Handler className="opendap.coreServlet.SOAPRequestDispatcher" >
               <OpendapSoapDispatchHandler>opendap.bes.SoapDispatchHandler</OpendapSoapDispatchHandler>
           </Handler>
       </HttpPostHandlers>
   </DispatchHandlers>
</OLFSConfig>