Proposal title
Date | 2011/05/19 |
Contact(s) | Craig Jones |
Last edited | |
Status | draft |
Assigned to release | Release number, to be determined |
Resources | Patch available |
Ticket # | #520 |
Overview
This proposal is to add an OGC Sensor Observation Service option to the existing OGC WxS Harvester.
This proposal also adds the ability to specify schema specific harvesting for each OGC Service type to the OGC WxS harvester.
Proposal Type
- Type: Module Change
- App: GeoNetwork
- Module: Harvester
Links
- Documents:
- Email discussions:
- Other wiki discussions:
Voting History
- Vote proposed by Craig Jones on 1st June 2011, result was
- +1 from Patrizia, Emanuele, Jeroen, Francois, Simon
Motivations
The marine community in Australia is increasingly looking to make use of OGC Sensor Observation services to publish marine data with many services already being made available. The addition of an SOS harvesting option to geonetwork will facilitate the discovery and access of these services via the Australian Oceans Data Network (AODN) by making it a simple process to publish service details to the AODN's service/dataset catalog (the ANZ-MEST/geonetwork) or to contributing catalogs.
Proposal
This proposal adds to the existing OGC WxS harvester. For more details on what this harvester currently does and how it works refer to the existing documentation on this harvester or the original proposal to add this harvester to geonetwork ISO19119impl.
Schema Specific Harvesting
This proposal adds the ability to define schema specific harvesting of OGC WxS GetCapabilities metadata. In particular, the stylesheets to be used to harvest metadata for a particular OGC service type for a particular target output schema are placed in the convert/OGCWxSGetCapabilitiesto19119 directory for the schema or schema plugin. e.g.
For a schema plugin:
schemaPlugins/iso19139.mcp-1.4/convert/OGCWxSGetCapabilitiesto19119/ OGCSOSGetCapabilitiesLayer-to-19139.xsl OGCSOSGetCapabilities-to-ISO19119_ISO19139.xsl
For one of the core geonetwork schemas:
xml/schemas/convert/OGCWxSGetCapabilitiesto19119/ OGCCSWGetCapabilities-to-ISO19119_ISO19139.xsl OGCSOSGetCapabilitiesLayer-to-19139.xsl OGCSOSGetCapabilities-to-ISO19119_ISO19139.xsl OGCWCSGetCapabilitiesLayer-to-19139.xsl OGCWCSGetCapabilities-to-ISO19119_ISO19139.xsl OGCWFSGetCapabilitiesLayer-to-19139.xsl OGCWFSGetCapabilities-to-ISO19119_ISO19139.xsl OGCWMSGetCapabilitiesLayer-to-19139.xsl OGCWMSGetCapabilities-to-ISO19119_ISO19139.xsl OGCWPSGetCapabilities-to-ISO19119_ISO19139.xsl
When a particular OGC Service type is selected in the OGC WxS harvester, all registered schema directories will be scanned to determine which schemas support harvesting metadata for that particular type and the user will be able to select the target schema to use in the harvester:
Schema specific harvesting is also used in the THREDDS and WFS GetFeature harvesters.
SOS GetCapabilities Harvester
This proposal also adds the option to harvest metadata from an OGC Sensor Observation Service GetCapabilities response to the OGC WxS Harvester, in particular an OGC Sensor Observation Service compliant with version 1.0.0 of the specification.
Under this proposal "OGC Sensor Observation service (1.0.0)" will be added to list of possible OGC WxS service types that can be harvested using this harvester:
When this option is selected, the harvester will harvest service metadata from the GetCapabilities statement returned from the specified SOS endpoint using the service metadata stylesheet for the selected target schema.
Additionally, if the "Create metadata for layer elements using GetCapabilities information" option is selected, the harvester will harvest observation offering metadata for each Observation Offering listed in the GetCapabilities response using the observation offering metadata stylesheet for the selected target schema.
An iso19119/iso19139 service metadata stylsesheet and a sample iso19115/iso19139 observation offering metadata stylesheet is included with this proposal (we will be using the iso19139.mcp mapping to be made available in the schema plugin for this profile).
The mappings for the included transformations are as follows:
Service Metadata
Element | ISO19119 equivalent | GetCapabilities element | Note |
Service metadata | |||
Identifier | gmd:fileIdentifier/gco:CharacterString | ows:Operation[@name='GetCapabilities']/ows:DCP/ows:HTTP/ows:Get/@xlink:href + @version | Uuid generated from Service url + version |
Language | gmd:language/gco:characterString | « eng » | User Input. Default value « eng » |
CharacterSet | gmd:CharacterSet/gmd:MD_CharacterSetCode | « utf8 » | |
HierarchyLevelCode | gmd:hierarchyLevel/gmd:MD_ScopeCode | codeListValue="service" | |
Contact | gmd:contact | cf contact mapping (refer ISO19119impl) | |
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 » | |
CRS | gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/referenceSystemIdentifier/RS_Identifier/code | sos:ObservationOffering/gml:srsName | 4326 if available if not the first one |
transferOptions | gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine | ows:OperationsMetadata/ows:Operation[@name='GetCapabilities']/ows:DCP/ows:HTTP/ows:Get/@xlink:href | |
dataQualityInfo | leave blank | none | |
Service Identfication | |||
Title | gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString | ows:ServiceIdentification/ows:Title | |
Date | gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:dateTime codeListValue=”revision” | Harvesting/Import date | |
Abstract | gmd:abstract/gco:CharacterString | ows:ServiceIdentification/ows:Abstract | |
Status | gmd:status/gmd:MD_ProgressCode | « onGoing » or « completed » | if any gml:endPosition/@indeterminatePosition='now' assign <<onGoing>>, otherwise, use <<completed>> |
Contact | gmd:pointOfContact | cf contact mapping (refer ISO19119impl) | |
Keyword | gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString | ows:keywords/ows:Keyword | « theme » for type |
Service type | srv:serviceType/gco:LocalName codeSpace="www.w3c.org" | « OGC:SOS » | |
Service version | srv:serviceTypeVersion/gco:CharacterString | /ROOT/@version | eg. « 1.0.0 » |
Fees | srv:accessProperties/gmd:MD_StandardOrderProcess/gmd:fees/gco:CharacterString | ows:Fees | |
AccessConstraint | gmd:resourceConstraints/gmd:MD_Constraints/gmd:useLimitation | ows:AccessConstraints | |
Operations | srv:containsOperations/srv:SV_OperationMetadata/srv:operationName/gco:CharacterString | ows:OperationsMetadata/* | cf mapping on operation (refer ISO19119impl) |
OperatesOn | srv:operatesOn/gmd:MD_DataIdentification/@uuidref | metadata uuid for generated MD for ObservationOffering | |
Bounding box | srv:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox | sos:ObservationOffering/gml:boundedBy/gml:Envelope | max upper(nw) and lower (se) of lat/lon values on ObOffering envelopes re-projected to WGS84 |
Temporal extent | srv:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent | sos:ObservationOffering/sos:time | min begin time and max end time of TimePeriods/TimeInstants on ObOffering times |
Link between data and service:
<srv:operatesOn> <gmd:MD_DataIdentification uuid='identifier' xlink:href="link to xml document" xlink:title="Observation offering description"/> </srv:operatesOn>
Root element:
- SOS = sos:Capabilities/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering
- Data metadata root node = /gmd:MD_Metadata
- Service identification node = gmd:identificationInfo/srv:SV_ServiceIdentification
Observation Offering Metadata
Element | ISO19115 equivalent | GetCapabilities element | Notes |
Dataset metadata | |||
Identifier | gmd:fileIdentifier/gco:CharacterString | « uuid » | Random uuid |
Language | gmd:language/gco:characterString | « eng » | User Input. Default value « eng » |
CharacterSet | gmd:CharacterSet/gmd:MD_CharacterSetCode | « utf8 » | |
HierarchyLevelCode | gmd:hierarchyLevel/gmd:MD_ScopeCode | codeListValue="dataset" | |
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:metadataStandardVertsion/gco:CharacterString | « 1.0 » | |
CRS | gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/referenceSystemIdentifier/RS_Identifier/code | gml:srsName | |
dataQualityInfo | leave blank | none | |
Data Identification | |||
Title | gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString | gml:name[1] | |
Identifier | gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:MD_identifier/gmd:code/(gmx:Anchor|gco:CharacterString) | gml:name | if gml:name has a codeSpace attribute use gmx:Anchor with href set to the codeSpace URI otherwise use gco:CharacterString |
Date | gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:dateTime codeListValue=”revision” | Harvesting/Import date | |
Abstract | gmd:abstract/gco:CharacterString | gml:description | |
Purpose | gmd:purpose/gco:CharacterString | sos:intendedApplication | Concatenate multiple intended applications into one string separated by ',' |
Status | gmd:status/gmd:MD_ProgressCode | « onGoing » or « completed » | if gml:endPosition/@indeterminatePosition='now' assign <<onGoing>>, otherwise, use <<completed>> |
Contact | gmd:pointOfContact | cf contact mapping | |
Keywords (theme) | gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString | sos:observedProperty | gmd:MD_KeywordTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" codeListValue="theme" |
Keywords (place) | gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString | sos:featureOfInterest | gmd:MD_KeywordTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" codeListValue="place" |
Topic Category | gmd:topicCategory/gmd:MD_TopicCategoryCode | User Input | |
Bounding box | gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox | gml:boundedBy/gml:Envelope | upper(nw) and lower (se) of lat/lon values on Observation Offering envelopes re-projected to WGS84 |
Temporal extent | gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent | sos:time | |
Sensor | mcp:sensor/xlink:href | sos:procedure | |
Distribution | |||
HTTP Get endpoint | gmd:linkage/gmd:URL | ows:Operation[@name='GetObservation']/ows:DCP/ows:HTTP/ows:Post/@xlink:href | |
gmd:protocol/gco:CharacterString | « OGC:SOS-1.0.0-http-get-observation » | ||
gmd:name/gco:CharacterString | gml:name[1] | Name of the observation offering | |
gmd:description:gcoCharacterString | gml:description | ||
HTTP Post endpoint | gmd:linkage/gmd:URL | ows:Operation[@name='GetObservation']/ows:DCP/ows:HTTP/ows:Post/@xlink:href | |
gmd:protocol/gco:CharacterString | « OGC:SOS-1.0.0-http-post-observation » | ||
gmd:name/gco:CharacterString | gml:name[1] | Name of the observation offering | |
gmd:description:gcoCharacterString | gml:description | ||
GetObservation requests for each response format | gmd:linkage/gmd:URL | ows:Operation[@name='GetObservation']/ows:DCP/ows:HTTP/ows:Get/@xlink:href/ + sos:observedProperty/@xlink:href + sos:responseFormat | One online resource section for each possible response format |
gmd:protocol/gco:CharacterString | « OGC:SOS-1.0.0-http-get-observation » | ||
gmd:name/gco:CharacterString | gml:name[1] + ' (' + sos:responseFormat + ')' | Name of the observation offering + response format | |
gmd:description:gcoCharacterString | gml:description |
Root element:
- SOS = sos:Capabilities/sos:Contents/sos:ObservationOfferingList/sos:ObservationOffering
- Data metadata root node = /gmd:MD_Metadata
- Identification node = gmd:identificationInfo/gmd:MD_DataIdentification
- Distribution node = gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource
Backwards Compatibility Issues
None that I can see
New libraries added
No new libraries required
Risks
Participants
- Vitor Gonçalves - initial SOS Service to iso19119/iso19139 stylesheet
- Kate Roberts - mappings/review
- Simon Pigot - review
- Craig Jones - observation offering mapping/code (Marine and Climate Data Discovery and Access Project (MACDDAP)
Attachments (2)
- target-schema.png (18.7 KB ) - added by 14 years ago.
- SOS-Service-Type-option.png (19.9 KB ) - added by 14 years ago.
Download all attachments as: .zip