= Proposal 2007-01 : OGC:GetCapabilities harvesting = || '''Date''' || 2007/12/07 || || '''Contact(s)''' || [http://wiki.osgeo.org/index.php/User:Fxp François Prunayre] || || '''Last edited''' || [[Timestamp]] || || '''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 === * '''Documents''': * '''Email discussions''': * [http://www.nabble.com/OGC-3AGetCapabilities-document-to-produce-metadata-for-services-and-layers-in-ISO19119-139-to14212294s18419.html#a14212294 Thread 1] * [http://www.nabble.com/Re-3A-OGC-3AGetCapabilities-document-to-produceme-09tadata-for-services-and-layers-in-ISO19119-139--SEC-3DUNCLASSIFIED--to14286493s18419.html#a14286493 Thread 2] * '''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 === [[Image(brgm_geosciml-doc-uml-GetCapabilitiesImport.usd.png, 400px)]] === Harvest GetCapabilities document === [[Image(brgm_geosciml-doc-uml-GetCapabilitiesHarvest.usd.png, 800px)]] == 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 === [[Image(GeoNetworkImportXML.png, 500px)]] === Harvesting === [[Image(GeoNetworkHarvestManager.2.png, 500px)]] == 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: {{{ #!xml }}} === 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 || || || Email || /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