Proposal 2007-01 : OGC:GetCapabilities harvesting
| Date | 2007/12/07 |
| Contact(s) | François Prunayre |
| Last edited |
|
| Status | Vote passed with all PSC members in favor |
| Assigned to release | Release number, to be determined |
| Resources | Indicate if the required resources are available to complete the proposal |
Overview
Use the OGC:GetCapabilities document to produce metadata for services and layers in ISO19119/139 format
- add metadata of services based on ISO19119 in GeoNetwork.
- add import XML document functionnality using XSLT stylesheet
- add harwest WxS GetCapabilities
Proposal Type
- Type: New functionality
- App: GeoNetwork
- Module: Harvester, Metadata Import
Links
- Other wiki discussions:
Voting History
- Vote proposed : 20080311
- Vote passed: 20080326
- Jeroen Ticheler +1
- Andrea Carboni +1
- Patrizia Monteduro +1
- Emanuele Tajariol +1
- Francois Prunayre +1
- Simon Pigot +1
- Archie Warnock +1
Other votes:
- Mathieu +1
- Claudia +1
- Myunghwa +1 (Working on adding WPS Capabilities harvesting)
Uses cases
- UC1 : Create metadata using copy/paste the GetCapabilities document of a WxS service (i.e. Create a full ISO19119 MD based on a GetCapabilities request)
- UC2 : Harvest metadata from a WxS service (i.e. Create a full ISO19119 MD based on a GetCapabilities request, Try to add thumbnails for WMS layers metadata)
- (Not implemented) UC3 : Update Bbox section of a dataset metadata based on WMS GetCapabilities info (i.e. Update part of MD based on a Request)
Import GetCapabilities document
Harvest GetCapabilities document
Parameters
- Input parameter : URL of the service for which to create metadata
- Ouput parameter :
- ISO19119 metadata xml file to be load into GeoNetwork
- ISO19139 metadata for each layers of the services
- (optional) thumbnails
GUI
Import
Harvesting
Mapping
Service
OGC Service supported :
- WMS 1.0.0
- WMS 1.1.1
- WCS 1.0.0
- WFS 1.0.0
- WFS 1.1.0
Namespaces :
- xmlns:wfs="http://www.opengis.net/wfs"
- xmlns:ows="http://www.opengis.net/ows"
- xmlns:wcs="http://www.opengis.net/wcs"
Root element:
- WMS = WMT_MS_Capabilities
- WFS = wfs:WFT_MS_Capabilities
- WCS = wcs:WCS_Capabilities
- Service metadata /gmd:MD_Metadata
- Service Identfication /gmd:identificationInfo/srv:SV_ServiceIdentification
| Element | ISO19119 equivalent | Service type | GetCapabilities element | Note | Agreement |
| Service metadata | |||||
| Identifier | /gmd:fileIdentifier/gco:CharacterString | WFS 1.1.0 | //wfs:GetCapabilities/wfs:DCPType/wfs:HTTP/wfs:Get/@onlineResource + @version | Service url + version | |
| WFS 1.0.0 | //ows:Operation[@name='GetCapabilities']/ows:DCP/ows:HTTP/ows:Get/@xlink:href + @version | ||||
| WMS | //GetCapabilities//OnlineResource[1]/@xlink:href + @version | ||||
| WCS | //wcs:GetCapabilities//wcs:OnlineResource[1]/@xlink:href + @version | ||||
| Language | /gmd:language/gco:characterString | « eng » | Default value « eng » | ||
| CharacterSet? | /gmd:CharacterSet/gmd:MD_CharacterSetCode | « utf8 » | |||
| Contact | /gmd:contact | cf contact mapping | |||
| Date stamp | /gmd:dateStamp/gco:DateTime | Harvesting/Import? date | |||
| Standard name | /gmd:metadataStandardName/gco:CharacterString | « ISO 19119/2005 » | |||
| Standard version | /gmd:metadataStandardVertsion/gco:CharacterString | « 1.0 » | |||
| Service Identfication | |||||
| Title | /gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString | WFS 1.1.0 | ows:ServiceIdentification/ows:Title | ||
| WFS 1.0.0 | wfs:Service/wfs:Title | ||||
| WMS | Service/Title? | ||||
| WCS | wcs:Service/wcs:label | ||||
| Date | /gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:dateTime | ||||
| Abstract | /gmd:abstract/gco:CharacterString | WFS 1.1.0 | ows:ServiceIdentification/ows:Abstract | ||
| WFS 1.0.0 | wfs:Service/wfs:Abstract | ||||
| WMS | Service/Abstract? | ||||
| WCS | wcs:Service/wcs:description | ||||
| Status | /gmd:status/gmd:MD_ProgressCode | « Completed » | |||
| Contact | /gmd:pointOfContact | cf contact mapping | |||
| Keyword | /gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString | WFS 1.1.0 | /ows:keywords/ows:Keyword | « theme » for type | |
| WFS 1.0.0 | /wfs:Keywords/wfs:Keywords | ||||
| WMS | /KeywordList/Keyword | ||||
| WCS | /wcs:keywords/wcs:keyword | ||||
| Topic Category | /gmd:topicCategory/gmd:MD_TopicCategoryCode | User input | |||
| Service type | /srv:serviceType/gco:LocalName codeSpace="www.w3c.org" | WFS 1.1.0 | « OGC:WFS » | user input | |
| WFS 1.0.0 | « OGC:WFS » | ||||
| WMS | « OGC:WMS » | ||||
| WCS | « OGC:WCS » | ||||
| Service version | /srv:serviceTypeVersion/gco:CharacterString | /ROOT/@version | eg. « 1.0.0 » | ||
| Fees | /srv:accessProperties/gmd:MD_StandardOrderProcess/gmd:fees/gco:CharacterString | WFS 1.1.0 | /ows:Fees | ||
| WFS 1.0.0 | /wfs:Fees | ||||
| WMS | /Fees | ||||
| WCS | /wcs:Fees | ||||
| AccessConstraint | /gmd:resourceConstraints/gmd:MD_Constraints/gmd:useLimitation | WFS 1.1.0 | /ows:AccessConstraints | ||
| WFS 1.0.0 | /wfs:AccessConstraints | ||||
| WMS | /AccessConstraints | ||||
| WCS | /wcs:AccessConstraints | ||||
| Operations | /srv:containsOperations/srv:SV_OperationMetadata/srv:operationName/gco:CharacterString | WFS 1.1.0 | /ows:OperationsMetadata/* | cf mapping on operation | |
| WFS 1.0.0 | /wfs:Capability/wfs:Request/* | ||||
| WMS | /Capability/Request/* | ||||
| WCS | /wcs:Capability/wcs:Request/* | ||||
| OperatesOn | /srv:operatesOn/gmd:MD_DataIdentification/@uuidref | WFS 1.1.0 | metadata uuid for generated layer/coverage/featuretype metadata | ||
| WFS 1.0.0 | |||||
| WMS | |||||
| WCS | |||||
| Bounding box | /srv:SV_ServiceIdentification/srv:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox | WFS 1.1.0 | math:min(//ows:WGS84BoundingBox/ows:LowerCorner / UpperCorner) | ||
| WFS 1.0.0 | math:min(//wfs:LatLongBoundingBox/@minx) | ||||
| WMS | math:min(//LatLonBoundingBox/@minx) | ||||
| WCS | math:min(//wcs:lonLatEnvelope/gml:pos[1 / 2]) | ||||
| CRS | referenceSystemInfo/MD_ReferenceSystem/referenceSystemIdentifier/RS_Identifier/code | 4326 if available if not the first one | |||
| Status | /srv:SV_ServiceIdentification/status/MD_ProgressCode | « completed » | |||
| dataQualityInfo | gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:scope/gmd:DQ_Scope/gmd:level/gmd:MD_ScopeCode | codeListValue="service" |
Link between data and service:
<srv:operatesOn> <gmd:MD_DataIdentification uuid='identifier' xlink:href="link to xml document" xlink:title="Layer description"/> </srv:operatesOn>
Data
Root element:
- WMS = WMT_MS_Capabilities/Capability/Layer
- WFS = wfs:WFS_Capabilities/wfs:FeatureTypeList/wfs:FeatureType
- WCS = wcs:WCS_Capabilities/wcs:ContentMetadata/wcs:CoverageOfferingBrief
- Data metadata root node = /gmd:MD_Metadata
- Layer identification node = gmd:identificationInfo/srv:SV_ServiceIdentification
- Distribution node = gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource
- Data quality node = gmd:dataQualityInfo/gmd:DQ_DataQuality
- Projection node = gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier
| Element | ISO19115 equivalent | Service type | GetCapabilities element | Note |
| Service metadata | ||||
| Identifier | /gmd:fileIdentifier/gco:CharacterString | uuid | ||
| Language | /gmd:language/gco:characterString | « eng » | Default « eng » | |
| CharacterSet | /gmd:CharacterSet/gmd:MD_CharacterSetCode | « utf8 » | ||
| Contact | /gmd:contact | cf contact mapping | ||
| Date stamp | /gmd:dateStamp/gco:DateTime | Harvesting/import date | ||
| Standard name | /gmd:metadataStandardName/gco:CharacterString | « ISO 19115:2003/19139 » | ||
| Standard version | /gmd:metadataStandardVersion/gco:CharacterString | « 1.0 » | ||
| Layer identification | ||||
| Title | /gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString | WFS 1.1.0 | /wfs:FeatureType/wfs:Title | |
| WFS 1.0.0 | /wfs:FeatureType/wfs:Title | |||
| WMS | /Layer/Title | |||
| WCS | /wcs:CoverageOfferingBrief/wcs:label | |||
| Date | /gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:dateTime | |||
| Abstract | /gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString | WFS 1.1.0 | /wfs:FeatureType/wfs:Abstract | |
| WFS 1.0.0 | ||||
| WMS | /Layer/Abstract | |||
| WCS | /wcs:CoverageOfferingBrief/wcs:Description | |||
| LatLonBoundingBox | /gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/ gmd:westBoundLongitude|gmd:eastBoundLongitude|gmd:southBoundLatitude|gmd:northBoundLatitude/gco:Decimal | //ows:WGS84BoundingBox/ows:LowerCorner / UpperCorner | ||
| WFS 1.0.0 | math:min(//wfs:LatLongBoundingBox/@minx | |||
| WMS | //LatLonBoundingBox/@minx | |||
| WCS | //wcs:lonLatEnvelope/gml:pos[1 / 2] | |||
| Status | /gmd:status/gmd:MD_ProgressCode | « Completed » | ||
| Contact | /gmd:pointOfContact | cf contact mapping | ||
| spatialRepresentationType | /gmd:spatialRepresentationType/gmd:MD_SpatialRepresentationTypeCode | WFS | codeListValue="vector" | |
| WCS | codeListValue="grid" | |||
| Scale | /gmd:spatialResolution/gmd:MD_Resolution/gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator/gco:Integer | WMS | /Layer/MinScaleDenominator + MaxScaleDenominator | |
| Topic Category | /gmd:topicCategory/gmd:MD_TopicCategoryCode | User input | ||
| Projection | ||||
| /gmd:code/gco:CharacterString | 4326 if available if not the first one | |||
| Distribution | ||||
| URL | /gmd:linkage/gmd:URL | WFS 1.1.0 | //ows:Operation[@name='GetFeature']/ows:DCP/ows:HTTP/ows:Get/@xlink:href | |
| WFS 1.0.0 | //wfs:GetFeature/wfs:DCPType/wfs:HTTP/wfs:Get/@onlineResource | |||
| WMS | //GetMap/DCPType/HTTP/Get/OnlineResource/@xlink:href | |||
| WCS | //wcs:GetCoverage/wcs:DCPType/wcs:HTTP/wcs:Get/wcs:OnlineResource/@xlink:href | |||
| Protocol | /gmd:protocol/gco:CharacterString | WFS 1.1.0 | "OGC:WFS-1.1.0-http-get-feature" | mime-type ou liste GeoNetwork |
| WFS 1.0.0 | "OGC:WFS-1.0.0-http-get-feature" | |||
| WMS | "OGC:WMS-1.1.1-http-get-map" | |||
| WCS | "OGC:WCS-1.0.0-http-get-coverage" | |||
| Name | /gmd:name/gco:CharacterString | WFS 1.1.0 | //wfs:FeatureType/wfs:Name | |
| WFS 1.0.0 | //wfs:FeatureType/wfs:Name | |||
| WMS | /Layer/Name | |||
| WCS | /wcs:CoverageOfferingBrief/wcs:name | |||
| Description | /gmd:description/gco:CharacterString | WFS 1.1.0 | //wfs:FeatureType/wfs:Title | |
| WFS 1.0.0 | //wfs:FeatureType/wfs:Title | |||
| WMS | //Layer/Title | |||
| WCS | //wcs:CoverageOfferingBrief/wcs:description | |||
| Data Quality | ||||
| Topic | /gmd:scope/gmd:DQ_Scope/gmd:level/gmd:MD_ScopeCode | « dataset » |
Contact
Root element:
- WMS = WMT_MS_Capabilities/Service/contactInformation/ContactPersonPrimary
- WFS = wfs:WFS_Capabilities/wfs:Service/wfs:contactInformation/wfs:ContactPerson
- WCS = wcs:WCS_Capabilities/wcs:Service/wcs:contactInformation/wcs:ContactPerson
| Element | ISO19115 equivalent | Service type | GetCapabilities element | Note |
| Name | /gmd:individualName/gco:CharacterString | WFS 1.1.0 | ows:ProviderName | |
| WFS 1.0.0 | ContactPerson? | |||
| WMS | ContactPerson? | |||
| WCS | wcs:individualName | |||
| Organisation | /gmd:organisationName/gco:CharacterString | WFS 1.1.0 | ContactOrganization | |
| WFS 1.0.0 | ContactOrganization | |||
| WMS | ContactOrganization | |||
| WCS | wcs:organisationName | |||
| Position Name | /gmd:positionName/gco:CharacterString | WFS 1.1.0 | ContactPosition | |
| WFS 1.0.0 | ContactPosition | |||
| WMS | ContactPosition | |||
| WCS | wcs:positionName | |||
| Role | /gmd:role/gmd:CI_RoleCode | « pointOfContact » | ||
| Phone gmd:phone/gmd:CI_Telephone | ||||
| Voice | /gmd:voice/gco:CharacterString | ContactVoiceTelephone | ||
| Fax | /gmd:facsim/gco:CharacterString | ContactFacsimileTelephone | ||
| Address | gmd:address/gmd:CI_Address | |||
| Delivery point | /gmd:deliveryPoint/gco:CharacterString | ContactAddress/Address | ||
| Administrative | /gmd:administrativeArea/gco:CharacterString | wMS | ContactAddress/StateOrProvince | |
| City | /gmd:city/gco:CharacterString | WFS 1.1.0 | City | |
| WFS 1.0.0 | City | |||
| WMS | City | |||
| WCS | wcs:address/wcs:city | |||
| PostCode | /gmd:postalCode/gco:CharacterString | WFS 1.1.0 | ContactAddress/PostCode | |
| Country | /gmd:country/gco:CharacterString | WFS 1.1.0 | ContactAddress/Country | |
| WCS | wcs:address/wcs:country | |||
| /gmd:electronicMailAddress/gco:CharacterString | eMailAdd | |||
| WFS 1.0.0 | eMailAdd | |||
| WMS | eMailAdd | |||
| WCS | wcs:address/wcs:electronicMailAddress |
Operation
Root element
- WMS = Capability/Request/?*
- WFS 1.0.0 = wfs:Capability/wfs:Request/*
- WFS 1.1.0 = ows:OperationsMetadata/*
- WCS = wcs:Capability/wcs:Request/*
- Identification = /MD_Metadata/srv:SV_ServiceIdentification
- Operation = /MD_Metadata/srv:SV_ServiceIdentification/srv:containsOperations/srv:SV_OperationMetadata/
| Element | ISO19119 equivalent | Service type | GetCapabilities element | Note |
| Identification | ||||
| Coupling type | /srv:couplingType | « tight » | ||
| Operation | ||||
| Name | /srv:operationName/gco:CharacterString | WFS 1.1.0 | @name | |
| WFS 1.0.0 | name(.) | |||
| WMS | name(.) | |||
| WCS | name(.) | |||
| DCP | /srv:DCP/srv/DCPList | if (name(.)='Get' or name(.)='wfs:Get' or name(.)='wcs:Get' or name(.)='ows:Get') "HTTP-GET" | ||
| else if (name(.)='Post' or name(.)='wfs:Post' or name(.)='wcs:Post' or name(.)='ows:Post') "HTTP-POST" | ||||
| else | "Webservice" | |||
| URL | /srv:connectPoint/gmd:CI_OlineRessource/gmd:linkage/gmd:URL | WFS 1.1.0 | ..//ows:Get[1]/@xlink:href | |
| WFS 1.0.0 | ..//wfs:OnlineResource[1]/@xlink:href | |||
| WMS | ..//OnlineResource[1]/@xlink:href | |||
| WCS | ..//wcs:OnlineResource[1]/@xlink:href | |||
| Protocol | /srv:connectPoint/gmd:CI_OlineRessource/gmd:protocol/gco:CharacterString | WFS 1.1.0 | ows:Parameter[@name='AcceptFormats']/ows:Value | |
| WFS 1.0.0 | wfs:Format | |||
| WMS | Format | |||
| WCS | none | |||
| Function | /srv:connectPoint/gmd:CI_OlineRessource/gmd:function | « Information » | ||
| coupledResource | srv:coupledResource/srv:SV_CoupledResource/srv:OperationName/srv:identifier | For each layer and each operation | ||
| Operation name | srv:coupledResource/srv:SV_CoupledResource/srv:OperationName | |||
| Layer id | srv:coupledResource/srv:SV_CoupledResource/srv:identifier | defined on harvest/import | ||
| Layer name | srv:coupledResource/srv:SV_CoupledResource/gco:ScopedName | layer name on the service |
Compatibility Issues
Need an update on Jeeves project (adding one method for XSL transformation with params)
Tests
Harvesting capability has been tested with the following OGC WxS implementation:
- Mapserver
- Geoserver
Attachments
-
GeoNetworkImportXML.png
(166.4 KB) - added by Fxp
5 years ago.
GeoNetworkImport?.png
-
brgm_geosciml-doc-uml-GetCapabilitiesHarvest.usd.png
(78.0 KB) - added by Fxp
5 years ago.
GeoNetworkHarvestUC.png
-
brgm_geosciml-doc-uml-GetCapabilitiesImport.usd.png
(31.1 KB) - added by Fxp
5 years ago.
GeoNetworkImportUC.png
-
GeoNetworkHarvestManager.png
(113.5 KB) - added by Fxp
5 years ago.
GUI for harvesting configuration sor OGC services
-
GeoNetworkHarvestManager.2.png
(113.5 KB) - added by Fxp
5 years ago.
GUI for harvesting configuration sor OGC services
-
geonetwork_harvestogc.swf
(4.2 MB) - added by Fxp
5 years ago.
Demo : How-to configure new OGC harvesting task ?




