CSW Requirements
From MapbenderWiki
Contents |
Introduction
The OGC Catalogue Service is a service which can used to search or adminstrate geospatial metadata. There exists one abstract specification which defines a low level (minimum) interoporability between different communities who deal with geospatial information. On base of this Spec there are many different profiles which specify some further functionality and which are based on own information models. The problem is, that a search Interface which will be implemented in Mapbender should modular work with different profiles of the base OGC CAT 2.0.2. The first thing is to support some parts of the base functionality wich is documented in http://portal.opengeospatial.org/files/?artifact_id=20555. The most relevant pages are:1-65 & 115-176 (base concept and http binding). The specification allow different kinds of bindings and different ways of defining the search filter (like sql's where clause). For the implementation in mapbender the http binding and the Filter Encoding for defining the Query should be used. Beside the abstract spec there is a profil which will be used be some european authorities to exchange metadata for the european sdi. This profil can be found here: http://portal.opengeospatial.org/files/?artifact_id=21460. With this profile it should be easier to create a search interface with defined categories, cause the information model is hardly defined. This profil should be supported too. Supporting different profiles should be possible after implementation. Therefor the database structure shouldn't be hardcoded to the ISO Profil. Maybe someone could think after collecting xslt files which transform one metadata set into another one which has another profile. Could be used for transforming CAT 2.0.2 or CSW AP ISO 1.0 metadata into a so called mapbender-view.
Problems
- There are not many Implementation of CSW 2.0.2 in the world!
- The different profiles make it difficult to make a harmonized search interface.
- Many Servers don't fully support the complex Specification - somewhat buggy!!
- Some Operations are not available through http get - tests become more time consuming!
- The complex functionality makes it difficult to create a database schema for administrate them in the mapbender-db.
TODOs
- Find different Implementations of CAT 2.0.2
- CAT 2.0.2 - not AP ISO 1.0
- http://apollo.erdas.com/apollo-catalog/wrs/WRS?request=GetCapabilities&version=2.0.2&service=CSW
- http://geomatics.nlr.nl/excat/csw?request=GetCapabilities&service=CSW&version=2.0.2
- http://geossregistries.info:1090/GEOSSCSW202/discovery?Request=GetCapabilities&Service=CSW&Version=2.0.2
- http://www.geodata.alterra.nl/excat/csw?request=GetCapabilities&service=CSW
- http://gesg.gmu.edu:8082/aq202/srv/en/csw?request=GetCapabilities&service=CSW&version=2.0.2
- http://geonovum.nitg.tno.nl:8080/geonetwork/srv/en/csw?request=GetCapabilities&service=CSW&version=2.0.2
- http://geossregistries.info:1090/GEOSSCSW202/discovery?Request=GetCapabilities&Service=CSW&Version=2.0.2
- http://enviroinfo.enviroportal.sk/csw/index.php?service=CSW&request=GetCapabilities&VERSION=2.0.2&typeNames=service
- Possible AP ISO 1.0 too? -- http://www.gdi-rp-dienste3.rlp.de/geonetwork/srv/en/csw?request=GetCapabilities&VERSION=2.0.2&service=CSW
- Problem: There is no POST operation defined for getrecords in geonetwork242!!!! This must defined by hand in the mb_database
- http://grid1.cos.gmu.edu/geonetwork/srv/csw?SERVICE=CSW&REQUEST=GetCapabilities - OneGeology Project - found by Google inurl:geonetwork/srv/en/csw out of the box - geonetwork trunk?
- CAT 2.0.2 - AP ISO 1.0
- http://gdi-de.sdisuite.de/soapServices/CSWStartup?request=GetCapabilities&service=CSW&VERSION=2.0.2 - SOAP 1.2, Conterra TestCatalog - Is the <csw:ElementSetName>brief</csw:ElementSetName> tag really mandatory??
- http://213.144.28.209/csw - SOAP 1.2, PortalU DE Test-interface
- http://78.46.82.146:80/csw/services - SOAP 1.2, BBSR
- http://www.portalu.de/csw202?REQUEST=GetCapabilities&VERSION=2.0.2&SERVICE=CSW - USE THIS SERVICE FOR TESTING
- ...
- CAT 2.0.2 - not AP ISO 1.0
- Define the use cases for distributed search out of mapbender
- Resource Types
- dataset
- WMS
- WFS?
- dataseries
- ...
- How to handle the different founded resource types
- Load WMS
- View extent (bbox) on map
- ...
- Resource Types
- Define the most needed operations:
- GetCapabilities
- GetRecords
- DescribeRecord?
- GetRecordById
- Example urls for the operations
- GetRecords
- GetRecordById
- Define typeName to support
- csw:Record - Standard
- gmd:MD_Metadata - If catalogue supports Profil ISO AP 1.0 too
- Create a definition of a internal storage format (information model) for external metadate for mapbender.
- Mapbender database schema
- Draft for table cat
- Create db tables to administrate the content of the capabilities in the mapbender-db. There are 3 ways:
- Put the whole XML in one field.
- Convert the capabilities schema to a complex relational schema.
- Do a mix of both, like it is done for wms and wfs.
- Draft for table cat
- Create the functions/classes to access the relevant information out of the services
- First only http-get and http-post after the base specification table 54 page 123 (mandatory operations):
- GetCapabilities: GET-KVP
- GetRecords: POST-XML
- GetRecordById: GET-KVP
- DescribeRecord: POST-XML
- First only http-get and http-post after the base specification table 54 page 123 (mandatory operations):
- Client Interface
- Define different filter possibilities for CAT 2.0.2 and CSW AP ISO 1.0.0
- Filters for abstract CAT csw:Record type, Common queryable elements (page 20 Table 1)
- Subject-dc:subject
- Title-dc:title
- Abstract-dct:abstract
- AnyText
- Format-dc:format
- Identifier-dc:identifier
- Modified-dct:modified
- Type-dc:type
- BoundingBox-ows:BoundingBox
- CRS
- Association-compound element
- Filters for CSW AP ISO 1.0.0
- Filters for abstract CAT csw:Record type, Common queryable elements (page 20 Table 1)
- Define different filter possibilities for CAT 2.0.2 and CSW AP ISO 1.0.0
User Interface for Testing services
http://www.gdi-rp-dienste3.rlp.de/mapbender/tools/send_post_curl.php ask for username and password: armin.retterath(at)lvermgeo.rlp.de
or download (and install php5-curl)
https://svn.osgeo.org/mapbender/trunk/mapbender/tools/send_post_curl.php
Demo REQUESTs
- Conterra Ref Implementation for CSW 2.0.2 AP ISO 1.0
- SOAP URL: http://gdi-de.sdisuite.de/soapServices/services/CSWDiscovery, POST XML URL: http://gdi-de.sdisuite.de/soapServices/CSWStartup
- GetRecords(via SOAP or POST):
Client Interface
Search Interface
- Fields
- Mandatory Fields
- Single Text Field
- Optional Fields
- Spatial Restriction/Extent/Bounding Box - use MB's current extent
- Constraints Configurable: Anywhere, Intersects, Within
- Allow to change values???
- INSPIRE metadata profile
- Spatial Restriction/Extent/Bounding Box - use MB's current extent
- Mandatory Fields
- Constraints
- Pickup current extent and use it - allow to change extent?
- Only show metadata of data displayable on a map
- WMS, Layers, GML...
- Show this as an option?
Results
- Fields
- List result sets
- Various icons for various types of result sets (applications, services, metadata, optional: WMC, OWS Context)
- Constraints
- Results returned as JSON
- map result sets to catalogs ??
- (o) load individual layers as WMS (some WMS have 1000+ layers)
Visualization
- Display results in map
- Zoom to extent
- Features with metadata in JS (Usemap)
