ConceptioArchiveOpen Geospatial Consortium (OGC)
Open Geospatial Consortium (OGC)open access

OGC Sensor Observation Service Interface Standard (version 2.0) — OGC 12-006

Open Geospatial Consortium · Open Geospatial Consortium (OGC)
Open Geospatial Consortium (OGC) · Standards · License: Open Access
Open Source ↗Direct PDF ↓
geospatialinterfaceobservationogcogc12opengeospatialconsortiumsensor
ogc, geospatial, standard, open geospatial consortium, sos, ogc sos, 12-006, ogc 12-006, 2.0, sensor, observation, service, interface

Open Geospatial Consortium Approval Date: 2012-04-16

Publication Date: 2012-04-20 Reference number of this document: OGC 12-006 OGC name of this OGC® project document: http://www.opengis.net/doc/IS/SOS/2.0 Version: 2.0 Category: OpenGIS® Implementation Standard Editors:

Arne Bröring (52°North) Christoph Stasch (IfGI) Johannes Echterhoff (iGSI)

OGC® Sensor Observation Service Interface Standard Copyright © 2012 Open Geospatial Consortium. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.

Warning This document is an OGC Member approved international standard. This document is available on a royalty free, non-discriminatory basis. Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.

Document type: Document subtype: Document stage: Document language:

OGC Implementation Standard Interface

Approved English

OGC 12-006 License Agreement Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement. If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR. THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY. This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party. Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications. This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it. None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable

ii

Copyright © 2012 Open Geospatial Consortium

OGC 12-006

Contents

Page

1

Scope ................................................................................................................................... 1

2

Compliance.......................................................................................................................... 1

3

Normative references ..........................................................................................................3

4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8

Terms and definitions .......................................................................................................... 4 Feature ............................................................................................................................ 4 Measurement .................................................................................................................. 5 Observed Property .......................................................................................................... 5 Observation .................................................................................................................... 5 Observation Offering ...................................................................................................... 5 Procedure ........................................................................................................................ 5 Sensor ............................................................................................................................. 5 Sensor System ................................................................................................................ 5

5.1 5.2 5.3 5.4 5.5 5.6

Conventions ......................................................................................................................... 5 Abbreviated terms .......................................................................................................... 5 UML notation .................................................................................................................6 Platform-neutral and platform-specific standards .......................................................... 6 Data dictionary tables ..................................................................................................... 6 Classes imported from other specifications with predefined XML encoding ................ 6 Namespace Conventions ................................................................................................ 8

5

6

Observation Model Overview ............................................................................................. 9

7 7.1 7.2 7.3 7.4

SOS Model Overview ......................................................................................................... 9 Workflow of Observation Retrieval ............................................................................. 11 Workflow of Observation Insertion.............................................................................. 13 Workflow of Result Insertion ....................................................................................... 14 Workflow of Result Retrieval ...................................................................................... 15

8

Requirements Class: Core ................................................................................................. 16 8.1 GetCapabilities Operation ............................................................................................ 18 8.1.1 Request .................................................................................................................... 19 8.1.2 Response .................................................................................................................. 20 8.1.2.1 FilterCapabilities Section ............................................................................................. 22 8.1.2.2 Contents Section ........................................................................................................... 23 8.1.3 Exceptions ............................................................................................................... 28 8.1.4 Examples ................................................................................................................. 28 8.2 DescribeSensor Operation ............................................................................................ 29 8.2.1 Examples ................................................................................................................. 29 8.3 GetObservation Operation ............................................................................................ 29 8.3.1 Request .................................................................................................................... 30 8.3.2 Response .................................................................................................................. 33 8.3.3 Exceptions ............................................................................................................... 35 8.3.4 Examples ................................................................................................................. 36 8.4 Codes ............................................................................................................................ 36 8.4.1 ValueCode ............................................................................................................... 37

ii

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 9

Enhanced Operations Extension ........................................................................................ 38 9.1 Requirements Class: Feature of Interest Retrieval ....................................................... 38 9.1.1 GetFeatureOfInterest Operation .............................................................................. 38 9.1.1.1 Request ......................................................................................................................... 39 9.1.1.2 Response ....................................................................................................................... 41 9.1.1.3 Exceptions .................................................................................................................... 42 9.1.1.4 Examples ......................................................................................................................42 9.2 Requirements Class: Observation Retrieval By ID ...................................................... 43 9.2.1 GetObservationById operation ................................................................................ 43 9.2.1.1 Request ......................................................................................................................... 44 9.2.1.2 Response ....................................................................................................................... 45 9.2.1.3 Exceptions .................................................................................................................... 46 9.2.1.4 Examples ......................................................................................................................46 10 Transactional Extension .................................................................................................... 47 10.1 Requirements Class: InsertionCapabilities ................................................................... 47 10.1.1 InsertionCapabilities Section ................................................................................... 47 10.2 Requirements Class: Sensor Insertion .......................................................................... 48 10.2.1 InsertSensor Operation ............................................................................................ 49 10.2.1.1 Request ......................................................................................................................... 50 10.2.1.2 Response ....................................................................................................................... 50 10.2.1.3 Exceptions .................................................................................................................... 50 10.2.1.4 Examples ......................................................................................................................51 10.3 Requirements Class: Sensor Deletion........................................................................... 51 10.3.1 DeleteSensor Operation ........................................................................................... 51 10.3.1.1 Exceptions .................................................................................................................... 52 10.3.1.2 Examples ......................................................................................................................52 10.4 Requirements Class: Observation Insertion ................................................................. 52 10.4.1 InsertObservation Operation.................................................................................... 53 10.4.1.1 Request ......................................................................................................................... 53 10.4.1.2 Response ....................................................................................................................... 54 10.4.1.3 Exceptions .................................................................................................................... 55 10.4.1.4 Examples ......................................................................................................................56 11 Result Handling Extension ................................................................................................ 56 11.1 Requirements Class: Result Insertion ........................................................................... 56 11.1.1 InsertResultTemplate Operation .............................................................................. 57 11.1.1.1 Request ......................................................................................................................... 58 11.1.1.2 Response ....................................................................................................................... 60 11.1.1.3 Exceptions .................................................................................................................... 61 11.1.1.4 Examples ......................................................................................................................62 11.1.2 InsertResult Operation ............................................................................................. 62 11.1.2.1 Request ......................................................................................................................... 63 11.1.2.2 Response ....................................................................................................................... 64 11.1.2.3 Exceptions .................................................................................................................... 64 11.1.2.4 Examples ......................................................................................................................65 11.2 Requirements Class: Result Retrieval .......................................................................... 65 11.2.1 GetResultTemplate Operation ................................................................................. 67 11.2.1.1 Request ......................................................................................................................... 68 11.2.1.2 Response ....................................................................................................................... 70 11.2.1.3 Exceptions .................................................................................................................... 70

Copyright © 2012 Open Geospatial Consortium.

iii

OGC 12-006 11.2.1.4 Examples ......................................................................................................................72 11.2.2 GetResult Operation ................................................................................................ 72 11.2.2.1 Request ......................................................................................................................... 73 11.2.2.2 Response ....................................................................................................................... 75 11.2.2.3 Exceptions .................................................................................................................... 75 11.2.2.4 Examples ......................................................................................................................76 12 Spatial Filtering Profile ..................................................................................................... 76 12.1 Requirements Class: Spatial Filtering Profile .............................................................. 76 13 Binding Extension ............................................................................................................. 78 13.1 Requirements Class: XML Encoding ........................................................................... 78 13.2 Requirements Class: Core KVP Binding...................................................................... 82 13.2.1 GetCapabilities KVP Binding ................................................................................. 84 13.2.2 DescribeSensor KVP Binding ................................................................................. 84 13.2.3 GetObservation KVP Binding ................................................................................. 86 13.3 Requirements Class: GetFeatureOfInterest KVP Binding ........................................... 89 13.4 Requirements Class: KVP Binding for Result Retrieval .............................................. 91 13.4.1 GetResultTemplate KVP Binding ........................................................................... 91 13.4.2 GetResult KVP Binding .......................................................................................... 92 13.5 Requirements Class: SOAP Binding ............................................................................ 94 13.5.1 Exceptions ............................................................................................................... 94 13.5.1.1 ResponseExceedsSizeLimit exception ......................................................................... 95 13.5.1.2 InvalidPropertyOfferingCombination exception .......................................................... 95 13.5.2 Action URIs ............................................................................................................. 95 13.5.3 SOAP Message Body .............................................................................................. 98 13.5.4 Example ................................................................................................................... 99 14 Annex A – Abstract test suite (normative) ...................................................................... 100 14.1 SOS Core Tests .......................................................................................................... 100 14.1.1 Conformance Class: SOS Core.............................................................................. 100 14.2 SOS Enhanced Operations Extension Tests ............................................................... 112 14.2.1 Conformance Class: SOS Feature of Interest Retrieval......................................... 112 14.2.2 Conformance Class: SOS Observation Retrieval By ID ....................................... 114 14.3 SOS Transactional Extension Tests ............................................................................ 116 14.3.1 Conformance Class: SOS Insertion Capabilities ................................................... 116 14.3.2 Conformance class: SOS Sensor Insertion ............................................................ 117 14.3.3 Conformance Class: SOS Sensor Deletion ............................................................ 119 14.3.4 Conformance Class: SOS Observation Insertion ................................................... 120 14.4 SOS Result Handling Extension ................................................................................. 124 14.4.1 Conformance Class: Result Insertion .................................................................... 124 14.4.2 Conformance Class: Result Retrieval .................................................................... 131 14.5 SOS Spatial Filtering Profile ...................................................................................... 134 14.5.1 Conformance Class: Spatial Filtering Profile ........................................................ 134 14.6 SOS Binding Extension Tests .................................................................................... 135 14.6.1 Conformance Class: XML Encoding..................................................................... 135 14.6.2 Conformance Class: KVP Binding Extension ....................................................... 136 14.6.3 Conformance Class: GetFeatureOfInterest KVP Binding ..................................... 139 14.6.4 Conformance Class: SOAP Binding...................................................................... 140 15 B.1

iv

Annex B - Identifier Handling (informative) .................................................................. 143 Identifying a Procedure .............................................................................................. 143

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 B.2 B.3 B.4 B.5

Identifying an Observation Offering .......................................................................... 144 Identifying an Observed Property............................................................................... 144 Identifying a Feature of Interest ................................................................................. 144 Identifying an Observation ......................................................................................... 145

16 C.1 C.2

Annex C - Phenomena and Units of Measure (informative) ........................................... 145 Identifying and referencing Phenomena and Units of Measure ................................. 145 Describing and defining Phenomena and Units of Measure ...................................... 146

17 Annex D - Relationship to Other OGC Web Service Standards (informative) ............... 147 D.1 Relationship to Web Feature Service ......................................................................... 147

Copyright © 2012 Open Geospatial Consortium.

v

OGC 12-006

Figures

Page

Figure 1: O&M Basic Observation Model .................................................................................. 9 Figure 2: Informative: Dependencies between SOS core, extensions and OGC specification basis ....................................................................................................................................... 10 Figure 3: Operation sequence for observation retrieval .......................................................... 12 Figure 4: Operation sequence for observation insertion ......................................................... 14 Figure 5: Sequence of operations for insertion of results ........................................................ 15 Figure 6: Sequence diagram of result retrieval ........................................................................ 15 Figure 7: Data types of the GetCapabilities operation ............................................................. 18 Figure 8: Data types of Contents section ................................................................................... 24 Figure 9: Data types of GetObservation operation .................................................................. 30 Figure 10: Data types of Codes package.................................................................................... 37 Figure 11: Data types of GetFeatureOfInterest operation ...................................................... 39 Figure 12: Data types of GetObservationById operation ........................................................ 44 Figure 13: Data type of InsertionCapabilities section .............................................................. 47 Figure 14: Data types of InsertSensor operation ...................................................................... 49 Figure 15: Data types of InsertObservation operation ............................................................ 53 Figure 16: Data types of InsertResultTemplate operation ...................................................... 57 Figure 17: Data types of InsertResult operation....................................................................... 63 Figure 18: Constructing a SWE Common DataArray with the contents of a GetResultTemplateResponse and GetResultResponse ..................................................... 67 Figure 19: Data types of GetResultTemplate operation .......................................................... 68 Figure 20: Data types of GetResult operation........................................................................... 72 Figure 17-1. Relationship between SOS and WFS where WFS is providing features of interest ................................................................................................................................. 147 Figure 17-2. Relationship between SOS and WFS where SOS is encapsulating WFS........ 148

Tables

Page

Table 1: Main Requirements classes............................................................................................ 1 Table 2: Requirements classes in Transactional Extension ....................................................... 2 Table 3: Requirements classes in Result Handling Extension ................................................... 2 Table 4: Requirements classes in Enhanced Operations Extension ......................................... 2 Table 5: Requirements classes in Spatial Filtering Profile ........................................................ 2 Table 6: Requirements classes in Binding Extension ................................................................. 3 vi

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 7: XML Schema implementation of types from the SWE Service Model [OGC 09-001] .................................................................................................................................................. 7 Table 8: Implementation of types from OWS Common [OGC 06-121r3] ............................... 7 Table 9: Implementation of types from SWE Common Data Model [OGC 08-094] .............. 7 Table 10: Implementation of types from OGC 09-026R1/ISO 19143 (Filter Encoding Specification) .......................................................................................................................... 8 Table 11: Implementation of types from OGC Abstract Specification Topic 20/ISO 19156.. 8 Table 12: Prefixes and Namespaces used in this standard ........................................................ 8 Table 13: Properties in the GetCapabilities data type ............................................................. 19 Table 14: Additional section names for SOS Capabilities ....................................................... 20 Table 15: Properties in the Capabilities data type ................................................................... 21 Table 16: Properties of Contents data type ............................................................................... 25 Table 17: Properties of ObservationOffering data type .......................................................... 26 Table 18: Inheritance of ObservationOffering properties (from Contents) .......................... 27 Table 19: Properties of GetObservation request data type ..................................................... 31 Table 20: default context for GetObservation request parameters without pre-defined target property ..................................................................................................................... 32 Table 21: default context for GetObservation request parameters with pre-defined target property................................................................................................................................. 33 Table 22: Properties of GetObservationResponse data type ................................................... 35 Table 23: ResponseExceedsSizeLimit Exception ...................................................................... 35 Table 24 – List of some code values used for identifying types defined in a conceptual model ................................................................................................................................................ 38 Table 25: Properties of GetFeatureOfInterest data type ......................................................... 40 Table 26: default context for GetFeatureOfInterest request parameters without pre-defined target property ..................................................................................................................... 41 Table 27: default context for GetFeatureOfInterest request parameters with pre-defined target property ..................................................................................................................... 41 Table 28: Properties of GetFeatureOfInterestResponse data type ......................................... 42 Table 29: Properties of GetObservationById data type .......................................................... 44 Table 30: default context for GetObservationById request parameters with pre-defined target property ..................................................................................................................... 45 Table 31: Properties of GetObservationByIdResponse data type .......................................... 46 Table 32: Properties of InsertionCapabilities data type .......................................................... 48 Table 33 Properties of SosInsertionMetadata data type .......................................................... 50 Table 34: Properties of InsertObservation data type ............................................................... 54

Copyright © 2012 Open Geospatial Consortium.

vii

OGC 12-006 Table 35: Properties of InsertResultTemplate data type ......................................................... 59 Table 36: Properties of ResultTemplate data type ................................................................... 59 Table 37: Properties of InsertResultTemplateResponse data type ......................................... 60 Table 38: Properties of InsertResult data type ......................................................................... 64 Table 39: Properties of GetResultTemplate data type ............................................................. 69 Table 40: default context for GetResultTemplate request parameters with pre-defined target property ..................................................................................................................... 70 Table 41: Properties of GetResultTemplateResponse data type ............................................. 70 Table 42: InvalidPropertyOfferingCombination Exception ................................................... 71 Table 43: Properties of GetResult data type ............................................................................. 73 Table 44: default context for GetResult request parameters without pre-defined target property................................................................................................................................. 74 Table 45: default context for GetResult request parameters with pre-defined target property................................................................................................................................. 75 Table 46: Properties of GetResultResponse data type ............................................................. 75 Table 47: XML schema implementation of types defined by this standard ........................... 79 Table 48 – Mapping of OCL like expression to identify the target of a filter property to the according XPath expression for the XML encoding ......................................................... 81 Table 49: DescribeSensor request KVP encoding .................................................................... 85 Table 50: GetObservation request KVP encoding ................................................................... 86 Table 51: GetFeatureOfInterest request KVP encoding ......................................................... 89 Table 52: GetResultTemplate request KVP encoding ............................................................. 91 Table 53: GetResult request KVP encoding.............................................................................. 92 Table 54: Action URIs for SOS message facets ........................................................................ 97 Table 55: Action URI for SOS exceptions / fault types ............................................................ 98

i.

Abstract

The SOS standard is applicable to use cases in which sensor data needs to be managed in an interoperable way. This standard defines a Web service interface which allows querying observations, sensor metadata, as well as representations of observed features. Further, this standard defines means to register new sensors and to remove existing ones. Also, it defines operations to insert new sensor observations. This standard defines this functionality in a binding independent way; two bindings are specified in this document: a KVP binding and a SOAP binding.

viii

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

ii.

Preface

This standard defines the interface of the Sensor Observation Service, hereinafter abbreviated as SOS. The SOS is one of a family of OGC standards that make up the OGC Sensor Web Enablement framework [OGC 06-021r4], hereinafter know as SWE. The functionality of the SOS within SWE is to provide standardized access to measured sensor observations as well as sensor descriptions. To encode observations, the Observations & Measurements (O&M) standard is used. To encode sensor descriptions, the Sensor Model Language (SensorML) is used. The SOS 2.0 builds on the previous SOS 1.0 efforts. Suggested additions, changes, and comments on this document are welcome and encouraged. Such suggestions may be submitted by email message, or by making suggested changes in an edited copy of this document. If you choose to submit suggested changes or enhancements, please use the OGC online change request application: http://portal.opengeospatial.org/public_ogc/change_request.php The previous versions, including version 1.0 [OGC 06-009r6], are deprecated by this standard. A tutorial describing the utilization of this standard through examples and explanatory text can be found at: http://www.ogcnetwork.net/SOS_2_0/tutorial

iii.

Changes to Previous Version

This SOS 2.0 standard improves SOS 1.0 [OGC 06-009r6] by incorporating the following major changes: 

Reduced complexity through clearer structuring in Core, Extensions and Profiles.

By applying the modular specifications policy [OGC 08-131r3], the implementation of the standard is facilitated. Clear listings of requirements and derived conformance tests also provide better support for CITE testing.

Increased interoperability through minimum requirements: o

Certain operators and operands for temporal and spatial filters of GetObservation, GetFeatureOfInterest and GetResult have to be supported as a minimum by each SOS server which supports temporal or spatial filters.

o

The “Spatial Filtering Profile” considerably improves the spatial filter of observations in the GetObservation and GetResult operations.

KVP binding: SOS 2.0 defines a simple key-value-pair binding for HTTP GET.

SOAP binding: SOS 2.0 defines a SOAP binding for all its operations.

Copyright © 2012 Open Geospatial Consortium.

ix

OGC 12-006

iv.

Alignment with other SWE standards by relying on and reusing data types defined in the SWE Service Model [OGC 09-001].

Improved concept for observation offerings: SOS 2.0 defines that each observation offering is limited to be associated with only a single procedure. This solves the ambiguity of SOS 1.0 of grouping observations from multiple procedures to offerings.

Improved handling of information on hosted observation offerings through application of property inheritance mechanism (defined by OGC 09-001) to decrease the amount of redundant information.

The Capabilities document of SOS 2.0 lists related features instead of all features of interest. The related features are selected by the service provider and serve discovery purposes.

The parameterization of the GetFeatureOfInterest operation is extended. Procedure, observed property and spatial operators are now allowed as filter parameters

The handling of observation results is revised and extended. A new operation InsertResult now also allows the efficient upload of plain result values.

The operations DescribeObservationType, DescribeResultType, and DescribeFeatureType have been removed since the types of features, observations and results are identified by URIs in SOS 2.0 and these URIs are known and are resolvable.

Document terms and definitions

This document uses the standard terms defined in Subclause 5.3 of [OGC 06-121r3], which is based on the ISO/IEC Directives, Part 2. Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.

v.

Submitting organizations

The following organizations submitted this document to the Open Geospatial Consortium Inc. a) 52° North Initiative for Geospatial Open Source Software GmbH b) University of Muenster – Institute for Geoinformatics (IfGI) c) International Geospatial Services Institute GmbH (iGSI)

x

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

vi.

Document contributor contact points

All questions regarding this document should be directed to the editor or the contributors: CONTACT Arne Bröring Christoph Stasch Johannes Echterhoff Peter Taylor Luis Bermudez Alex Robin Jeff de La Beaujardière Tom Ingold Carsten Hollmann Simon Cox

vii.

viii.

COMPANY 52°North IfGI, University of Münster iGSI CSIRO OGC Spot Image NOAA SAIC 52°North CSIRO

EMAIL Broering<at>52north.org Staschc<at>uni-muenster.de johannes.echterhoff<at>igsi.eu peter.taylor<at>csiro.au Lbermudez<at>opengeospatial.org alexandre.robin<at>spotimage.fr jeff.deLaBeaujardiere<at>noaa.gov thomas.b.ingold<at>saic.com c.hollmann<at>52north.org simon.cox<at>csiro.au

Revision history Date

Release

Editor

2012-01-06

1.0.0

Arne Bröring, Christoph Stasch, Johannes Echterhoff

Primary clauses modified -

Description

final draft for adoption vote

Changes to the OGC Abstract Specification

The OGC® Abstract Specification does not require changes to accommodate the technical contents of this document.

ix.

Future work

This version of the SOS interface defines a SOAP binding for all specified operations as well as a KVP binding for the core operations, the GetFeatureOfInterest operation, as well as the result handling operations. Future versions or extensions of this standard may add a RESTful binding similar to what has been defined by Janowicz et al. (2011)1.

1 Krzysztof Janowicz, Arne Bröring, Christoph Stasch, Sven Schade, Thomas Everding & Alejandro Llaves (2011): A RESTful proxy and data model for linked sensor data. International Journal of Digital Earth. doi: 10.1080/17538947.2011.614698

Copyright © 2012 Open Geospatial Consortium.

xi

OGC 12-006

x.

Acknowledgements

This work has been financially supported by the ERDF program for NRW (contract number N 114/2008), as well as the EC funded projects “Earth Observation and Environmental Modelling for the Mitigation of Health Risks—EO2Heaven” (contract number 244100), “Emergency Support System—ESS” (contract number 217951), and “Uncertainty Enabled Model Web— UncertWeb“ (contract number 248488).

xii

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Foreword This version of the SOS standard deprecates OGC standard [OGC 06-009r6]. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights. Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

Copyright © 2012 Open Geospatial Consortium.

xiii

OGC 12-006

Introduction The Sensor Observation Service (SOS) provides a standardized interface for managing and retrieving metadata and observations from heterogeneous sensor systems. Sensor systems contribute the largest part of geospatial data used in geospatial systems today. Sensor systems include for example in-situ sensors (e.g. river gauges), moving sensor platforms (e.g. satellites or unmanned aerial vehicles) or networks of static sensors (e.g. seismic arrays). Used in conjunction with other OGC specifications the SOS provides a broad range of interoperable capability for discovering, binding to and interrogating individual sensors, sensor platforms, or networked constellations of sensors in real-time, archived or simulated environments. The SOS is part of the OGC Sensor Web Enablement (SWE) framework of standards [OGC 06021r4]. The SWE activity aims at providing interfaces and protocols for enabling “Sensor Webs” through which applications and services are able to access sensors of all types. Sensor Webs can be accessed over networks such as the Internet with the same standard technologies and protocols that enable the Web. SOS 2.0 relies on the OGC Observations and Measurements (O&M) [OGC Abstract Specification Topic 20 10-004r3/ISO 19156:2010] standard to encode data gathered by sensors.

xiv

Copyright © 2012 Open Geospatial Consortium.

OpenGIS® Interface Standard

OGC 12-006

OGC® Sensor Observation Service Implementation Standard

1

Scope

This OpenGIS® document specifies the interface standard of the Sensor Observation Service 2.0 (SOS). This standard specifies how observations, sensor descriptions, as well as computational representations of observed features are accessed in an interoperable and standardized way. As such, this OGC document is applicable to use cases in which sensor data needs to be managed in an interoperable way. Further, this standard defines means to register new sensors and to remove existing ones. This standard also defines operations to insert new observations as well as to efficiently insert and retrieve observation result values. This standard specifies SOS functionality in a binding independent way. Mappings for two bindings are specified: a KVP binding and a SOAP binding.

2

Compliance

The standardization targets of this standard are SOS 2.0 Web Server implementations. The following tables list the requirements classes defined by this standard. Annex A lists the conformance tests which shall be exercised on any software artifact claiming to adhere to the SOS 2.0 standard. Table 1: Main Requirements class Requireme nts class name

Requirements class identifier

Core

http://www.opengis.net/ spec/SOS/2.0/req/core

Operation or behavior The server implements the following operations: GetCapabilities, DescribeSensor, and GetObservation.

Copyright © 2012 Open Geospatial Consortium.

1

OGC 12-006 Table 2: Requirements classes in Transactional Extension Requireme nts class name

Requirements class identifier

Operation or behavior

Insertion Capabilities Sensor Insertion Sensor Deletion Observation Insertion

http://www.opengis.net/spec/ SOS/2.0/req/insertionCap http://www.opengis.net/spec/ SOS/2.0/req/sensorInsertion http://www.opengis.net/spec/ SOS/2.0/req/sensorDeletion http://www.opengis.net/spec/ SOS/2.0/req/obsInsertion

The server provides metadata on its capabilities regarding the insertion of new sensors/observations. The server implements the InsertSensor operation. The server implements the DeleteSensor operation. The server implements the InsertObservation operation.

Table 3: Requirements classes in Result Handling Extension Requireme nts class name

Requirements class identifier

Operation or behavior

Result Insertion

http://www.opengis.net/spec/ SOS/2.0/req/resultInsertion

The server implements the operations InsertResult and InsertResultTemplate.

Result Retrieval

http://www.opengis.net/spec/ SOS/2.0/req/resultRetrieval

The server implements the operations GetResult and GetResultTemplate.

Table 4: Requirements classes in Enhanced Operations Extension Requireme nts class name

Requirements class identifier

Operation or behavior

Observation Retrieval By Id FeatureOfInte rest Retrieval

http://www.opengis.net/spec/SOS /2.0/req/obsByIdRetrieval

The server implements the GetObservationById operation.

http://www.opengis.net/spec/SOS /2.0/req/foiRetrieval

The server implements the GetFeatureOfInterest operation.

Table 5: Requirements classes in Spatial Filtering Profile Requireme nts class name

Requirements class identifier

Operation or behavior

Spatial Filtering Profile

http://www.opengis.net/spec/SOS /2.0/req/spatialFilteringProfile

The server implements the Spatial Filtering Profile to improve spatial filtering of observations in GetObservation and GetResult (if supported) operations.

2

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 6: Requirements classes in Binding Extension Requirements class identifier

Operation or behavior

XML Encoding SOAP Binding Core KVP Binding

http://www.opengis.net/spec /SOS/2.0/req/xml http://www.opengis.net/spec /SOS/2.0/req/soap http://www.opengis.net/spec /SOS/2.0/req/kvp-core

GetFeatureOf Interest KVP Binding Result Retrieval KVP Binding

http://www.opengis.net/spec /SOS/2.0/req/kvpfoiRetrieval http://www.opengis.net/spec /SOS/2.0/req/kvp-result

The server encodes the data types from the conceptual model in XML as defined by this standard. The server wraps XML encoded requests and results within SOAP Envelopes for the operations it supports. The server implements the key-value pair encoding for the operations GetCapabilities, DescribeSensor, and GetObservation. The server implements the key-value pair encoding for the operation GetFeatureOfInterest.

Requireme nts class name

3

The server implements the key-value pair encoding for the GetResult and GetResultTemplate operations.

Normative references

This OGC SOS 2.0 standard consists of the present document and an XML Schema. The complete standard is identified by OGC URI: http://www.opengis.net/spec/SOS/2.0 the document has OGC URI http://www.opengis.net/doc/IS/SOS/2.0. The complete standard is available for download from http://www.opengeospatial.org/standards/sos. In addition, the XML Schema is posted online at http://schemas.opengis.net/sos/2.0 as part of the OGC schema repository. In the event of a discrepancy between bundled and schema repository versions of the XML Schema files, the schema repository is considered authoritative. The following normative documents contain provisions that, through reference in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies. IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax ISO 8601:2000, Data elements and interchange formats — Information interchange — Representation of dates and times ISO 19107:2003, Geographic information — Spatial schema ISO 19108:2002, Geographic information — Temporal schema

Copyright © 2012 Open Geospatial Consortium.

3

OGC 12-006 ISO 19136:2007, Geographic information — Geography Markup Language (GML)2 ISO 19143:2010, Geographic information — Filter Encoding3 ISO 19156:2011, Geographic information — Observations and Measurements4 OGC Abstract Specification Topic 20 - Geographic Information: Observations and Measurements. Version 2.0.0. OGC document 10-004r3. http://www.opengis.net/doc/om/2.0 OGC® Policy Standard, The Specification Model - A Standard for Modular specifications, Version 1.0.0, OGC document 08-131r3. http://www.opengis.net/doc/modular-spec/1.0 OpenGIS® Encoding Standard, Geography Markup Language, Version 3.2.1, OGC document 07-036. http://www.opengis.net/doc/gml/3.2.1 OpenGIS® Encoding Standard, SWE Common Data Model, Version 2.0, OGC document 08094. http://www.opengis.net/doc/swe/2.0 OpenGIS® Encoding Standard, SensorML Version 1.0 Schema - Corrigendum 1, Version 1.0.1, OGC document 07-022r2. http://www.opengis.net/doc/sensorml/1.0 OpenGIS® Implementation Standard, Observations and Measurements - XML Implementation, Version 2.0, OGC document 10-025. http://www.opengis.net/doc/omxml/2.0 OpenGIS® Implementation Standard, SWE Service Model, Version 2.0, OGC document 09-001. http://www.opengis.net/doc/swes/2.0 OpenGIS® Implementation Standard, OGC Web Services Common, Version 1.1.0, OGC document 06-121r3. http://www.opengis.net/doc/ows/1.1 OpenGIS® Best Practice, OGC® Sensor Web Enablement Architecture, Version 0.4, OGC document 06-021r4. http://www.opengis.net/doc/swe-architecture/0.4

4

Terms and definitions

For the purposes of this standard, the definitions specified in Clause 4 of the OWS Common Implementation Specification [OGC 06-121r3]. In addition, the following terms and definitions apply. 4.1

Feature

Abstraction of real-world phenomena [OGC 10-004r3/ISO 19156]. 2 Equivalent to: OpenGIS® Geography Markup Language (GML) Encoding Standard, Geography Markup Language,

Version 3.2.1, OGC document 07-036. http://www.opengis.net/doc/gml/3.2.1 3 Equivalent to: OpenGIS Filter Encoding 2.0 Encoding Standard. Version 2.0.0. OGC document 09-026r1. 4 Equivalent to: OGC Abstract Specification Topic 20 - Geographic Information: Observations and Measurements. Version 2.0.0. OGC document 10-004r3. http://www.opengis.net/doc/om/2.0

4

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 4.2

Measurement

Set of operations having the object of determining the value of a quantity [OGC 10-004r3/ISO 19156]. 4.3

Observed Property

Facet or attribute of an object referenced by a name [OGC 10-004r3/ISO 19156] which is observed by a procedure. 4.4

Observation

Act of observing a property [OGC 10-004r3/ISO 19156]. 4.5

Observation Offering

An Observation Offering groups collections of observations produced by one procedure, e.g., a sensor system, and lists the basic metadata for the associated observations including the observed properties of the observations. 4.6

Procedure

Method, algorithm, instrument, sensor, or system of these which may be used in making an observation. [OGC 10-004r3/ISO 19156] NOTE: As the definition of procedure states, this standard uses that term as a generalization of, for example, the terms sensor and sensor system, but also for simulations or other calculations that may produce observations.

4.7

Sensor

Entity that provides information about an observed property as its output. A sensor uses a combination of physical, chemical or biological means in order to estimate the underlying observed property. At the end of the measuring chain electronic devices produce signals to be processed. [OGC 06-021r4] 4.8

Sensor System

System whose components are sensors. A sensor system as a whole may itself be referred to as a sensor with an own management and sensor output interface. In addition, the components of a sensor system are individually addressable. [OGC 06-021r4]

5

Conventions

5.1

Abbreviated terms

Most of the abbreviated terms listed in Subclause 5.1 of the OWS Common Implementation Specification [OGC 06-121r3] apply to this document, plus the following abbreviated terms. GML

Geography Markup Language

ISO

International Organization for Standardization

Copyright © 2012 Open Geospatial Consortium.

5

OGC 12-006 OCL

Object Constraint Language

OGC

Open Geospatial Consortium

OWS

OGC Web Services

O&M

Observations and Measurements

SensorML

Sensor Model Language

SOS

Sensor Observation Service

SWE

Sensor Web Enablement

UML

Unified Modeling Language

XML

eXtensible Markup Language

5.2

UML notation

Diagrams that appear in this standard are presented using the Unified Modeling Language (UML) static structure diagram, as described in Subclause 5.2 of [OGC 06-121r3]. NOTE

5.3

Packages and data types from foreign namespaces are shown with grey background.

Platform-neutral and platform-specific standards

For compliance with Clause 10 of [OGC Topic 12] and [ISO 19119], this standard follows the pattern defined in Subclause 5.4 of [OGC 06-121r3]. That is, model elements are specified in platform-neutral fashion first, using tables that serve as data dictionaries for the UML model (see Subclause 5.4 of this document). Platform-specific encodings of these model elements are provided in separate clauses or documents. The XML Schema encoding has automatically been generated using the mapping rules defined in [OGC 09-001]. This document specifies a platform-specific encoding for a SOAP operation binding and a KVP binding over HTTP. The model as well as its XML Schema encoding (and other data) can also be used to create other bindings such as a REST(ful) or POX (Plain Old XML) over HTTP (using plain XML). 5.4

Data dictionary tables

The UML model data dictionary is specified herein in a series of tables. The contents of the columns in these tables are described in Table 1 of [OGC 06-121r3]. 5.5

Classes imported from other specifications with predefined XML encoding

This standard uses an automatic mapping approach from the UML model to the XML Schema encoding. The approach is described in [OGC 09-001]. This standard uses types defined by other standards. For the mapping to XML Schema, the implementation instructions listed in Table D.2 of [OGC 07-036] are used together with the instructions listed in Table 7 to Table 11 in this standard.

6

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Some of the properties defined in the conceptual model of this standard which point to objects rather than directly containing them are encoded as described in Subclause 24.2.4.11 of [OGC 09001]. An XML Schema implementation for these types is therefore not needed in this section. For an explanation of the table columns, see Subclause D.2.1 of [OGC 07-036]. Table 7: XML Schema implementation of types from the SWE Service Model [OGC 09-001]

UML class

object element

type

property type

AbstractContents

swes:AbstractContent s

swes:AbstractContentsTy pe

swes:AbstractContentsProper tyType

AbstractOffering

swes:AbstractOffering

swes:AbstractOfferingTy pe

swes:AbstractOfferingProper tyType

ExtensibleRequest

swes:ExtensibleReque st

swes:ExtensibleRequestT ype

swes:ExtensibleRequestProp ertyType

ExtensibleRespons e

swes:ExtensibleRespo nse

swes:ExtensibleResponse Type

swes:ExtensibleResponsePro pertyType

InsertionMetadata

swes:InsertionMetadat a

swes:InsertionMetadataT ype

swes:InsertionMetadataPrope rtyType

Table 8: Implementation of types from OWS Common [OGC 06-121r3]

UML class

object element

type

property type

GetCapabilities

-

ows:GetCapabilitiesType

-

OWSServiceMetadata

-

ows:CapabilitiesBaseType

-

Table 9: Implementation of types from SWE Common Data Model [OGC 08-094]

UML class

object element

type

property type

AbstractDataCom ponent

swe:AbstractDataCo mponent

swe:AbstractDataCompo nentType

swe:AbstractDataComponentP ropertyType

AbstractEncoding

swe:AbstractEncodin g

swe:AbstractEncodingTy pe

swe:AbstractEncodingPropert yType

Copyright © 2012 Open Geospatial Consortium.

7

OGC 12-006 Table 10: Implementation of types from OGC 09-026r1/ISO 19143 (Filter Encoding Specification)

UML class

object element

type

property type

Filter_Capabilities

fes:Filter_Capabilities

-

-

SpatialOperator

fes:spatialOps

fes:SpatialOpsType

-

TemporalOperator

fes:temporalOps

fes:TemporalOpsType

-

Table 11: Implementation of types from OGC Abstract Specification Topic 20/ISO 19156

UML class

object element

type

property type

GFI_Feature

gml:AbstractFeature

gml:AbstractFeatureType

gml:AbstractFeaturePropertyType

5.6

Namespace Conventions

This standard uses a number of namespace prefixes throughout; they are listed in Table 12. Note that the choice of any namespace prefix is arbitrary and not semantically significant. Table 12: Prefixes and Namespaces used in this standard

Prefix

8

Namespace

fes

http://www.opengis.net/fes/2.0

gml

http://www.opengis.net/gml/3.2

om

http://www.opengis.net/om/2.0

ows

http://www.opengis.net/ows/1.1

soap11

http://schemas.xmlsoap.org/soap/

soap12

http://www.w3.org/2003/05/soap-envelope

sos

http://www.opengis.net/sos/2.0

swe

http://www.opengis.net/swe/2.0

swes

http://www.opengis.net/swes/2.0

wsa

http://www.w3.org/2005/08/addressing

xs

http://www.w3.org/2001/XMLSchema

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 6

Observation Model Overview

SOS is primarily designed to provide access to observations. The model for Observations and Measurements (O&M) is defined in the O&M standard [OGC 10-004r3/ISO 19156]. An XML encoding of this conceptual model is defined in the OGC O&M standard [OGC 10-025r1]. The basic Observation model is depicted in Figure 1. «metaclass» GF_FeatureType «FeatureType» OM_Process

+theGF_FeatureType

1

«instanceOf»

1

«FeatureTyp... GFI_Feature

+procedure

MD_Metadata

1 ProcessUsed

+metadata

0..1

+featureOfInterest Domain

Metadata

+propertyValueProvider 0..*

«FeatureType» OM_Observ ation + + + + +

+carrierOfCharacteristics 0..* «metaclass» GF_PropertyType {root}

Phenomenon

«instanceOf»

+generatedObservation 0..*

+ +

constraints {observedProperty shall be a phenomenon associated with the type of the feature of interest} {procedure shall be suitable for observedProperty} {result type shall be suitable for observedProperty} {a parameter.name shall not be used more than once}

1 «Type» GFI_PropertyType +observedProperty

«DataType» NamedValue

phenomenonTime: TM_Object resultTime: TM_Instant validTime: TM_Period [0..1] resultQuality: DQ_Element [0..*] parameter: NamedValue [0..*]

name: GenericName value: Any

+relatedObservation 0..*

0..* Range Observ ationContext +result +

role: GenericName

«type» Any {root}

Figure 1: O&M Basic Observation Model

An Observation provides a result whose value is an estimate of a property of the observation target, the feature of interest; i.e. an observation is a property-value-provider for the feature of interest. An instance of an Observation is classified by its phenomenonTime, featureOfInterest, observedProperty, and the procedure used. The procedure is usually a sensor but can also be for example a computation or post-processing step. More detailed information about the observation data model can be found in [OGC 10-004r3/ISO 19156].

7

SOS Model Overview

As shown in Figure 2, the Core of the SOS 2.0 defined in Clause 8 builds up on certain specifications such as the OWS Common 1.1.0 [OGC 06-121r3], SWE Service Model 2.0 [OGC

Copyright © 2012 Open Geospatial Consortium.

9

OGC 12-006 09-001] and Filter Encoding [ISO 19143:2010] to define the service operations and O&M 2.0 [ISO 19156:2010] is used as a mandatory response format for observations. Based on the Core, extensions can be defined to add further functionality. This document contains the following extensions, the Transactional Extension (Clause 10), Result Handling Extension (Clause 11), the Enhanced Operations Extension (Clause 8.4), and the Binding Extension (Clause 13). Further, this document contains the profile Spatial Filtering Profile (Clause 12). Future extensions may specify additional functionality. Future profiles, in particular for certain domains (e.g. hydrology or oceanography) may further restrict the SOS to increase and facilitate interoperability in those communities.

Figure 2: Informative: Dependencies between SOS core, extensions and OGC specification basis

The SOS Core requirements class defines three operations: GetCapabilities - provides access to metadata and detailed information about the operations available by an SOS server. DescribeSensor - enables querying of metadata about the sensors and sensor systems available by an SOS server. GetObservation - provides access to observations by allowing spatial, temporal and thematic filtering.

10

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Further, this document defines extensions of the SOS core which specify additional operations as listed below. NOTE: The “extension” concept is an informative means used to structure this specification document. Extensions contain the formally defined requirements classes.

Enhanced Operations Extension: GetObservationByID - provides access to observations from an SOS by passing only the ID of an observation. GetFeatureOfInterest - provides direct access to the features of interest for which the SOS offers observations. Transactional Extension: InsertSensor – allows registration of new sensors at the SOS. DeleteSensor – allows the deletion of registered sensors and all their associated observations. InsertObservation – allows the insertion of observations in an SOS server. Result Handling Extension: InsertResult - allows the insertion of observation results in an SOS server. Before inserting, it is necessary that a template with observation metadata exists in the server. InsertResultTemplate - allows the insertion of an observation template, containing the observation metadata and structure of the results. This operation is necessary for later insertion of observation results. GetResultTemplate - provides access to a template containing the structure of results returned by later invocation of the GetResult operation. GetResult - provides access to an observation result without the observation metadata and without the information about the structure of the results. The following sections describe the interaction with the SOS to retrieve and insert observations, and to retrieve and insert results (no observation metadata). The operations to support these interactions are defined in the Core and extensions of this document. 7.1

Workflow of Observation Retrieval

Figure 3 and the following descriptions illustrate the sequence of operation calls to obtain and interpret observations from an SOS. 1. To obtain an up-to date listing of available data a client issues a GetCapabilities request to the server.

Copyright © 2012 Open Geospatial Consortium.

11

OGC 12-006 2. It may then issue a DescribeSensor request to find out further details about particular procedures associated with the SOS. 3. The client may also call the GetFeatureOfInterest operation to get the detailed description of a particular feature, or to get a list of all features of interest for specified spatial filters, observed properties or procedures. The information returned by the GetFeatureOfInterest operation may be used by the client to choose appropriate parameters for the GetObservation call. 4. The client issues the GetObservation request and retrieves the observations. SOS Client

GetCapabilities() :service metadata

opt [detailed procedure description required] DescribeSensor(procedure) :procedure description

opt [feature descriptions required] GetFeatureOfInterest() :features

GetObservation() :observations

Figure 3: Operation sequence for observation retrieval

12

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 7.2

Workflow of Observation Insertion

As illustrated in Figure 4, a sensor data producer first requests the service metadata before new observations can be inserted into an SOS. 1. The service metadata is retrieved by invoking the GetCapabilities operation (Subclause 8.1). The returned Capabilities document contains, within the Contents section (Subclause 8.1.2.2), the procedures which are registered at the SOS. The InsertionCapabilities section (Clause10.1.1) lists the observation types and result types which are supported by the SOS for insertion. 2. If it has not been registered at the SOS, the InsertSensor operation (Subclause 10.2.1) is called to insert the procedure description of the observation procedure. The SOS returns the identifier of the ObservationOffering to which the procedure has been assigned as well as the identifier5 which has been assigned for the procedure itself. 3. Finally, the observation can be inserted using the InsertObservation operation, by specifying the ObservationOffering to which it shall be uploaded.

5 See Annex 15 for a detailed discussion of identifier handling.

Copyright © 2012 Open Geospatial Consortium.

13

OGC 12-006

Figure 4: Operation sequence for observation insertion

7.3

Workflow of Result Insertion

An SOS may support the Result Insertion requirements class. It contains two operations, InsertResultTemplate (Subclause 11.1.1) and InsertResult (Subclause 11.1.2), which allow inserting sensor results into an SOS without the need to repeatedly transmit the complete set of observation metadata. The operations can be used, if the metadata contained in the produced observations remain the same. This is useful if the communication bandwidth and processing power of the sensor data producer is limited. Figure 5 depicts the sequence of operation calls for the insertion of results into an SOS. 1. The service metadata is retrieved by invoking the GetCapabilities operation (Subclause 8.1). The returned Capabilities document contains, within the Contents section (Subclause 8.1.2.2), the procedures which are registered at the SOS. The InsertionCapabilities section (Clause10.1.1) lists the observation types and result types which are supported by the SOS for insertion. 2. If it has not been registered at the SOS, the InsertSensor operation (Subclause 10.2.1) is called to insert the procedure description of the observation procedure. The SOS returns the ObservationOffering to which the procedure has been assigned. 3. A result template is sent to the SOS by using the InsertResultTemplate operation. This result template contains observation metadata for the results, the ObservationOffering to which the data shall be uploaded, and a structural description of the results. 4. The sensor data producer inserts the results without sending the whole observation metadata and by referencing the inserted result template.

14

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

SOS Sensor Data Producer

GetCapabilities() :service metadata

opt [observation procedure not yet registered] InsertSensor(observableProperty, procedureDescription, SosInsertionMetadata) :assigned offering and inserted procedure

InsertResultTemplate(ResultTemplate) :ResultTemplate

InsertResult(resultValues, ResultTemplate)

Figure 5: Sequence of operations for insertion of results

7.4

Workflow of Result Retrieval

An SOS may support the Result Retrieval requirements class. It contains two operations, GetResultTemplate (Subclause 11.2.1) and GetResult (Subclause 11.2.2), for the retrieval of observation results without the complete set of observation metadata. The purpose of the Result Retrieval requirements class is to allow clients to repeatedly obtain sensor data without having to send and receive requests and responses that largely contain the same data except for a new timestamp. A client can repeatedly request sensor data from one or more sensors on a recurring basis. This is in particular useful in scenarios with restricted bandwidth or clients with restricted processing power. Figure 6 and the following descriptions illustrate the operation sequence for result retrieval. 1. The client invokes the GetResultTemplate operation to retrieve the resultStructure and the resultEncoding which will be used by the SOS in later GetResult operation responses. 2. The client calls the GetResult operation and retrieves result values. SOS Client

GetResultTemplate(observedProperty, offering) :resultStructure, resultEncoding

GetResult(observedProperty, offering, featureOfInterest, spatialFilter, temporalFilter) :resultValues

Figure 6: Sequence diagram of result retrieval

Copyright © 2012 Open Geospatial Consortium.

15

OGC 12-006 8

Requirements Class: Core

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/core Target Type

Web Service

Dependency

urn:iso:ts:iso:19156:clause:6

Dependency

http://www.opengis.net/doc/IS/OWS/1.1/clause/7

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/7

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/9

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/15

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/request-service

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/request-version

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-ows

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-version

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-sections

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-version

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-conf-class-listing

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-operation-listing

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-spatialFilter-listing

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/spatial-filter-minimum

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-temporalFilter-listing

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/temporal-filter-minimum

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-offerings-observations

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-contents

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-contents-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-observationoffering-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-offering-identifier

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-property-inheritance-mechanism

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-format-om20

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-observation-result-type

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/ds

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-omitting-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-filter-context

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-default-response-format

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-response-format

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-response-type

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-empty-response

16

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-response-elements-type

Requirements Class (continued) http://www.opengis.net/spec/SOS/2.0/req/core Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-observation-duplicates

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-too-many-obs-exception

In this clause, the SOS core operations GetCapabilities, DescribeSensor, and GetObservation are specified. GetCapabilities - provides access to metadata and detailed information about the operations available by an SOS server. DescribeSensor - provides access to detailed information about the sensors and sensor systems available by an SOS server. GetObservation - provides access to observations from sensors and sensor systems selected by spatial, temporal and thematic filtering. The SOS operations follow the general pattern of other OGC Web Services and where appropriate inherit or re-use elements defined by the OWS Common standard [OGC 06-121r3] and the SWE Service Model standard [OGC 09-001]. All request and response types defined in this standard (except the GetCapabilities request and response which are based on [OGC 06-121r3]) are derived from the ExtensibleRequest or ExtensibleRepsonse type, respectively, as defined in OGC 09-001. Each request and response type defines an optional extension property, a container for request parameters that can be defined by an extension. This standard defines the following general requirements applying to ALL operations defined in the following (except where explicitly negated): Requirement http://www.opengis.net/spec/SOS/2.0/req/core/request-service Requirement 1 For ALL SOS request types defined in this standard, a mandatory service parameter specifies the OWS type abbreviation of the implementing service. It is of type CharacterString and shall have the fixed value “SOS”.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/request-version

Copyright © 2012 Open Geospatial Consortium.

17

OGC 12-006

Requirement 2 For ALL SOS request types defined in this standard except the request type of the GetCapabilities operation, a mandatory version parameter specifies the service type specification. It is of type CharacterString and shall have the fixed value “2.0.0”.

8.1

GetCapabilities Operation

This operation allows clients to retrieve the service metadata (also called the “Capabilities” document) of an SOS server. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc Requirement 3 Clause.

Every SOS server shall support the GetCapabilities operation as defined in this

The conceptual model of the GetCapabilities operation is shown in the following UML diagram.

Figure 7: Data types of the GetCapabilities operation

18

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 8.1.1

Request

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-ows Requirement 4 The GetCapabilities operation request shall be implemented as specified in Clause 7 of OWS Common [OGC 06-121r3].

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-version Requirement 5 If the AcceptVersions parameter is contained in the request, it shall contain the character string “2.0.0”.

The SOS GetCapabilities data type derives from the OWS Common GetCapabilities data type (listed in Table 3 of [06-121r3]) and thus inherits all the properties contained in that data type. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-request-structure Requirement 6 In addition to the properties inherited from OWS Common GetCapabilities, the SOS GetCapabilities shall include the properties according to Table 13

Table 13: Properties in the GetCapabilities data type

Name extension

service

Definition

Data type and values

Multiplicity and use

container for elements Any type Zero or more (optional) defined by extension value is defined by the specifications extension specification Character String type, Zero or one (optional) service type identifier not empty default value is “SOS” value shall be “SOS”

NOTE: the request property – derived from OWS Common GetCapabilities type – is explicit or implied by each specific binding of the GetCapabilities operation, so is not necessarily part of the request representation defined by that binding.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-sections Requirement 7 The allowed set of values for the sections parameter shall be as specified in Table 10 of [OGC 06-121r3], with the additions listed in Table 14 below.

Copyright © 2012 Open Geospatial Consortium.

19

OGC 12-006 NOTE: additional sections can be added by extensions; this is done for example by the InsertionCapabilities requirements class (clause 10.1).

Table 14: Additional section names for SOS Capabilities Section name Contents FilterCapabilities

8.1.2

Meaning The Contents section of the SOS service metadata document contains information about the data offered by the SOS server (Subclause 8.1.2.2). The FilterCapabilties section of the SOS service metadata document contains information about the supported filters (Subclause 8.1.2.1)

Response

The response to a GetCapabilities operation request is also called the Capabilities document. This document provides clients with service metadata about a specific service instance, including metadata about the data served. This clause defines the required elements in a SOS 2.0 Capabilities document. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-response Requirement 8

If the GetCapabilities request is valid, the server shall return an instance of the SOS

Capabilities type else the server shall respond with an exception.

The SOS Capabilities data type derives from the OWS Common OWSServiceMetadata data type (as defined in clause 7.4.2 of [06-121r3]) and thus inherits all the properties contained in that data type.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-structure Requirement 9 In addition to the properties inherited from OWS Common OWSServiceMetadata, the SOS Capabilities shall include the properties according to Table 15

20

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 15: Properties in the Capabilities data type

Name contents

Definition

Data type and values

metadata about the Contents, see Table 16 observations and procedures hosted by the service

Multiplicity and use Zero or one (optional) inclusion depends on the values in the Sections parameter of the GetCapabilities operation request Zero or more (optional)

container for elements Any type defined by extension value is defined by the specifications extension specification filterCapabilit metadata about the Filter_Capabilities, see Zero or one (optional) ies supported filter OGC 09-026r1/ISO inclusion depends on the functionality 19143 values in the Sections parameter of the GetCapabilities operation request extension

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-version Requirement 10 The default version of the Capabilities document returned by a service implementing this standard shall be “2.0.0”.

The ServiceIdentification, ServiceProvider, and OperationsMetadata sections of the GetCapabilities response document are defined in [OGC 06-121r3]. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-conf-class-listing Requirement 11 The Capabilities document shall advertise conformance classes which are supported by the server. Therefore, each value of the Profile property of the ServiceIdentification section shall be the pointer to a conformance class, and the server shall pass all tests defined for each listed conformance class. NOTE

Typically, such conformance classes will be specified in SOS extensions.

NOTE Conformance classes from implemented specification (e.g. OGC Filter Encoding Specification or OMXML) should also be listed. NOTE Inherited conformance classes are listed in the Profile property as well. For example, even though the InsertObservation conformance class has a dependency on the InsertionCapabilities class, both conformance classes are listed rather than just the InsertObservation class.

The OperationsMetadata section specified in [OGC 06-121r3] lists the request types supported by an SOS server. For the SOS Core, these are GetCapabilities, DescribeSensor, and GetObservation; extensions may add further request types to this list.

Copyright © 2012 Open Geospatial Consortium.

21

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-operation-listing Requirement 12 The Capabilities document shall include an OperationsMetadata section which contains three Operation elements with case-sensitive name values “GetCapabilities”, “DescribeSensor”, and “GetObservation”. All other operations supported by the SOS server and defined in extensions shall be listed in the same way.

The following subclauses define the sections of the SOS Capabilities document which are added by this standard, the FilterCapabilities and the Contents section. 8.1.2.1

FilterCapabilities Section

The FilterCapabilities section is imported from [OGC 09-026r1/ISO 19143] and used to state which filter operators and operands are supported by an SOS server. The operators and operands refer to the parameters of service operations that include OGC filter expressions, like the GetObservation operation. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-spatialFilter-listing Requirement 13 The Capabilities document shall include a FilterCapabilities section which lists the spatial filter operators and operands that are supported by the service as defined in section 7.14.5 of [OGC 09-026r1/ISO 19143].

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/spatial-filter-minimum Requirement 14 Each SOS shall at least support the spatial filter operator BBOX and shall advertise this in the Capabilities document.

Example 1 An SOS which supports the spatial operator BBOX for the geometry operand gml:Point would list this as shown in the example at http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1_response.xml

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-temporalFilter-listing Requirement 15 The Capabilities document shall include a FilterCapabilities section which lists the temporal filter operators and operands that are supported by the service as defined in section 7.14.6 of [OGC 09-026r1/ISO 19143].

22

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/temporal-filter-minimum Requirement 16 Each SOS shall at least support the following temporal filter operators: a. TEquals operator in conjunction with the TimeInstant type. b. During operator in conjunction with the TimePeriod type. An SOS shall advertise the supported filter operators in the Capabilities document.

Example 2 An SOS which supports the temporal operators TEquals and During for the temporal operands gml:TimeInstant and gml:TimePeriod would list these as shown in the example at http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1_response.xml

8.1.2.2

Contents Section

The Contents section of the GetCapabilities response describes the data offered by an SOS server. To group the offered observations the SOS defines the concept of ObservationOfferings. The Contents type lists all ObservationOfferings of an SOS server. An ObservationOffering groups collections of observations produced by one procedure, e.g., a sensor system6. The ObservationOffering lists the basic metadata for the associated observations including the observed properties of the observations. An observation may belong to more than one ObservationOffering. To summarize: there is a 1:n relationship between procedures and ObservationOfferings; there is a n:m relationship between observations created by these procedures and ObservationOfferings. NOTE: Observations are usually associated with ONE offering. However, observations from one sensor may be assigned to multiple offerings - a 1:n relationship is allowed. This may be done for the purpose of grouping pre-filtered observations. This way functionality is given which allows grouping of observations according to some thematic criteria. An example is the grouping of severe and all weather forecast observations from the same sensor system into two offerings.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-offerings-observations Requirement 17 The observations grouped by an ObservationOffering shall not have been created by a procedure other than the one that is stated by the ObservationOffering.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-contents Requirement 18 If requested the Capabilities document shall include a section of type Contents as defined in this sub-clause. 6 A sensor system can be a simple thermometer, but can also consist of several sub-systems. So, a valid sensor system can be a system of sensors attached to a weather station, or it can be a network of spatially distributed sensors.

Copyright © 2012 Open Geospatial Consortium.

23

OGC 12-006

Figure 8: Data types of Contents section

The SOS Contents type derives from the SWES AbstractContents type defined in [OGC 09001] and inherits its properties. Those inherited properties are (see clause 7.2.1 in [OGC 09-001] for details): 

procedureDescriptionFormat - the identifier of a specific procedure/sensor description

format. 

24

observableProperty - the pointer to a property that can be observed by a procedure, not necessarily a property that has already been observed.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 

relatedFeature

offering - contains metadata about a procedure/sensor hosted by the service.

- feature that is directly or indirectly observed/observable by a procedure; can be any feature of which the service provider thinks the procedure can make valuable observations for.

NOTE: Related features are NOT necessarily features of interest (and associated with observations). The listing of a related feature can be used for discovery purposes by the service provider. The related feature can for example be the Gulf of Mexico in case an SOS serves data measured by sensors that are carried by marine drifters in the Gulf of Mexico area. Especially in such cases of mobile sensors, it is not reasonable to list all features of interest (= the sampling locations) as related features, since the Capabilities document would grow too big over time.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-contents-structure Requirement 19 In addition to the properties inherited from SWES AbstractContents, the SOS Contents shall include the properties according to Table 16

Table 16: Properties of Contents data type Name

Definition

responseFormat

Identifies the response format supported for observation retrieval. Identifies the type of features of interest associated with the observations provided by the service. Identifies the type of observation (with unique result type) which is used by the service to encode observations.

featureOfInterest Type observationType

Data type and values FormatCode see OGC 09-001 ValueCode see clause 8.4.1

Multiplicity

ValueCode see clause 8.4.1

Zero or many7 (optional)

Zero or many (optional) Zero or many (optional)

The SOS ObservationOffering type derives from the SWES AbstractOffering type defined in OGC 09-001 and inherits all its properties. Those inherited properties are (see clause 7.2.2 in [OGC 09-001] for details): 

procedure - Pointer to the procedure/sensor associated with this offering.

As well as, procedureDescriptionFormat, observableProperty, and relatedFeature as already described above.

7 The design decision for specifying the multiplicity as “zero or many” instead of “zero or one” is that there may be many observable properties per ObservationOffering. Each one could use a different observation type or result type. However, a known issue is that the relation between observable property and observation / result type cannot be reflected in the Capabilities. The description of the procedure associated with a given ObservationOffering may provide more detailed information on this relationship.

Copyright © 2012 Open Geospatial Consortium.

25

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-observationoffering-structure Requirement 20 In addition to the properties inherited from SWES AbstractOffering, the SOS ObservationOffering shall include the properties according to Table 17

Table 17: Properties of ObservationOffering data type Name

Definition

phenomenonTime

temporal bounding box of the phenomenon times of all observations belonging to the offering

resultTime

temporal bounding box of the result times of all observations belonging to the offering

observedArea

spatial bounding box of the spatial extent GM_Envelope of all features of interest that belong to see [ISO 19107] observations associated with the offering As defined in Table 16. As defined in Table 16. As defined in Table 16.

responseFormat featureOfInterestType observationType

Data type and values TM_Period see [ISO 19108]

TM_Period see [ISO 19108]

Multiplicity and use Zero or one (optional) omit only if the offering has no observations associated to it Zero or one (optional) omit only if the offering has no observations associated to it Zero or one (optional)

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-offering-identifier Requirement 21 The service shall assign a unique identifier value to each of its ObservationOfferings8. This value shall be set in the swes:identifier property that each ObservationOffering automatically has (see [OGC 09-001] for further details).

For the purpose of reducing the amount of redundant information in the Capabilities document, the SOS supports a so-called property inheritance mechanism as defined in [OGC 09-001]. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-property-inheritance-mechanism

8 See Annex 15 for a detailed discussion of identifier handling.

26

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement 22 The ObservationOffering is a property inheritor and the Contents its property provider as defined by OGC 09-001. The service shall ensure that the number of values it provides for the properties of each offering is as stated in Table 18 when the property inheritance mechanism was applied.

The following table shows which of the properties of an ObservationOffering can be inherited and which cardinality is expected after the inheritance mechanism has been applied. Clients need to apply the SWES property inheritance mechanism according to the inheritance categories defined for the ObservationOffering properties in Table 18 when determining their values (for a given offering).

Table 18: Inheritance of ObservationOffering properties (from Contents)

Number9

Inheritance

observableProperty

1..*

replace

procedure

1

no

procedureDescriptionFormat

1..*

replace

relatedFeature

0..*

replace

featureOfInterestType

1..*

replace

observationType

1..*

replace

observedArea

0..1

no

phenomenonTime

0..1

no

responseFormat

1..*

replace

resultTime

0..1

no

Property

Thus, even though the UML model and schema encoding define, for example, the observationType and responseFormat properties as optional, they are mandatory in each ObservationOffering. In other words, each offering has to include at least one value for these two properties after the property inheritance mechanism was applied. As O&M v2.0 XML encoding (OMXML 2.0) is the only mandatory format for observation data at a SOS 2.0: Requirement

9 The design decisions for specifying those multiplicities are the following: The observableProperty, procedureDescriptionFormat, featureOfInterestType, and observationType are required as this information needs to be provided in the InsertSensor request and thus has to be provided even if no observations are assigned to the ObservationOffering yet (and even if the InsertSensor operation is not implemented). The responseFormat is required as Requirement 23 states that the default response format must be listed explicitly. The phenomenonTime/resultTime is omitted if no observation has been associated to the offering yet. This would for example be the case right after a new sensor was inserted at the service.

Copyright © 2012 Open Geospatial Consortium.

27

OGC 12-006

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response-format-om20 Requirement 23 The responseFormat of each ObservationOffering shall have at least the value http://www.opengis.net/om/2.0.

Other response formats may be supported as well. However, the way how such formats are supported needs to be described in a specific extension to this document. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-observation-result-type Requirement 24 The observation type identifiers listed in the observationType property of an ObservationOffering shall identify an observation type with unique result type, i.e. a unique combination of OM_Observation (or derived type) and one specific type that the result of the observation is provided in.

8.1.3

Exceptions

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/gc-exception Requirement 25 When an SOS server encounters an error while performing a GetCapabilities operation, it shall return an exception message encoded as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 1. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001. Listing 1: exception codes applicable to the GetCapabilities operation

MissingParameterValue

InvalidParameterValue

VersionNegotiationFailed

InvalidUpdateSequence

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

8.1.4

Examples

Example 3 An example request of the XML implementation of this operation can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1.xml

28

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Example 4 An example response of the XML implementation of this operation can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetCapabilities1_response.xml

8.2

DescribeSensor Operation

The DescribeSensor operation enables the retrieval of metadata descriptions of procedures (or: sensors) associated with an SOS. While the response to a GetCapabilities request lists procedures associated with the SOS the DescribeSensor operation can be used subsequently to retrieve detailed definitions for the listed procedures. The definition of this operation can be found in Clause 11 of [OGC 09-001]. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/ds Requirement 26 Every SOS server shall support the DescribeSensor operation as defined in Clause 11 of [OGC 09-001]. When targetting procedures hosted by the SOS, the service attribute in the DescribeSensor request shall have the value “SOS” and the version attribute shall have the value “2.0.0”.

8.2.1

Examples

Example 5 An example request of the XML implementation of this operation can be found here: http://schemas.opengis.net/sos/2.0/examples/core/DescribeSensor1.xml

8.3

GetObservation Operation

The GetObservation operation is designed to query an SOS to retrieve observation data structured according to the O&M specification. Other response formats are possible; however, O&M is the default and mandatory format for every SOS server. Several parameters of the GetObservation operation allow extensive filtering of the observations requested from the SOS server. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go Requirement 27

Every SOS server shall support the GetObservation operation as defined here.

The conceptual model of the GetObservation operation is shown in the following UML diagram.

Copyright © 2012 Open Geospatial Consortium.

29

OGC 12-006

Figure 9: Data types of GetObservation operation

8.3.1

Request

A GetObservation operation request contains parameters that constrain the observations to be retrieved from a SOS. This sub-clause describes the requirements to make a valid GetObservation request. The GetObservation data type is derived from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-request-structure Requirement 28 In addition to the properties inherited from SWES ExtensibleRequest, the SOS GetObservation operation request type shall include the properties according to Table 19.

The concrete representation of this structure depends on the chosen protocol binding. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-parameters Requirement 29 The SOS returns all observations that match the specified parameter values. The filter parameters (e.g., observedProperty, procedure, or temporalFilter) shall be connected with an implicit AND. The values of each of the parameters shall be connected with an implicit OR.

30

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-omitting-parameters Requirement 30 If an optional parameter of a GetObservation request is not included in the request, the filter (represented by the parameter) shall not be applied to the observation set which will be returned by the SOS server.

For example, in consequence of Requirement 30, an SOS server returns observations of all time to the client if the temporal filter is omitted. NOTE: An implementation of an SOS server may return an exception message as specified in Clause 15 of [OGC 09-001] if the response of a GetObservation request would be too big to be reasonably sent to a client.

Example 6 Resulting from Requirement 29 and Requirement 30 an abstract GetObservation request looks like this:

GetObservation ( AND AND

featureOfInterest observedProperty procedure

:= weatherstation_in_my_backyard := temperature := thermometerX OR anemometerY)

This request returns the observations of all offerings, all time and all spatial extent, and which were made for the feature of interest “weather_station_in_my_backyard”, and which carry results for the observed property “temperature” and were made by the sensor “thermometerX” or “anemometerY”.

Table 19: Properties of GetObservation request data type Name

Definition

Data type and values

procedure

Pointer to a procedure for which observations are requested. It defines a filter for the procedure property of the observations. Pointer to an ObservationOffering advertised in the Capabilities document for which observations are requested. Pointer to an observedProperty for which observations are requested.

OM_Process id see [OGC 10-004r3/ISO 19156]

offering

observedProperty

temporalFilter

Specifies a filter for a time property of requested observations. This property is defined in the valueReference element of the TemporalOperator.

Multiplicity and use Zero or many (Optional)

ObservationOffering id see Table 17

Zero or many10 (Optional)

GFI_PropertyType id see [OGC 10-004r3/ISO 19156] TemporalOperator see [OGC 09-026r1/ISO 19143]

Zero or many (optional) Zero or many (Optional)

10 The design decision for specifying the multiplicity “zero or many” instead of “one or many” is that a client might

want to request all observations for a particular observedProperty (or featureOfInterest, procedure etc.).

Copyright © 2012 Open Geospatial Consortium.

31

OGC 12-006

Name

Definition

Data type and values

featureOfInterest

Pointer to a feature of interest for which observations are requested.

spatialFilter

Specifies a filter11 which applies to a spatial property of an observation. This property is defined in the valueReference element of the SpatialOperator. Identifier of desired responseFormat for the requested observations. The supported responseFormats are listed in the ObservationOffering.

GFI_Feature id see [OGC 10-004r3/ISO 19156] SpatialOperator see [OGC 09-026r1/ISO 19143]

responseFormat

FormatCode see OGC 09-001

Multiplicity and use Zero or many (Optional) Zero or one (Optional)

Zero or one (optional)

Default is O&M 2.0 [OGC If not provided, default value is 10-004r3/ISO 19156] assumed. identified by the value http://www.opengis .net/om/2.0 id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details.

NOTE Observations returned by the SOS might be encoded with different observation types and result types. For the client, such responses are difficult to parse. This issue is not addressed here. It might be solved in future through an extension which allows requesting only certain observation / result types. However, such a mechanism would put the burden of observation / result type transformation on the SOS server.

It is necessary to establish a linkage between the GetObservation request model and the underlying SOS data model. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-filter-context The default context for the ValueReferences used in the expression of a filter operator (see OGC 09026r1/ISO 19143 for further details) for the GetObservation request parameters that do not have a predefined target property and operator for filtering shall be as defined in Requirement 31 Table 20. The default context for GetObservation request parameters that have a predefined target property shall be as defined in Table 21.

Table 20: default context for GetObservation request parameters without pre-defined target property

Filter Property

Context for ValueReference in filter operator

temporalFilter

OM_Observation

spatialFilter

OM_Observation

11 A profile of this generic spatialFilter is given in Clause 12. This profile restricts the spatialFilter so that it is applied to the sampling location parameter of the observations. Those observations need to conform to the requirements class “Spatial Observation Data” defined in [OGC 10-025] Subclause 7.13.

32

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Table 21: default context for GetObservation request parameters with pre-defined target property

Filter Property

Target property operator

for

PropertyIsEqualTo

offering

Capabilities.contents.offering

observedProperty

OM_Observation.observedProperty

procedure

OM_Observation.procedure

featureOfInterest

OM_Observation.featureOfInterest

comparison

NOTE in an XML based SOS implementation the filter context can be defined via XPath expressions – see Table 48 in Subclause 13.1. Example 7 The SOS receives a GetObservation request that filters the returned observations based upon a given offering by pointing to the object Offering12849 (of type ObservationOffering). The service determines whether that specific object is contained in the set of offerings listed in the Capabilities’ contents section of the service. If the offering is contained, then the service will include the observations that belong to it in the GetObservationResponse. Example 8 The SOS receives a GetObservation request that filters returned observations based upon a given features of interest by pointing to FeatureA and FeatureB (both of type GFI_Feature). The service will include only those observations in the response which have FeatureA or FeatureB as value of their featureOfInterest property.

8.3.2

Response

This sub-clause describes the requirements on a SOS 2.0 service in responding to a GetObservation request. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-default-response-format Requirement 32 An SOS server shall be able to return the requested observations encoded as O&M 2.0 [OGC 10-004r3/ISO 19156]. O&M 2.0 is the default response format for the GetObservation operation and shall be returned in the response if no other specific responseFormat was specified in the request.

NOTE: in SOS version 1.0, the GetObservation operation was sometimes used to not only retrieve observations that match the request criteria – which is the default behavior of the operation also in SOS 2.0 - but also to subset the observation result, only listing the (typically SWE Common encoded) components that match the observedProperty values provided in the request. As the SOS 2.0 is not tied to a specific result format, it does not perform such subsetting and re-structuring. According behavior can be defined via additional conformance classes, as an extension to the SOS 2.0 core. The extension points offered in SWES ExtensibleRequest and ExtensibleResponse data types can support such functionality.

Copyright © 2012 Open Geospatial Consortium.

33

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-response-format Requirement 33 The SOS server shall respond in the specified responseFormat. If the response format specified by the client is not supported an exception message shall be returned with the exception code “InvalidParameterValue” and the locator value ”responseFormat”.

The SOS GetObservationResponse data type derives from the SWES ExtensibleResponse data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-response-type Requirement 34 If O&M 2.0 [OGC 10-004r3/ISO 19156] is returned by an SOS server, the response shall contain an instance of the GetObservationResponse type. In addition to the properties inherited from SWES ExtensibleResponse, GetObservationResponse shall include the properties according to Table 22.

the SOS

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-empty-response Requirement 35 An instance of GetObservationResponse type shall be empty if none of the observations associated with the SOS fulfill the GetObservation parameters specified by the client.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-response-elements-type Requirement 36 If the GetObservation response contains observations, the observationData elements shall be of type OM_Observation as defined in [OGC 10-004r3/ISO 19156] or subtypes of OM_Observation.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-observation-duplicates Requirement 37 A response to a GetObservation request shall not contain observation duplicates. Even if multiple ObservationOfferings are requested and an observation belongs to more than one ObservationOffering, then the GetObservation response shall not list such an observation twice.

34

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 22: Properties of GetObservationResponse data type Name

Definition

observationData

Observation which fulfills the GetObservation request.

8.3.3

Data type and values OM_Observation (see [OGC 10004r3/ISO 19156])

Multiplicity and use Zero or many (optional)

Exceptions

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-exception Requirement 38 When an SOS server encounters an error while performing a GetObservation operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 2. The meaning of each exception code shall be as defined in OGC 06-121r3, OGC 09-001 and Table 23.

Requirement http://www.opengis.net/spec/SOS/2.0/req/core/go-too-many-obs-exception Requirement 39 A GetObservation request can result in a huge observation result set. If an SOS server implementation needs to prevent the delivery of such result sets to the client, since it would result in a response that is too big, the SOS server shall return an exception message as specified in Clause 15 of [OGC 09-001] with exception code, meaning and “locator” value as defined in Table 23. Note: If the client receives a ResponseExceedsSizeLimit exception as response to a GetObservation request, it should try to split the set of requested observations into smaller chunks and query them via a number of GetObservation requests with according parameters. For example, the request could apply a temporal partitioning via the GetObservationRequest.temporalFilter property. The service may also support additional operations to retrieve metadata about the stored observations, for example for which time ranges observations were generated by a given procedure.

Table 23: ResponseExceedsSizeLimit Exception exceptionCode value ResponseExceedsSize Limit

Meaning of code

“locator” value

The service determined that the requested None, omit “locator” parameter result set exceeds the response size limit of the service and thus cannot be delivered.

Listing 2: exception codes applicable to the GetObservation operation

MissingParameterValue

InvalidParameterValue

OptionNotSupported

Copyright © 2012 Open Geospatial Consortium.

35

OGC 12-006 

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

ResponseExceedsSizeLimit

8.3.4

Examples

Example 9 An example request and response of the XML implementation of the GetObservation operation with a specified observedProperty and temporalFilter can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps.xml http://schemas.opengis.net/sos/2.0/examples/core/GetObservation1_obsProps_response.xml Example 10 An example request and response of the XML implementation of the GetObservation operation with a specified observedProperty and procedure can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetObservation2_obsProps_Procedure.xml http://schemas.opengis.net/sos/2.0/examples/core/GetObservation2_obsProps_Procedure_response.xml Example 11 An example request and response of the XML implementation of the GetObservation operation with a specified observedProperty, procedure and featureOfInterest can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetObservation3_foiIDFilter.xml http://schemas.opengis.net/sos/2.0/examples/core/GetObservation3_foiIDFilter_response.xml Example 12 An example request and response of the XML implementation of the GetObservation operation with a specified observedProperty, procedure and spatialFilter can be found here: http://schemas.opengis.net/sos/2.0/examples/core/GetObservation4_spatialFilter.xml http://schemas.opengis.net/sos/2.0/examples/core/GetObservation4_spatialFilter_response.xml

8.4

Codes

SOS makes use of code values in several places, for example for identifying the format that observations can be provided in but also which conceptual types for representing features of interest, observations and observation results are supported. This standard reuses code types defined by the SWE Service Model [OGC 09-001] but also uses additional code types that are defined in the following. The conceptual model of the Codes package is shown in the following UML diagram.

36

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Figure 10: Data types of Codes package

The ValueCode code list shown in the diagram is empty because it defines an unlimited set of possible code values. The details of each code list contained in the package as well as some example code values will be explained in the following. 8.4.1

ValueCode

This code list is modeled after the code lists defined in the Common Codes package of the SWE Service Model [OGC 09-001]. As such, all code values assigned to it are URIs. Requirement http://www.opengis.net/spec/SOS/2.0/req/core/co-valuecodes Requirement 40 All code values identifying some type defined in a given conceptual model (either directly or via a direct mapping) shall be added to the ValueCode code list. These code values shall be URIs.

There are several ways to identify a type that is defined in a conceptual model: 

The model itself could have assigned a unique identifier to that type. Example: http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_ComplexObservation

The type can be uniquely identified via a combination of the namespace of the model, the full path to the package that contains the type and the type’s name. Example: http://www.isotc211.org/19103/2003/BasicTypes/Derived/UnitsOfMeasure/Measure, http://www.isotc211.org/19103/2003/BasicTypes/Primitive/Truth/Boolean

There is some direct mapping between the conceptual model and some implementation encoding, for example an XML encoding, and the mapped type can be uniquely identified in that encoding. In an XML encoding this could then be the combination of the XML namespace and the element name (or, if that is not available, the complex/simple type name) assigned to the type. Example: http://www.opengis.net/swe/2.0/Quantity, http://www.opengis.net/gml/3.2/measure

The following table lists some code values for the ValueCode list together with their definition and meaning. Extensions to this specification can define additional codes.

Copyright © 2012 Open Geospatial Consortium.

37

OGC 12-006 Table 24 – List of some code values used for identifying types defined in a conceptual model Value code value http://www.opengis.net/def/observationType/OGCOM/2.0/OM_Measurement

Definition/Meaning O&M Observation whose result type is a measure NOTE: OGC 10-025 Table 5 lists URIs to identify other observation types (most of which have a well-defined result type) defined in the O&M model

http://www.opengis.net/swe/2.0/DataArray

the DataArray type defined by SWE Common [OGC 08-094]

http://www.opengis.net/def/samplingFeatureType/OGC- the SF_SamplingPoint type defined by OM/2.0/SF_SamplingPoint O&M NOTE: OGC 10-025 Table 6 lists URIs to identify other sampling feature types defined in the O&M model

9

Enhanced Operations Extension

9.1

Requirements Class: Feature of Interest Retrieval

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/omitting-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/filter-context

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/response-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/empty-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/exception

9.1.1

GetFeatureOfInterest Operation

The GetFeatureOfInterest operation allows clients to retrieve certain features of interest of observations. NOTE: the GetFeatureOfInterest operation resembles the GetResult operation in the sense that it only returns a certain property of selected observations – the feature of interest.

The conceptual model of the GetFeatureOfInterest operation is shown in the following UML diagram.

38

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Figure 11: Data types of GetFeatureOfInterest operation

9.1.1.1

Request

The SOS GetFeatureOfInterest data type derives from the SWES ExtensibleRequest type defined in OGC 09-001 and inherits its properties.

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/request-structure Requirement 41 Requirement 42 Requirement 43

Table 25

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/parameters Requirement 44 Upon receipt of a GetFeatureOfInterest request, the SOS shall return the features of interest of all observations that match the specified request parameter values. The request parameters shall be connected with an implicit AND. The values of each of the parameters are connected with an implicit OR.

Copyright © 2012 Open Geospatial Consortium.

39

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/omitting-parameters Requirement 45 If an optional parameter of a GetFeatureOfInterest request is not specified by the client, the filter (represented by that parameter) shall not be applied to the feature set which will be returned by the SOS server. : An implementation of an SOS server may return an exception message as specified in Clause 15 of [OGC 09-001] if the response of a GetFeatureOfInterest request would be too big to be reasonably sent to a client.

Example 13 Resulting from Requirement 44 and Requirement 45 an example abstract GetFeatureOfInterest request looks like this:

GetFeatureOfInterest ( observedProperty AND procedure

:= temperature := thermometerX OR anemometerY)

This request returns all features of interest of all spatial extent, which carry the property “temperature” and are observed by the sensor “thermometerX” or “anemometerY”.

Table 25: Properties of GetFeatureOfInterest data type Name

Definition

Data type and values

procedure

Pointer to a procedure which is observing the feature of interest.

OM_Process id see [OGC 10004r3/ISO 19156] GFI_PropertyType id see [OGC 10004r3/ISO 19156] GFI_Feature id see [OGC 10004r3/ISO 19156]

observedProperty

Multiplicity and use Zero or many (optional)

Pointer to a property that was Zero or many observed regarding the feature of (optional) interest. featureOfInterest Pointer to a specific feature of Zero or many interest (used to restrict the set of (optional) all possibly returned features of interest to a specific set) spatialFilter Specifies a filter which applies to a SpatialOperator Zero or many spatial property of the requested see [OGC 09(optional) features. This property is defined in 026r1/ISO 19143] the valueReference element of the SpatialOperator. id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling.

It is necessary to establish a linkage between the GetFeatureOfInterest request model and the underlying SOS data model.

Requirement

40

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/filter-context Requirement 46 The default context for the ValueReferences used in the expression of a filter operator (see OGC 09-026r1/ISO 19143 for further details) for the GetFeatureOfInterest request parameters that do not have a pre-defined target property and operator for filtering shall be as defined in Table 26. The default context for GetFeatureOfInterest request parameters that have a pre-defined target property shall be as defined in Table 27. Table 26: default context for GetFeatureOfInterest request parameters without pre-defined target property

Filter Property

Context for ValueReference in filter operator

spatialFilter

OM_Observation

Table 27: default context for GetFeatureOfInterest request parameters with pre-defined target property

Filter Property

Target property operator

for

PropertyIsEqualTo

observedProperty

OM_Observation.observedProperty

procedure

OM_Observation.procedure

featureOfInterest

OM_Observation.featureOfInterest

comparison

NOTE: in an XML based SOS implementation the filter context can be defined via XPath expressions – see Table 48 in Subclause 13.1.

9.1.1.2

Response

The

SOS GetFeatureOfInterestResponse data type derives from ExtensibleResponse data type defined in OGC 09-001 and inherits its properties.

the

SWES

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/response-structure Requirement 47

In addition to the properties inherited from SWES ExtensibleResponse, the SOS GetFeatureOfInterestResponse shall include the property according to Table 28.

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/empty-response

Copyright © 2012 Open Geospatial Consortium.

41

OGC 12-006

Requirement 48 An instance of GetFeatureOfInterestResponse type shall be empty if none of the (features of interest associated to) observations stored by the SOS fulfill the GetFeatureOfInterest parameters specified by the client.

Table 28: Properties of GetFeatureOfInterestResponse data type Name

Definition

Data type and values

featureMember

Feature of interest of observations matching the request parameters specified by the client.

GFI_Feature (see [OGC 10004r3/ISO 19156])

9.1.1.3

Multiplicity and use Zero or many (optional)

Exceptions

Requirement http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/exception Requirement 49 When an SOS server encounters an error while performing a GetFeatureOfInterest operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 3. The meaning of each exception code shall be as defined in OGC 06-121r3, OGC 09-001 and Table 23 in this document. Listing 3: exception codes applicable to the GetFeatureOfInterest operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

ResponseExceedsSizeLimit

9.1.1.4

Examples

Example 14 An example request of the XML implementation of the GetFeatureOfInterest operation with a specified observedProperty and procedure can be found here: http://schemas.opengis.net/sos/2.0/examples/enhancedOperations/GetFOI1.xml Example 15 An example request of the XML implementation of the GetFeatureOfInterest operation with specified featureOfInterest can be found here:

42

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 http://schemas.opengis.net/sos/2.0/examples/enhancedOperations/GetFOI2.xml Example 16 An example request of the XML implementation of the GetFeatureOfInterest operation with a specified observedProperty and spatialFilter can be found here: http://schemas.opengis.net/sos/2.0/examples/enhancedOperations/GetFOI3.xml

9.2

Requirements Class: Observation Retrieval By ID

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/filter-context

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/response-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/response-behavior

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/empty-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/exception

9.2.1

GetObservationById operation

The GetObservationByID operation allows the client to retrieve an observation by passing a pointer12 to that observation. The conceptual model of the GetObservationByID operation is shown in the following UML diagram.

12 See Annex 15 for a discussion on pointer / identifier handling.

Copyright © 2012 Open Geospatial Consortium.

43

OGC 12-006

Figure 12: Data types of GetObservationById operation

9.2.1.1

Request

The SOS GetObservationById data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/request-structure Requirement 50

In addition to the properties inherited from SWES ExtensibleRequest, the SOS GetObservationById shall include the property according to Table 29.

Table 29: Properties of GetObservationById data type Name

Definition

Data type and values

Multiplicity and use One or many (mandatory)

OM_Observation id see [OGC 10004r3/ISO 19156] id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling. observation

Pointer to the observation which shall be returned.

It is necessary to establish a linkage between the GetObservationById request model and the underlying SOS data model.

44

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/gobi/filter-context Requirement 51 The default context for the ValueReferences used in the expression of a filter operator (see OGC 09-026r1/ISO 19143 for further details) for the GetObservationById request parameters that have a pre-defined target property shall be as defined in Table 30. Table 30: default context for GetObservationById request parameters with pre-defined target property

Filter Property

Target property operator

observation

OM_Observation

for

PropertyIsEqualTo

comparison

NOTE: in an XML based SOS implementation the filter context can be defined via XPath expressions – see Table 48 in Subclause 13.1.

9.2.1.2

Response

GetObservationByIdResponse data type derives from ExtensibleResponse data type defined in OGC 09-001 and inherits its properties.

The

SOS

the

SWES

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/response-structure Requirement 52

In addition to the properties inherited from SWES ExtensibleResponse, the SOS GetObservationByIdResponse shall include the property according to Table 31.

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/response-behavior Requirement 53 The GetObservationById operation response shall contain O&M observations that have a gml:identifier value equal to one of the values of the observation parameter provided in the operation request.

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/empty-response Requirement 54 An instance of GetObservationByIdResponse type shall be empty if none of the observations associated with the SOS fulfill the GetObservationById parameter specified by the client.

Copyright © 2012 Open Geospatial Consortium.

45

OGC 12-006

Table 31: Properties of GetObservationByIdResponse data type Name

Definition

Data type and values

observation

O&M Observation matching one of the values of the observation request parameter specified by the client.

OM_Observation see [OGC 10004r3/ISO 19156]

9.2.1.3

Multiplicity and use Zero or many (optional)

Exceptions

Requirement http://www.opengis.net/spec/SOS/2.0/req/gobi/exception Requirement 55 When an SOS server encounters an error while performing a GetObservationById operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 4. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001. Listing 4: exception codes applicable to the GetObservationById operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

9.2.1.4

Examples

Example 17 An example request of the XML implementation of the GetObservationById operation can be found here: http://schemas.opengis.net/sos/2.0/examples/enhancedOperations/GetObservationById.xml

46

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 10 Transactional Extension 10.1

Requirements Class: InsertionCapabilities

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/insertionCap Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Requirement

http://www.opengis.net/spec/SOS/2.0/req/insertionCap/structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/insertionCap/capabilities-inclusion

10.1.1 InsertionCapabilities Section The InsertionCapabilities section states which feature types, observation types, and result types are supported by the SOS server for the insertion of new data. It is needed by the Sensor Insertion (Subclause 10.2), Observation Insertion (Subclause 10.4), and Result Insertion (Subclause 11.1) requirements classes. Requirement http://www.opengis.net/spec/SOS/2.0/req/insertionCap/structure Requirement 56 The InsertionCapabilities section shall be structured as defined in Figure 13 and Table 32.

Figure 13: Data type of InsertionCapabilities section

Copyright © 2012 Open Geospatial Consortium.

47

OGC 12-006 Table 32: Properties of InsertionCapabilities data type Name

Definition

procedureDescriptionF ormat

identifier of a procedure description format that is supported by the service Listed procedure descriptions can be used when inserting a new sensor or when inserting an observation (or result template with an observation) that references a procedure encoded in a given description format. identifier of the feature type that is supported by the service

featureOfInterestType

Listed feature types can be used when adding a new feature of interest which is associated with an observation inserted through InsertObservation or InsertResultTemplate. identifier of the observation type (with unique result type) supported by the service

observationType

Listed observation types can be used when adding new observations through InsertObservation or InsertResultTemplate. identifier of the result encoding supported by the service

supportedEncoding

Listed result encodings can be used for new results of observations which are added to the SOS.

Data type and values FormatCode see OGC 09001

Multiplicity and use One or many (mandatory)

ValueCode see clause 8.4.1

One or many (mandatory)

ValueCode see clause 8.4.1

One or many (mandatory)

SWEEncoding Code see OGC 09001

Zero or many (optional)

Requirement http://www.opengis.net/spec/SOS/2.0/req/insertionCap/capabilities-inclusion Requirement 57 If the service lists the InsertionCapabilities in its OperationsMetadata as a supported value for the sections parameter of the GetCapabilities operation and a GetCapabilities request includes the sections parameter with this value or the “all” value or the request was made without the sections parameter, then the InsertionCapabilities shall be provided in the Capabilities document that is returned by the service. More specifically, it shall then be placed in the sos:Capabilities/sos:extension property.

10.2

Requirements Class: Sensor Insertion

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

48

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Dependency

http://www.opengis.net/spec/SOS/2.0/req/insertionCap

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/12

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exception-unsupported-types

10.2.1 InsertSensor Operation The InsertSensor operation allows a client to register a new sensor system at the SOS. The operation is part of the Sensor Insertion requirements class. Sensor observations can only be inserted for sensors that have first been inserted in the SOS. The conceptual model of the InsertSensor operation is shown in the following UML diagram.

Figure 14: Data types of InsertSensor operation

Copyright © 2012 Open Geospatial Consortium.

49

OGC 12-006 The InsertionCapabilities section in the Capabilities document of the service lists the types and formats which can be used by the client when inserting a new sensor at the SOS server. 10.2.1.1 Request The base structure of the InsertSensor operation is defined in Clause 13 of [OGC 09-001]. Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/request-structure Requirement 58 For the SOS the InsertSensor operation shall be used as specified in Clause 13 of [OGC 09-001]. Additionally, the SOS extends the abstract InsertionMetadata data type through the type SosInsertionMetadata, with properties as defined in Table 33. This type shall be included in InsertSensor requests sent to the SOS server. The featureOfInterestTypes and observationTypes (with unique result type) in the SosInsertionMetadata element of the request shall determine which are used by the sensor to encode

observations.

The service attribute in the InsertSensor request that is sent to the SOS server shall have the value “SOS” and the version attribute shall have the value “2.0.0”. Table 33 Properties of SosInsertionMetadata data type Name

Definition

Data type and values

featureOfInterestType

identifier of feature of interest type associated with observation produced by the sensor identifier of observation type (with unique result type) which is produced by the sensor

ValueCode see clause 8.4.1

Multiplicity and use One or many (mandatory)

ValueCode see clause 8.4.1

One or many (mandatory)

observationType

10.2.1.2 Response Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/response Requirement 59 The InsertSensor operation shall return a response as defined in Subclause 13.2.3 of [OGC 09-001].

10.2.1.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exception Requirement 60 When an SOS server encounters an error while performing an InsertSensor operation, it shall return an exception message as specified in Subclause 13.3 of [OGC 09-001].

50

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exception-unsupported-types Requirement 61 If one of the featureOfInterestTypes or observationTypes specified by the client in the SosInsertionMetadata element provided in the InsertSensor request are not supported by the SOS server (supported values are listed in the InsertionCapabilities section of the Capabilities document) then an exception shall be returned with the exception code “InvalidParameterValue” and locator value “featureOfInterestType”, or “observationType”.

10.2.1.4 Examples Example 18 An example of request and response of the XML implementation of the InsertSensor operation can be found here: http://schemas.opengis.net/sos/2.0/examples/transactional/InsertSensor1.xml http://schemas.opengis.net/sos/2.0/examples/transactional/InsertSensor1_response.xml

10.3

Requirements Class: Sensor Deletion

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/obsoffering-deletion

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/observation-deletion

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/exception

10.3.1 DeleteSensor Operation The DeleteSensor operation allows a client to delete a sensor system from the SOS. The operation is part of the Sensor Deletion requirements class. Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/request-structure Requirement 62 The DeleteSensor request shall be implemented as defined in Clause 14 of the OGC SWE Service Model [OGC 09-001] specification.

Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/obsoffering-deletion

Copyright © 2012 Open Geospatial Consortium.

51

OGC 12-006

Requirement 63 After a successful deletion of a sensor, all ObservationOfferings which have been associated with the deleted sensor shall no longer be listed in the Capabilities of the SOS server.

Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/observation-deletion Requirement 64 When the sensor is successfully deleted by this operation, all observations which have been produced by the sensor shall no longer be accessible or discoverable through the SOS.

10.3.1.1 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/exception Requirement 65 When an SOS server encounters an error while performing a DeleteSensor operation, it shall return an exception message as specified in Subclause 14.3 of [OGC 09-001].

10.3.1.2 Examples Example 19 An example of request and response of the XML implementation of the DeleteSensor operation can be found here: http://schemas.opengis.net/sos/2.0/examples/transactional/DeleteSensor1.xml http://schemas.opengis.net/sos/2.0/examples/transactional/DeleteSensor1_response.xml

10.4

Requirements Class: Observation Insertion

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/obsInsertion Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/insertionCap

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/supported-types

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/property-constellation

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/multiple-offerings

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/response-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception-supported-types

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception-property-constellation

52

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 10.4.1 InsertObservation Operation The InsertObservation operation allows clients to insert new observations for a registered sensor system. The conceptual model of the InsertObservation operation is shown in the following UML diagram.

Figure 15: Data types of InsertObservation operation

The InsertionCapabilities section lists the types (of observations and features of interest) which can be used by the client when inserting observations at the SOS server. 10.4.1.1 Request The SOS InsertObservation data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/request-structure Requirement 66

In addition to the properties inherited from SWES ExtensibleRequest, the SOS InsertObservation operation request shall include the properties according to Table 34.

Requirement

Copyright © 2012 Open Geospatial Consortium.

53

OGC 12-006

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/supported-types Requirement 67 The type of the inserted observation (with unique result type) shall be supported by the SOS server (and hence listed in the InsertionCapabilities section) AND shall be one of the types defined for (each of) the ObservationOffering(s) to which the observation is added.

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/property-constellation Requirement 68

For a particular constellation of procedure, observedProperty and ObservationOffering, observations shall always be encoded in the same observationType . The InsertObservation operation shall check whether a differing observationType is inserted for the same constellation of procedure, observedProperty and ObservationOffering that was inserted before.

NOTE If this requirement was missing a client could, for example, insert observations of type OM_TruthObservation today and of type OM_Measurement tomorrow for the same procedure, observedProperty, ObservationOffering constellation. In subsequent calls of GetObservation to request data for today and tomorrow it would be unclear how to encode the response.

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/multiple-offerings Requirement 69 If multiple offerings are specified for the sensor of the observations which should be inserted, all specified observations shall be added to all specified offerings.

Table 34: Properties of InsertObservation data type Name

Definition

Data type and values

offering

Pointer to an ObservationOffering to which the observation(s) shall be added. Observation to insert

ObservationOffering id see Subclause 8.1.2.2

observation

Multiplicity and use One or many (mandatory)

OM_Observation One or many see [OGC 10(mandatory) 004r3/ISO 19156] id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling.

10.4.1.2 Response The SOS InsertObservationResponse data type derives from the SWES ExtensibleResponse data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/response-structure

54

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement 70 The SOS InsertObservationResponse shall contain the properties inherited from SWES ExtensibleResponse. No other properties are defined by this standard for the InsertObservationResponse type. The return of an instance of the InsertObservationResponse indicates successful insertion of the observations.

10.4.1.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception Requirement 71 When an SOS server encounters an error while performing an InsertObservation operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 5. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001. Listing 5: exception codes applicable to the InsertObservation operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception-supported-types Requirement 72 If the observationType of the observation which should be inserted is not supported by the SOS or the type is not listed in the ObservationOfferings of the sensor in the Capabilities, an exception shall be returned with the ExceptionCode “InvalidParameterValue” and locator value “observationType”.

Requirement http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exception-property-constellation

Copyright © 2012 Open Geospatial Consortium.

55

OGC 12-006

Requirement 73 If an observationType is inserted for the same constellation of procedure, observedProperty as well as ObservationOffering and that observationType is different than in previous insertions of observations with that property constellation, an exception shall be returned with the ExceptionCode “InvalidParameterValue” and locator value “observationType”.

10.4.1.4 Examples Example 20 An example of request and response of the XML implementation of the InsertObservation operation can be found here: http://schemas.opengis.net/sos/2.0/examples/transactional/InsertObservation1.xml http://schemas.opengis.net/sos/2.0/examples/transactional/InsertObservation1_response.xml

11 Result Handling Extension 11.1

Requirements Class: Result Insertion

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/resultInsertion Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/insertionCap

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-supported-types

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-property-constellation

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-obs-template-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-result-structure-phenomenonTime

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-result-structure-resultTime

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-observation-time-provisioning

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-response-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception-supported-types

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception-property-constellation

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-resultValues-content

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-exception-unknown-result-structure

56

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 11.1.1 InsertResultTemplate Operation The InsertResultTemplate operation allows clients to upload a template for result values. Result values which conform to this template can be inserted into the SOS using subsequent calls of the InsertResult operation. The InsertResultTemplate request includes the pointer to an ObservationOffering into which the results will be inserted. The inserted result template contains not only the description of the result structure and encoding but also an observation template with the complete observation metadata such as procedure, feature of interest and observed property for the observations corresponding to the results. The conceptual model of the InsertResultTemplate operation is shown in the following UML diagram.

Figure 16: Data types of InsertResultTemplate operation

Copyright © 2012 Open Geospatial Consortium.

57

OGC 12-006 The InsertionCapabilities section lists the types (of observations and features of interest) which can be used by the client when inserting observations – which, ultimately, is the purpose of invoking the InsertResultTemplate operation - at the SOS server. 11.1.1.1 Request The SOS InsertResultTemplate data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-request-structure Requirement 74

In addition to the properties inherited from SWES ExtensibleRequest, the SOS InsertResultTemplate operation request shall include the property according to Table 35.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-supported-types Requirement 75 The type of the registered observation (template), the type of its result and the specified resultEncoding shall be supported by the SOS server as advertised in the InsertionCapabilities section). The type of the observation shall match the observationType as listed in the ObservationOffering to which the observation , built from the results which will be inserted, is added.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-property-constellation Requirement 76 Result values inserted for a particular procedure shall not be given in different result structures for the same observedProperty and ObservationOffering. While processing an InsertResultTemplate request, an SOS server shall check that no differing resultStructure is used for a constellation of procedure, observedProperty and ObservationOffering that was inserted before. NOTE Differing resultStructure can only be used for the same constellation of observedProperty and procedure if different ObservationOfferings are used. NOTE If Requirement 76 were missing a client could upload today’s results structured, for example, as a DataArray [OGC 08-094] and tomorrow as a DataRecord [OGC 08-094] for the same procedure, observedProperty, ObservationOffering constellation. In subsequent calls of GetResult to request data for today and tomorrow it would be unclear how to encode the response.

58

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 35: Properties of InsertResultTemplate data type Name

Definition

Data type and values

proposedTemplate

Specifies the observation metadata and also information about the structure and encoding of the result, but no result value

ResultTemplate see Table 36

Multiplicity and use One (mandatory)

Table 36: Properties of ResultTemplate data type Name

Definition

Data type and values

offering

Pointer to ObservationOffering to which the results and corresponding observations shall be added. template which contains observation metadata that is used to form complete observations with result values that are inserted later on

ObservationOffering id see Subclause 8.1.2.2

observationTemplate

resultStructure

OM_Observation see [OGC 10-004r3/ISO 19156]

Multiplicity and use One (mandatory) One (mandatory)

Requirement 77 defines further value constraints AbstractDataComponent see [OGC 08-094]

Specifies the structure of the results One which will be inserted in subsequent (mandatory) InsertResult calls for the observationTemplate resultEncoding Specifies the encoding of the results AbstractEncoding One which will be inserted in subsequent see [OGC 08-094] (mandatory) InsertResult calls for the observationTemplate id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-obs-template-structure Requirement 77 The observation that is provided by the client in the ResultTemplate shall have null as value of om:phenomenonTime, om:resultTime and om:result. For the first two properties, the nilReason shall be set to the value ‘template’. The procedure, featureOfInterest and observedProperty of the observation template shall not be empty. Other observation properties can be set by the client.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-result-structure-phenomenonTime Requirement 78

The resultStructure in the ResultTemplate shall have at least a swe:Time or component with definition property set to the value “http://www.opengis.net/def/property/OGC/0/PhenomenonTime”. The value of this component shall swe:TimeRange

Copyright © 2012 Open Geospatial Consortium.

59

OGC 12-006

be used by the service to populate the om:phenomenonTime property of the observation template for each new result block the client is going to insert via the InsertResult operation. Note: a swe:Time defines a specific point in time and thus maps to a TM_Instant / gml:TimeInstant which is a valid value of the om:phenomenonTime and om:resultTime. Likewise, a swe:TimeRange defines an interval of time and thus maps to a TM_Period / gml:TimePeriod, which is a valid value of the om:phenomenonTime as well – but not of the om:resultTime.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-result-structure-resultTime Requirement 79 If the resultStructure in the ResultTemplate has a swe:Time component with definition property set to the value “http://www.opengis.net/def/property/OGC/0/ResultTime” then the value of this component shall be used by the service to populate the om:resultTime property of the observation template for each new result block the client is going to insert via the InsertResult operation. If no such component is contained in the resultStructure then the service shall use the om:phenomenonTime as value of the om:resultTime (at least the phenomenon time has to be provided in each ResultTemplate). In case the om:phenomenonTime is not a TimeInstant, an InvalidParameterValue exception shall be returned, with locator ‘resultTime’.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-observation-time-provisioning Requirement 80 A client shall encode the om:phenomenonTime as a swe:Time or swe:TimeRange component with definition “http://www.opengis.net/def/property/OGC/0/PhenomenonTime”. in the resultStructure that it proposes to the service in the InsertResultTemplate operation request. If any of the observation results that the client intends to send to the service via the InsertResult operation is going to have a resultTime that is different to the phenomenonTime then the resultStructure of the ResultTemplate shall also have a swe:Time component with definition “http://www.opengis.net/def/property/OGC/0/ResultTime”.

11.1.1.2 Response The

SOS InsertResultTemplateResponse data type derives from ExtensibleResponse data type defined in OGC 09-001 and inherits its properties.

the

SWES

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-response-structure Requirement 81

In addition to the properties inherited from SWES ExtensibleResponse, the SOS InsertResultTemplateResponse shall include the property according to Table 37.

Table 37: Properties of InsertResultTemplateResponse data type Name

60

Definition

Data type and values

Multiplicity and use

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Pointer to the ResultTemplate which ResultTemplate id One (mandatory) has been accepted and registered at the SOS server. This ResultTemplate can be used in subsequent InsertResult requests. id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling. acceptedTemplate

11.1.1.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception Requirement 82 When an SOS server encounters an error while performing an InsertResultTemplate operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 6. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001. Listing 6: exception codes applicable to the InsertResultTemplate operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception-supported-types Requirement 83 If the observationType of the observation template is not supported by the SOS or the type is not listed in the ObservationOfferings of the sensor in the Capabilities, an exception shall be returned with ExceptionCode “InvalidParameterValue” and locator value “observationType”.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irt-exception-property-constellation Requirement 84

If a result template with differing observationType or (SWE Common

Copyright © 2012 Open Geospatial Consortium.

61

OGC 12-006

encoded) result structure is inserted for the same constellation of procedure, observedProperty and ObservationOffering (for which observations already exist) an exception shall be returned with the ExceptionCode “InvalidParameterValue” and locator value “proposedTemplate”.

11.1.1.4 Examples Example 21 An example of request and response of the XML implementation of the InsertResultTemplate operation can be found here: http://schemas.opengis.net/sos/2.0/examples/resultHandling/InsertResultTemplate1.xml http://schemas.opengis.net/sos/2.0/examples/resultHandling/InsertResultTemplate1_response.xml

11.1.2 InsertResult Operation The InsertResult operation allows a client to insert new observations for a sensor system by inserting only the results of the observations. The operation is useful if most of the metadata contained in the observations remain the same and/or the communication bandwidth and processing power of the client is limited. Before invoking the InsertResult operation, the sensor has to be associated with the SOS and has to be listed in the Capabilities document. This can be done by invoking the InsertSensor operation. Also, before invoking the InsertResult operation the InsertResultTemplate operation has to be invoked once for defining the structure of the result elements which are inserted afterwards. The conceptual model of the InsertResult operation is shown in the following UML diagram.

62

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Figure 17: Data types of InsertResult operation

11.1.2.1 Request The SOS InsertResult data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-request-structure Requirement 85

In addition to the properties inherited from SWES ExtensibleRequest, the SOS InsertResult operation request shall include the properties according to Table 38.

The request includes a pointer to the before uploaded template which describes the structure and encoding of the results. Further, it includes an element which contains the results of observations which shall be inserted.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-resultValues-content Requirement 86 The client shall encode the values of the observation result that is to be inserted via the InsertResult operation according to the resultStructure of the ResultTemplate it points to

Copyright © 2012 Open Geospatial Consortium.

63

OGC 12-006

in the InsertResult request.

Table 38: Properties of InsertResult data type Name

Definition

Data type and values

Multiplicity and use One (mandatory)

Pointer to the template defining the ResultTemplate id structure and encoding of the see Table 36 results. resultValues The results of observations which Any type One (mandatory) shall be inserted. id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling. template

11.1.2.2 Response The SOS InsertResultResponse data type derives from the SWES ExtensibleResponse data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-response Requirement 87 The SOS InsertResultResponse shall contain the properties inherited from SWES ExtensibleResponse. No other properties are defined by this standard for the InsertResultResponse type. The return of an instance of the InsertResultResponse shall indicate a successful insertion of the result values.

11.1.2.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-exception Requirement 88 When an SOS server encounters an error while performing an InsertResult operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 7. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001.

64

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Listing 7: exception codes applicable to the InsertResult operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/ir-exception-unknown-result-structure Requirement 89

If the structure and encoding of the inserted results does not adhere to the

resultStructure and resultEncoding defined for the ResultTemplate pointed to in the InsertResult request (and inserted beforehand through an InsertResultTemplate call) an

exception shall be thrown with the exceptionCode “InvalidParameterValue” with locator value “template”.

11.1.2.4 Examples Example 22 An example of request and response of the XML implementation of the InsertResult operation can be found here: http://schemas.opengis.net/sos/2.0/examples/resultHandling/InsertResult1.xml http://schemas.opengis.net/sos/2.0/examples/resultHandling/InsertResult1_response.xml

11.2

Requirements Class: Result Retrieval

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/insertionCap

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-filter-context

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-response-structure

Copyright © 2012 Open Geospatial Consortium.

65

OGC 12-006

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-request-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-omitting-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-filter-context

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-response-empty

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-exception

The functionality defined in this requirements class enables clients to efficiently retrieve pure SWE Common encoded observation result values from a SOS. The concept of the two operations defined in this requirements class is as follows: 

GetResultTemplate operation – With this operation, the client retrieves information on the exact structure used by a specific procedure to generate a new observation result. The result structure is unique per combination of procedure, offering and observed property. Furthermore, the operation response also includes the definition of the encoding that the service will use to return result values in a GetResult operation response.

GetResult operation – With this operation, the client identifies the observations of which the pure SWE Common encoded result values are to be retrieved. The request contains parameters to identify the offering as well as observed property of observations that the client is interested in. Optional request parameters enable the client to further subset these observations. With a temporal filter, for example, the client is able to retrieve the result values of all new observations (with specific observed property) that were added to the offering since the last invocation of the GetResult operation.

The information returned in both the GetResultTemplate and GetResult operation responses enable the client to construct a complete SWE Common DataArray that aggregates the result values of observations retrieved in a single GetResult request – see following figure.

66

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Figure 18: Constructing a SWE Common GetResultTemplateResponse and GetResultResponse

DataArray

with

the

contents

of

a

The figure shows that: 

the GetResultTemplateResponse.resultStructure DataArray.elementType,

is

used

to

populate

the

the GetResultTemplateResponse.resultEncoding DataArray.encoding and

is

used

to

populate

the

the GetResultResponse.resultValues is used to populate the DataArray.values.

The DataArray.elementCount is variable because it depends on the actual number of result values returned in a GetResultResponse. It is not directly provided as an element of the GetResultResponse. However, following requirement http://www.opengis.net/spec/SWE/2.0/req/general-encoding-rules/array-size-encoding-rule from [OGC 08-094], the exact array size of a variable size DataArray is given in the encoded values. With the DataArray thus defined, a client can decode and use the information that is contained in the aggregated (via the GetResultResponse) observation result values. 11.2.1 GetResultTemplate Operation The GetResultTemplate operation allows the client to retrieve the structure and encoding of the results which will be returned during later GetResult operations for specified observed property

Copyright © 2012 Open Geospatial Consortium.

67

OGC 12-006 and ObservationOffering. By requesting this information from the SOS server, the client is enabled to interpret the result values retrieved from subsequent GetResult calls. NOTE: there is an inherent assumption that the SWE Common defined result structure of observations belonging to one observation offering is the same if the observed property of these observations is the same. In other words, observations generated by one procedure for a certain observed property may not have a different SWE Common defined result structure unless they are associated with different offerings.

The conceptual model of the GetResultTemplate operation is shown in the following UML diagram.

Figure 19: Data types of GetResultTemplate operation

11.2.1.1 Request The SOS GetResultTemplate data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-request-structure Requirement 90

In addition to the properties inherited from SWES ExtensibleRequest, the SOS GetResultTemplate operation request shall include the properties according to Table 39.

68

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Table 39: Properties of GetResultTemplate data type Name

Definition

Data type and values

offering

Pointer to an ObservationOffering for which results will be requested in subsequent GetResult calls.

ObservationOffering id see Subclause 8.1.2.2

Multiplicity and use One (mandatory)

Since an ObservationOffering is associated with exactly one procedure, this parameter indirectly identifies the procedure for which results will be requested. Pointer to an observed property for which the results serve values.

GFI_PropertyType id One (mandatory) see [OGC 10004r3/ISO 19156] id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling. observedProperty

The offering parameter is used in the request to identify a specific procedure. This is due to the fact that a procedure may be associated with multiple offerings and that the encoding for the same observedProperty may be different per offering. For example, in one offering the service may provide access to OM_Measurement data while in another offering the service may use a simple SWEScalarObservation as defined in clause 7.11 of [OGC 10-025r1] with a SWE Quantity as result value. Thus, the combination of offering and observedProperty uniquely identifies both the procedure and the result structure used by the procedure to encode the results of observations that are associated with the offering. In addition, the GetResultTemplate and GetResult operations are designed to only allow retrieval of SWE Common encoded result values from the observations of one specific offering at a time. This design prevents potential confusion if observations from different offerings use different result structures. It is necessary to establish a linkage between the GetResultTemplate request model and the underlying SOS data model. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-filter-context Requirement 91 The default context for the ValueReferences used in the expression of a filter operator (see OGC 09-026r1/ISO 19143 for further details) for the GetResultTemplate request parameters that have a pre-defined target property shall be as defined in Table 40.

Copyright © 2012 Open Geospatial Consortium.

69

OGC 12-006 Table 40: default context for GetResultTemplate request parameters with pre-defined target property

Filter Property

Target property operator

for

PropertyIsEqualTo

offering

Capabilities.contents.offering

observedProperty

OM_Observation.observedProperty

comparison

NOTE: in an XML based SOS implementation the filter context can be defined via XPath expressions – see Table 48 in Subclause 13.1.

11.2.1.2 Response The SOS GetResultTemplateResponse data type derives from the SWES ExtensibleResponse data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-response-structure Requirement 92

In addition to the properties inherited from SWES ExtensibleResponse, the SOS GetResultTemplateResponse shall include the properties according to Table 41.

Table 41: Properties of GetResultTemplateResponse data type Name

Definition

Data type and values

resultStructure

The structure of the results which may be requested in subsequent GetResult calls. The encoding of the results which may be requested in subsequent GetResult calls.

AbstractDataComponent see [OGC 08-094]

Multiplicity and use One (mandatory)

AbstractEncoding see [OGC 08-094]

One (mandatory)

resultEncoding

Note: different to the result insertion extension, in the result retrieval extension the intention is not to construct complete observations with the result values returned via the GetResultResponse. Consequently, there is no requirement on SOS services to include components in the sos:GetResultResponse/sos:resultStructure to provide the phenomenon or result time of observations in. Such components may of course be part of an observation result. As such, SWE Common defined observation results can easily be retrieved via the GetResultTemplate/GetResult operations.

11.2.1.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grt-exception Requirement 93 When an SOS server encounters an error while performing a GetResultTemplate operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in

70

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement 94

Table 42: InvalidPropertyOfferingCombination Exception

exceptionCode value

Meaning of code

“locator” value

The service is unable to fulfill the request None, omit “locator” parameter because the observations with the specific combination of observedProperty and offering as requested by the client do NOT have a SWE Common encoded result.

InvalidPropertyOfferin gCombination

Requirement 95 Listing 8. The meaning of each exception code shall be as defined in OGC 06121r3,OGC 09-001 and Table 42 in this standard.

Table 42: InvalidPropertyOfferingCombination Exception exceptionCode value InvalidPropertyOfferin gCombination

Meaning of code

“locator” value

The service is unable to fulfill the request None, omit “locator” parameter because the observations with the specific combination of observedProperty and offering as requested by the client do NOT have a SWE Common encoded result.

Listing 8: exception codes applicable to the GetResultTemplate operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

InvalidPropertyOfferingCombination

Copyright © 2012 Open Geospatial Consortium.

71

OGC 12-006 11.2.1.4 Examples Example 23 An example of request and response of the XML implementation of the GetResultTemplate operation can be found here: http://schemas.opengis.net/sos/2.0/examples/resultHandling/GetResultTemplate1.xml http://schemas.opengis.net/sos/2.0/examples/resultHandling/GetResultTemplate1_response.xml http://schemas.opengis.net/sos/2.0/examples/resultHandling/GetResult1_resultingDataArray.xml

11.2.2 GetResult Operation The GetResult operation allows retrieving just the result values of observations without the entire metadata of the observation. It offers five parameters: ObservationOffering, feature of interest, observed property, as well as temporal and spatial filter, which can be used to filter the observations of which result values are returned by the SOS. For being able to interpret the returned result values, the client can invoke the GetResultTemplate, before calling GetResult, to retrieve the structure and encoding of the results returned for the specified ObservationOffering and observed property (the other parameters do not influence the structure or encoding of the results). The conceptual model of the GetResult operation is shown in the following UML diagram.

Figure 20: Data types of GetResult operation

72

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 11.2.2.1 Request The SOS GetResult data type derives from the SWES ExtensibleRequest data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-request-structure

Requirement 96

Table 43 Table 43.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-parameters Requirement 97 The SOS returns the results of all observations that match the specified parameter values. The request parameters shall be connected with an implicit AND. The values of each of the parameters are connected with an implicit OR.

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-omitting-parameters Requirement 98 If an optional parameter of a GetResult request is not specified by the client, the filter (represented by the parameter) shall not be applied to the result set which will be returned by the SOS server. NOTE: An implementation of an SOS server may return an exception message as specified in Clause 15 of [OGC 09-001] if the response of a GetResult request would be too big to be reasonably sent to a client.

Example 24 like this:

GetResult ( AND

Resulting from Requirement 97 and Requirement 98 an example abstract GetResult request looks

offering observedProperty

:= weatherstation_in_my_backyard := temperature)

This request returns the results of the observations in ObservationOffering “weatherstation_in_my_backyard”, of all spatial extent and all features of interest, which were measured for the property “temperature”.

Table 43: Properties of GetResult data type Name

Definition

Data type and values

offering

Pointer to an ObservationOffering advertised in the Capabilities document for which results are requested.

ObservationOffering id see Table 17

Copyright © 2012 Open Geospatial Consortium.

Multiplicity and use One (mandatory)

73

OGC 12-006 observedProperty

temporalFilter

Pointer to an observedProperty of the observations whose results are requested. Specifies a filter for a time property of observations whose results are requested.1 This property is defined in the valueReference element of the TemporalOperator.

GFI_PropertyType id see [OGC 10-004r3/ISO 19156] TemporalOperator see [OGC 09-026r1/ISO 19143]

One (mandatory) Zero or more (optional)

Pointer to a feature of interest of the GFI_Feature id Zero or many observations whose results are see [OGC 10-004r3/ISO (optional) requested. 19156] spatialFilter Specifies a filter2 which applies to a SpatialOperator Zero or one spatial property of an observation (or see [OGC 09-026r1/ISO (optional) one of its properties). This property is 19143] defined in the valueReference element of the SpatialOperator. id) NOTE: the primary use of this property is to provide a pointer/identifier – see Annex 15 and OGC 09-001 clause 16.3.1 for further details on identifier handling. 1) The supported time ranges for the phenomenonTime as well as resultTime properties of observations are listed in the selected ObservationOffering. The supported temporal operands and operators are listed in the FilterCapabilities section of the Capabilities document. 2) A profile of this generic spatialFilter is given in clause 12. This profile defines requirements that allow the spatialFilter to be applied to the sampling location parameter of observations. featureOfInterest

It is necessary to establish a linkage between the GetResult request model and the underlying SOS data model. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-filter-context Requirement 99 The default context for the ValueReferences used in the expression of a filter operator (see OGC 09-026r1/ISO 19143 for further details) for the GetResult request parameters that do not have a pre-defined target property and operator for filtering shall be as defined in Table 44. The default context for GetResult request parameters that have a pre-defined target property shall be as defined in Table 45.

Table 44: default context for GetResult request parameters without pre-defined target property

74

Filter Property

Context for ValueReference in filter operator

temporalFilter

OM_Observation

spatialFilter

OM_Observation

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 45: default context for GetResult request parameters with pre-defined target property

Filter Property

Target property comparison operator

for

PropertyIsEqualTo

offering

Capabilities.contents.offering

observedProperty

OM_Observation.observedProperty

featureOfInterest

OM_Observation.featureOfInterest

NOTE: in an XML based SOS implementation the filter context can be defined via XPath expressions – see Table 48 in Subclause 13.1.

11.2.2.2 Response The SOS GetResultResponse data type derives from the SWES ExtensibleResponse data type defined in OGC 09-001 and inherits its properties. Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-response Requirement 100 In addition to the properties inherited from SWES ExtensibleResponse, the SOS GetResultResponse shall include the properties according to Table 46

Table 46: Properties of GetResultResponse data type Name

Definition

Data type and values

resultValues

Encoded value blocks representing the result values of the observations targeted by the GetResult request.

Any

Multiplicity and use One (mandatory)

Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-response-empty Requirement 101 If no observations match the parameters of the GetResult request then the resultValues property of the GetResultResponse shall be empty.

11.2.2.3 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gr-exception

Copyright © 2012 Open Geospatial Consortium.

75

OGC 12-006

Requirement 102 When an SOS server encounters an error while performing a GetResult operation, it shall return an exception message as specified in Clause 15 of [OGC 09-001] with applicable exception code as defined in Listing 9. The meaning of each exception code shall be as defined in OGC 06-121r3 and OGC 09-001. Listing 9: exception codes applicable to the GetResult operation

OperationNotSupported

MissingParameterValue

InvalidParameterValue

OptionNotSupported

NoApplicableCode

InvalidRequest

RequestExtensionNotSupported

11.2.2.4 Examples Example 25 An example of request and response of the XML implementation of the GetResult operation can be found here: http://schemas.opengis.net/sos/2.0/examples/resultHandling/GetResult1.xml http://schemas.opengis.net/sos/2.0/examples/resultHandling/GetResult1_response.xml

12 Spatial Filtering Profile In this profile of the SOS 2.0, the observations offered by an SOS server are restricted to spatial observations which provide a well-defined parameter for carrying the sampling geometry of the observation. If an SOS server follows this profile, spatial filters can target the sampling geometries of observations. 12.1

Requirements Class: Spatial Filtering Profile

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/OMXML/2.0/req/SpatialObservation

Requirement

http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile/observationRestriction

Requirement

http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile/observedAreaRestriction

76

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 The requirements class “Spatial Observation Data” (http://www.opengis.net/spec/OMXML/2.0/req/SpatialObservation) defined in [OGC 10-025] Subclause 7.13 constrains the encoding of an observation to have one parameter which contains the sampling geometry of the observation. The sampling geometry represents the spatial extent where the observation result applies to. This is usually the extent of the observation's feature of interest but may also be computed or determined by other means. Example 26 An example of such a spatial observation as defined by [OGC 10-025] with sampling location parameter is shown here: <?xml version="1.0" encoding="UTF-8"?> <om:OM_Observation> … <om:parameter> <om:NamedValue> <om:name xlink:href="http://www.opengis.net/def/param-name/OGCOM/2.0/samplingGeometry"/> <om:value> <gml:Point gml:id="SamplingPoint"> <gml:pos srsName="urn:ogc:def:crs:EPSG::4326">52.9 7.52</gml:pos> </gml:Point> </om:value> </om:NamedValue> </om:parameter> … </om:OM_Observation>

The following requirement restricts the observations served by an SOS server to be such spatial observations. The sampling geometry of an observation is encoded as a parameter of the observation. Requirement http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile/observationRestriction Requirement 103 All observations provided by the SOS server shall be encoded compliant to the requirements class http://www.opengis.net/spec/OMXML/2.0/req/SpatialObservation as defined in [OGC 10-025] Subclause 7.13.

The observedArea provided in the Capabilities is restricted to represent the minimum bounding box of the sampling geometries of the observations. Requirement http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile/observedAreaRestriction Requirement 104 The observedArea of ObservationOfferings provided in the Contents section of the Capabilities document shall contain a geometry representing the minimum bounding box of the sampling geometries of the observations that belong to the offering.

Copyright © 2012 Open Geospatial Consortium.

77

OGC 12-006 The spatial filter of a GetObservation or, if supported, of a GetResult operation request can target the sampling geometries of the observations by choosing the following value for the valueReference of the spatialFilter13: http://www.opengis.net/req/omxml/2.0/data/samplingGeometry

Example 27 An example of request of the XML implementation of the GetObservation operation conformant to this profile can be found at: http://schemas.opengis.net/sos/2.0/examples/spatialFilteringProfile/GetObservation1_spatialFilteringProfile.xml

13 Binding Extension This Clause specifies concrete encodings and bindings for the operations of the SOS 2.0 standard. Those bindings describe how SOS 2.0 clients and servers can communicate with each other. 13.1

Requirements Class: XML Encoding

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/xml Target Type

XML Instances

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SWE/2.0/req/xsd-simple-components

Dependency

http://www.opengis.net/spec/SWE/2.0/req/xsd-simple-encodings

Dependency

http://www.opengis.net/spec/OMXML/2.0/req/observation

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/AnnexB

Dependency

http://www.opengis.net/doc/IS/OWS/1.1/clause/AnnexB

Dependency

urn:iso:ts:iso:19143:clause:AnnexB

Dependency

urn:iso:ts:iso:19136:clause:AnnexC

Requirement

http://www.opengis.net/spec/SOS/2.0/req/xml/GeneralEncodingRules

In addition to this document, this standard includes several normative XML Schema Documents. These XML Schema Documents are bundled in a zip file with the present document. After OGC acceptance of this standard, these XML Schema Documents will also be posted online at the URL http://schemas.opengis.net/sos/2.0. In the event of a discrepancy between the bundled and online versions of the XML Schema Documents, the online files shall be considered authoritative. The UML model has been mapped to its XML Schema encoding using the rules described in OGC 09-001, resulting in the following XML Schema documents: sos.xsd (includes the other schema through xs:include statements)

13 The value of the value reference acts as a shortcut for the XPath expression pointing to the samplingGeometry

property of the observations (om:parameter/om:NamedValue[om:name/@xlink:href= ‘http://www.opengis.net/def/param-name/OGC-OM/2.0/samplingGeometry’]/om:value).

78

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 sosContents.xsd sosGetCapabilities.xsd sosGetFeatureOfInterest.xsd sosGetObservation.xsd sosGetObservationById.xsd sosGetResult.xsd sosGetResultTemplate.xsd sosInsertionCapabilities.xsd sosInsertObservation.xsd sosInsertResult.xsd sosInsertResultTemplate.xsd sosInsertSensor.xsd The following table provides an overview how each of the conceptual model types defined by this standard has been realized in the XML Schema implementation. NOTE: as the types defined in the SOS Codes package are not intended to be encoded as XML elements, an XML Schema file for that package is not needed and thus not available.

Table 47: XML schema implementation of types defined by this standard

UML class

object element

type

property type

SOS GetCapabilities Capabilities

sos:Capabilities

sos:CapabilitiesType

sos:CapabilitiesPropertyType

Contents

sos:Contents

sos:ContentsType

sos:ContentsPropertyType

GetCapabilities

sos:GetCapabilities

sos:GetCapabilitiesType

sos:GetCapabilitiesPropertyType

ObservationOffering

sos:ObservationOffering

sos:ObservationOfferingType

sos:ObservationOfferingPropertyTy pe

SOS GetFeatureOfInterest GetFeatureOfInterest

sos:GetFeatureOfInterest

sos:GetFeatureOfInterestType

sos:GetFeatureOfInterestPropertyTy pe

GetFeatureOfInterestRe sponse

sos:GetFeatureOfInterestRe sponse

sos:GetFeatureOfInterestRespon seType

sos:GetFeatureOfInterestResponsePr opertyType

Copyright © 2012 Open Geospatial Consortium.

79

OGC 12-006 UML class

object element

type

property type

SOS GetObservation GetObservation

sos:GetObservation

sos:GetObservationType

sos:GetObservationPropertyType

GetObservationRespon se

sos:GetObservationRespons e

sos:GetObservationResponseTy pe

sos:GetObservationResponsePropert yType

SOS GetObservationById GetObservationById

sos:GetObservationById

sos:GetObservationByIdType

sos:GetObservationByIdPropertyTy pe

GetObservationByIdRe sponse

sos:GetObservationByIdRes ponse

sos:GetObservationByIdRespon seType

sos:GetObservationByIdResponsePr opertyType

GetResult

sos:GetResult

sos:GetResultType

sos:GetResultPropertyType

GetResultResponse

sos:GetResultResponse

sos:GetResultResponseType

sos:GetResultResponsePropertyType

SOS GetResult

SOS GetResultTemplate GetResultTemplate

sos:GetResultTemplate

sos:GetResultTemplateType

sos:GetResultTemplatePropertyType

GetResultTemplateRes ponse

sos:GetResultTemplateResp onse

sos:GetResultTemplateRespons eType

sos:GetResultTemplateResponsePro pertyType

SOS InsertObservation InsertObservation

sos:InsertObservation

sos:InsertObservationType

sos:InsertObservationPropertyType

InsertObservationResp onse

sos:InsertObservationRespo nse

sos:InsertObservationResponse Type

sos:InsertObservationResponsePrope rtyType

InsertResult

sos:InsertResult

sos:InsertResultType

sos:InsertResultPropertyType

InsertResultResponse

sos:InsertResultResponse

sos:InsertResultResponseType

sos:InsertResultResponsePropertyTy pe

SOS InsertResult

SOS InsertResultTemplate InsertResultTemplate

sos:InsertResultTemplate

sos:InsertResultTemplateType

sos:InsertResultTemplatePropertyTy pe

InsertResultTemplateR esponse

sos:InsertResultTemplateRe sponse

sos:InsertResultTemplateRespo nseType

sos:InsertResultTemplateResponsePr opertyType

ResultTemplate

sos:ResultTemplate

sos:ResultTemplateType

sos:ResultTemplatePropertyType

80

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 UML class

object element

type

property type

sos:SosInsertionMetadata

sos:SosInsertionMetadataType

sos:SosInsertionMetadataPropertyTy pe

sos:InsertionCapabilitiesType

sos:InsertionCapabilitiesPropertyTy pe

SOS InsertSensor SosInsertionMetadata

SOS InsertionCapabilities InsertionCapabilities

sos:InsertionCapabilities

Requirement http://www.opengis.net/spec/SOS/2.0/req/xml/GeneralEncodingRules Requirement 105 The XML encoding of the conceptual types defined in this standard shall be as defined by the XML Schema files listed and referenced in Subclause 13.1. More specifically, the XML encoding of each conceptual type shall be valid against the XML Schema definition of the according mapping as defined in Table 47.

0, Requirement 46, Requirement 51, Requirement 91 and Error! Reference source not found. define the context for the filter properties contained in several SOS operation requests. The context is given in the form of OCL like expressions that point to the property in the SOS data model that is used for filtering (in case that a simple object comparison is performed) or that is used as the default context for a valueReference which is used as expression of a filter operator (see [ISO 19143] / [OGC 09-026r1] for further details). In an XML encoding of the SOS operation facets (requests, responses and exceptions), object comparison needs to be performed by specifying certain elements of an object to use for the comparison operation. For example, a feature of interest is identified via its gml:identifier value14. The OCL like expressions therefore map to XPath statements that identify the relevant elements or attributes whose value shall be used for comparison or that provides the default context. The following table defines the according mapping. Table 48 – Mapping of OCL like expression to identify the target of a filter property to the according XPath expression for the XML encoding

OCL

XPath 1)

Capabilities.contents.off ering

sos:Capabilities/sos:contents/sos:Contents/swes:offering/sos:Obser vationOffering/swes:identifier

14 See Annex 15 for details on identifier handling.

Copyright © 2012 Open Geospatial Consortium.

81

OGC 12-006 OM_Observation.feature OfInterest

{observation}/om:featureOfInterest/*/gml:identifier

OM_Observation.observ edProperty

{observation}/om:observedProperty/@xlink:href

OM_Observation.proced ure

{observation}/om:procedure/@xlink:href

OM_Observation

{observation}/gml:identifier

1)

{observation} is an observation stored by the SOS (encoded as om:OM_Observation according to ISO 19156 - or a subtype thereof)

NOTE: the filter context for temporalFilter and spatialFilter properties in various operation requests is always the {observation} itself, not the {observation}/gml:identifier

As we can see, to respond to a GetObservation request that asks for all observations that belong to offering http://www.my_namespace.org/water_gage_1_observations, the service looks up the swes:identifier value in its sos:ObservationOffering (which are listed in the sos:Contents section of its sos:Capabilities) and uses the value of this element to determine which offering matches the requested one. Internally, the service then needs to get all observations that are associated with that offering. Likewise, if a GetObservation request asks for all observations that have the observed property urn:ogc:def:phenomenon:OGC:water_level then the service compares this URI with the value of the xlink:href attribute on the om:observedProperty element contained in its XML encoded observations to determine which observations match the request.

13.2

Requirements Class: Core KVP Binding

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/kvp-core Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/xml

Dependency

urn:ietf:2396

Dependency

urn:iso:ts:iso:8601

Dependency

http://www.opengis.net/doc/IS/OWS/1.1/clause/10.2.3

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/general

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/url-encoded-values

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/case-sensitivity

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/namespaces

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-request

82

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-request

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-time-encoding

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-request

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-bbox-encoding

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-temporalFilter-encoding

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-response

This requirements class defines how to invoke SOS 2.0 operations over HTTP GET with key/value pair (KVP) encoding. This KVP binding is defined for the operations GetCapabilities, DescribeSensor, and GetObservation.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/general Requirement 106 For this KVP binding, the general rules defined in Subclause 11.5 of [OGC 06121r3] apply if not superseded by the here defined requirements.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/url-encoded-values Requirement 107 Special characters of parameter values of the KVP request shall be URL-encoded as defined in [IETF 2396]. Example 28

Use “%20” to represent a whitespace, “ ”.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/case-sensitivity Requirement 108 Keys shall be case insensitive, values shall be case sensitive.

Any extension property contained in the conceptual model of SOS operation request and response types can be realized as simple additional key-value pairs that are appended to the parameters of the original operation. Such extension kvp parameters can be defined in extensions to this requirements class. Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/namespaces Requirement 109 KVP requests with a parameter that includes a valueReference as defined in ISO 19143/OGC 09-026r1 which uses XML prefixes in its path expression value shall include a namespaces parameter.

Copyright © 2012 Open Geospatial Consortium.

83

OGC 12-006

This parameter shall specify the mappings of the set of XML prefixes that occur in the valueReference to their respective XML namespace URIs. The format shall be xmlns(prefix,namespace_uri). Multiple namespaces shall be bound by specifying a comma separated list of xmlns() values. Note that the value of the namespaces parameter is URL-encoded by default (Requirement 107). Example 29 URL encoded: namespaces=xmlns(ns1%2Chttp%3A%2F%2Fwww.opengis.net%2FsamplingSpatial%2F2.0)%2Cxmlns(ns2 %2Chttp%3A%2F%2Fwww.opengis.net%2Fom%2F2.0) URL decode: namespaces=xmlns(ns1,http://www.opengis.net/samplingSpatial/2.0),xmlns(ns2,http://www.opengis.net/om/ 2.0) NOTE: The namespaces parameter is not defined for XML encoded requests because XML has its own mechanism for asserting namespaces.

13.2.1 GetCapabilities KVP Binding This KVP binding is a realization of the conceptual model of the GetCapabilities operation as defined in Subclause 8.1. In general, all requirements defined for the conceptual model of the GetCapabilities operation apply for its realization as a KVP binding. Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-request Requirement 110 The KVP encoding of the GetCapabilities operation request shall be as specified in Table 5 in Subclause 7.2.3 of [OGC 06-121r3]. The fixed value of the service parameter shall be “SOS”.

Example 30 To request a Capabilities document, a client can issue the following GetCapabilities operation request encoded as KVP: http://hostname:port/path?service=SOS&request=GetCapabilities&AcceptVersions =2.0.0

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-response Requirement 111 The response behaviour of the GetCapabilities operation shall be implemented as defined in Subclause 8.1.2 of this document and encoded as defined in Subclause 13.1.

13.2.2 DescribeSensor KVP Binding This KVP binding is a realization of the conceptual model of the DescribeSensor operation as defined in Subclause 8.2. In general, all requirements defined for the conceptual model of the 84

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 DescribeSensor operation apply for its realization as a KVP binding. However, due to the limitations of a KVP binding, the parameterization of the operation needs to be restricted and further defined as described below. Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-request Requirement 112 The KVP encoding of a DescribeSensor request shall be as defined in Table 49. Table 49: DescribeSensor request KVP encoding Name

Definition and format

Optionality

service

Identifier of the OGC service. Fixed value: “SOS”. Request protocol version. Fixed value “2.0.0”. Request type name. Fixed value: “DescribeSensor”.

Mandatory

version request

Mandatory Mandatory

procedure

URL-encoded URI pointing to the procedure for which a metadata description shall be retrieved.

Mandatory

procedureDescriptionFormat

URL-encoded URI pointing to the requested procedure description format. Recommended by this standard is SensorML

Mandatory

validTime

SensorML version 1.0.1 [OGC 07-022r2] is identified by the value “http%3A%2F%2Fwww.opengis.net%2FsensorML%2F 1.0.1” (the URL encoded namespace) Time instance or time interval encoded conformant to Optional [ISO 8601] for which the sensor description shall be retrieved. If omitted the currently valid sensor description is returned. If end time of time interval is in the future, all descriptions from start time to now - including the current description - shall be returned

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-time-encoding Requirement 113 The validTime request parameter shall be encoded compliant to [ISO 8601].

Copyright © 2012 Open Geospatial Consortium.

85

OGC 12-006

Example 31

The following KVP structure requests metadata about a procedure15:

http://www.myserver.org:port/path ?service=SOS &version=2.0.0 &request=DescribeSensor &procedure=urn:ogc:object:Sensor:MyOrg:thermometer1 &procedureDescriptionFormat=http://www.opengis.net/sensorML/1.0.1 &validTime=2010-01-01T18:31:42Z

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-response Requirement 114 The response behaviour of the DescribeSensor operation shall be as defined in Subclause 8.2 of this document. The operation response shall be encoded as defined in Annex B of OGC 09-001

13.2.3 GetObservation KVP Binding This KVP binding is a realization of the conceptual model of the GetObservation operation as defined in Subclause 8.3. In general, all requirements defined for the conceptual model of the GetObservation operation apply for its realization as a KVP binding. However, due to the limitations of a KVP binding, the parameterization of the operation needs to be restricted and further defined as described below. Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-request Requirement 115 The KVP encoding of a GetObservation request shall be as defined in Table 50. Table 50: GetObservation request KVP encoding Name service version request offering

observedProperty

Definition and format Identifier of the OGC service. Fixed value: “SOS”. Request protocol version. Fixed value “2.0.0”. Request type name. Fixed value: “GetObservation”. Comma-separated unordered list of one or more URLencoded URIs pointing to the requested observation offerings. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to the observed properties of the

Optionality Mandatory Mandatory Mandatory Optional

Optional

15 For the purpose of better readability, this example contains URL-decoded query parameter values.

86

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

procedure

featureOfInterest

namespaces

requested observations. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to procedures of the requested observations. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to specific features of interest of observations stored by the service. 1 Defines the mapping of XML prefixes used in valueReferences included in other request parameters to their respective XML namespace URIs. See Requirement 109 for further details.

spatialFilter

temporalFilter

responseFormat

Specifies a bounding box used as a spatial filter which applies to a spatial property (identified by its valueReference) of the requested observations. 1 The bounding box is encoded as defined in Requirement 116. Specifies a temporal filter which applies to a temporal property (identified by its valueReference) of the requested observations. 1 The filter is encoded as defined in Requirement 117. Specifies the desired response format for transport of the observations. The supported output formats are listed in the ObservationOffering in the Capabilities document.

Optional

Optional

Conditional; include if spatialFilter and/or temporalFilter is contained in request and uses XML prefixes in path expression of valueReferenc e Optional

Optional

Optional

By default this is O&M 2.0 [OGC 10-025] identified by the value “http%3A%2F%2Fwww.opengis.net%2Fom%2F2.0” (URL-encoded namespace). 1 The context of this filter parameter is specified in 0.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-bbox-encoding Requirement 116 For the KVP binding, a bounding box shall be used as the spatialFilter as defined in the conceptual model of the GetObservation operation (Subclause 8.3). The encoding of the bounding box shall be a list of comma separated values. The first value shall be the valueReference of the spatial property of the observations to which this bounding box, as a spatial filter, is applied – following the requirements on ValueReference as defined by [ISO 19143] / [OGC 09-026r1]. The following values shall be as defined in Subclause 10.2.3 of [OGC 06-121r3].

Copyright © 2012 Open Geospatial Consortium.

87

OGC 12-006

This results in the following encoding: valueReference,minCoordinate1,minCoordinate2,...,minCoordinateN,maxCoordin ate1,maxCoordinate2,...,maxCoordinateN,crsURI

The crsURI is optional. An example value for crsURI is “urn:ogc:def:crs:EPSG::4326”.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-temporalFilter-encoding Requirement 117 As defined in the conceptual model of the GetObservation operation (Subclause 8.3), the temporalFilter parameter shall be used to filter on a temporal property of the requested observations (e.g., the phenomenonTime property).The value of the temporalFilter parameter shall be encoded compliant to [ISO 8601]. Instances and periods of time shall be supported. Periods of time (start and end) are separated by “/”. If the temporalFilter consists of a time instant, it shall apply the semantics of the TEquals operator. If the temporalFilter consists of a time period, it shall apply the semantics of the During operator. The encoding of the temporalFilter shall be a list of two comma separated values. The first value shall be the valueReference of the temporal property of the observations to which the temporal filter is applied – following the requirements on ValueReference as defined by [ISO 19143] / [OGC 09-026r1]. This results in the following encoding: valueReference,iso8601Time

Example 32

The following example shows a KVP-encoded GetObservation request16:

http://myserver.org:port/path ?service=SOS &version=2.0.0 &request=GetObservation &offering=http://www.my_namespace.org/thermometer1_observations &observedProperty=http://sweet.jpl.nasa.gov/2.0/atmoThermo.owl#EffectiveTemp erature &procedure=http://www.my_namespace.org/sensors/thermometer1 &featureOfInterest=http://wfs.example.org?request=getFeature&amp;featureid=b uilding1 &namespaces=xmlns(sams,http://www.opengis.net/samplingSpatial/2.0),xmlns(om, http://www.opengis.net/om/2.0) &spatialFilter=om:featureOfInterest/*/sams:shape,22.32,11.2,32.32,22.2,urn:o gc:def:crs:EPSG::4326 &temporalFilter=om:phenomenonTime,2009-01-10T10:00:00Z/2009-01-10T11:00:00Z

16 For the purpose of better readability, this example contains URL-decoded query parameter values.

88

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-response Requirement 118 The response behaviour of the GetObservation operation shall be as defined in Subclause 8.3.2 of this document. If the response format chosen in the request requires that a GetObservationResponse be returned then it shall be encoded as defined in subclause 13.1

13.3

Requirements Class: GetFeatureOfInterest KVP Binding

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/kvp-core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval/request

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval/bbox-encoding

This requirements class defines a KVP binding for the GetFeatureOfInterest operation. The here defined KVP binding of the GetFeatureOfInterest operation is a realization of the conceptual model of that operation as defined in Subclause 9.1.1. In general, all requirements defined for the conceptual model of the GetFeatureOfInterest operation apply for its realization as a KVP binding. However, due to the limitations of a KVP binding, the parameterization of the operation needs to be restricted and further defined as described below. Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval/request Requirement 119 The KVP encoding of a GetFeatureOfInterest request shall be as defined in Table 51. Table 51: GetFeatureOfInterest request KVP encoding Name service version request featureOfInterest observedProperty

procedure

namespaces

Definition and format Identifier of the OGC service. Fixed value: “SOS”. Request protocol version. Fixed value “2.0.0”. Request type name. Fixed value: “GetFeatureOfInterest”. Comma-separated unordered list of one or more URLencoded URIs pointing to requested features of interest. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to observed properties which are properties of the requested features of interest. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to procedures which observe the requested features of interest. 1 Defines the mapping of XML prefixes used in

Copyright © 2012 Open Geospatial Consortium.

Optionality Mandatory Mandatory Mandatory Optional Optional

Optional

Conditional;

89

OGC 12-006 valueReferences included in other request parameters to their respective XML namespace URIs. See Requirement 109 for further details.

spatialFilter

Specifies a bounding box used as a spatial filter which applies to a spatial property (identified by its valueReference) of the requested features. 1

include if spatialFilter is contained in request and uses XML prefixes in path expression of valueReferenc e Optional

The bounding box is encoded as defined in Requirement 120. 1 The context of this filter parameter is specified in Requirement 46.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval/bbox-encoding Requirement 120 For the KVP binding, a bounding box shall be used as spatialFilter as defined in the conceptual model of the GetFeatureOfInterest operation (Subclause 9.1.1). The encoding of the bounding box shall be a list of comma separated values. The first value shall be the valueReference that identifies the spatial property of the features to which this bounding box, as a spatial filter, is applied – following the requirements on ValueReference as defined by ISO 19143/OGC 09-026r1. The following values shall be as defined in Subclause 10.2.3 of [OGC 06-121r3]. This results in the following encoding: valueReference,minCoordinate1,minCoordinate2,...,minCoordinateN,maxCoordin ate1,maxCoordinate2,...,maxCoordinateN,crsURI

The crsURI is optional. An example value for crsURI is “urn:ogc:def:crs:EPSG::4326”.

Example 33

The following example shows a KVP-encoded GetFeatureOfInterest request17:

http://myserver.org:port/path ?service=SOS &version=2.0.0 &request=GetFeatureOfInterest &observedProperty=http://sweet.jpl.nasa.gov/2.0/atmoThermo.owl#EffectiveTemp erature &procedure=http://www.my_namespace.org/sensors/thermometer1 &namespaces=xmlns(sams,http://www.opengis.net/samplingSpatial/2.0),xmlns(om, http://www.opengis.net/om/2.0)

17 For the purpose of better readability, this example contains URL-decoded query parameter values

90

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 &spatialFilter=om:featureOfInterest/*/sams:shape,22.32,11.2,32.32,22.2,urn:o gc:def:crs:EPSG::4326

13.4

Requirements Class: KVP Binding for Result Retrieval

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/kvp-result Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/kvp-core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-result/grt-request

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-result/grt-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-request

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-response-xml

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-response-raw

This requirements class defines a KVP binding for the GetResult and GetResultTemplate operations. The here defined KVP binding of the GetResult and GetResultTemplate operations is a realization of the conceptual model of these operations as defined in Subclause 11.2. In general, all requirements defined for the conceptual model of the GetResult and GetResultTemplate operations apply for its realization as a KVP binding. However, due to the limitations of a KVP binding, the parameterization of the operations needs to be restricted and further defined as described below. 13.4.1 GetResultTemplate KVP Binding Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-result/grt-request Requirement 121 The KVP encoding of a GetResultTemplate request shall be as defined in Table 52. Table 52: GetResultTemplate request KVP encoding Name service

Definition and format Identifier of the OGC service. Fixed value: “SOS”. version Request protocol version. Fixed value “2.0.0”. request Request type name. Fixed value: “GetResultTemplate”. offering A URL-encoded URI pointing to the requested ObservationOffering. 1 observedProperty A URL-encoded URI pointing to the observed property for which to retrieve observation results. 1 1 The context of this filter parameter is specified in Requirement 91.

Copyright © 2012 Open Geospatial Consortium.

Optionality Mandatory Mandatory Mandatory Mandatory Mandatory

91

OGC 12-006 Example 34

The following example shows a KVP-encoded GetResultTemplate request:

http://myserver.org:port/path ?service=SOS &version=2.0.0 &request=GetResultTemplate &offering=http://www.my_namespace.org/thermometer1_observations &observedProperty=http://sweet.jpl.nasa.gov/2.0/atmoThermo.owl#EffectiveTemp erature

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-result/grt-response Requirement 122 The response behaviour of the GetResultTemplate operation shall be as defined in Subclause 11.2.1.2 of this document and encoded in XML as defined by the “XML Encoding” requirements class.

13.4.2 GetResult KVP Binding Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-request Requirement 123 The KVP encoding of a GetResult request shall be as defined in Table 53. Table 53: GetResult request KVP encoding Name service version request offering observedProperty featureOfInterest

namespaces

Definition and format Identifier of the OGC service. Fixed value: “SOS”. Request protocol version. Fixed value “2.0.0”. Request type name. Fixed value: “GetResult”. A URL-encoded URI pointing to the requested ObservationOffering. 1 A URL-encoded URI pointing to the observed property for which to retrieve observation results. 1 Comma-separated unordered list of one or more URLencoded URIs pointing to features of interest of observations for which result values are requested. 1 Defines the mapping of XML prefixes used in valueReferences included in other request parameters to their respective XML namespace URIs. See Requirement 109 for further details.

92

Optionality Mandatory Mandatory Mandatory Mandatory Mandatory Optional

Conditional; include if spatialFilter and/or temporalFilter is contained in request and uses XML prefixes in path expression of

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

spatialFilter

temporalFilter

xmlWrapper

Specifies a bounding box used as a spatial filter which applies to a spatial property (identified by its valueReference) of the requested observations. 1 The bounding box is encoded as defined in Requirement 116. Specifies a temporal filter which applies to a temporal property (identified by its valueReference) of the requested observations. 1 The filter is encoded as defined in Requirement 117. Specifies whether the response should be wrapped into an XML element or if the SWE Common encoded results should be provided raw. Default is: “false”

valueReferenc e Optional

Optional

Optional

NOTE: Raw binary encoded results can only be sent if xmlWrapper is set to false. 1 The context of this filter parameter is specified in Error! Reference source not found..

Example 35

The following example shows a KVP-encoded GetResult request18:

http://myserver.org:port/path ?service=SOS &version=2.0.0 &request=GetResult &offering=http://www.my_namespace.org/thermometer1_observations &observedProperty=http://sweet.jpl.nasa.gov/2.0/atmoThermo.owl#EffectiveTemp erature &featureOfInterest=http://wfs.example.org?request=getFeature&amp;featureid=b uilding1 &namespaces=xmlns(sams,http://www.opengis.net/samplingSpatial/2.0),xmlns(om, http://www.opengis.net/om/2.0) &spatialFilter=om:featureOfInterest/*/sams:shape,22.32,11.2,32.32,22.2,urn:o gc:def:crs:EPSG::4326 &temporalFilter=om:phenomenonTime,2009-01-10T10:00:00Z/2009-01-10T11:00:00Z

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-response-xml Requirement 124 When the xmlWrapper request argument is set to true, the response behaviour of the GetResult operation shall be as defined in Subclause 11.2.2.2 of this document and encoded in XML as defined by the “XML Encoding” requirements class.

Requirement http://www.opengis.net/spec/SOS/2.0/req/kvp-result/gr-response-raw

18 For the purpose of better readability, this example contains URL-decoded query parameter values.

Copyright © 2012 Open Geospatial Consortium.

93

OGC 12-006

Requirement 125 When the xmlWrapper request argument is set to false, the response of the GetResult operation shall consist of result values only, directly encoded using the encoding defined in the corresponding GetResultTemplate response.

13.5

Requirements Class: SOAP Binding

Requirements Class http://www.opengis.net/spec/SOS/2.0/req/soap Target Type

Web Service

Dependency

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/spec/SOS/2.0/req/xml

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/18

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/exceptions

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/ResponseExceedsSizeLimit

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/InvalidPropertyOfferingCombination

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/action-uris

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/action-uris-exceptions

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/message-body

This requirements class defines the realization of functionality defined by the SOS 2.0 standard for a service using SOAP. This standard does not prescribe usage of either SOAP 1.1 or SOAP 1.2. It also does not prescribe WSDL 1.1 or WSDL 2.0. This standard does not define any specific policy statements to be included in a WSDL document or in service requests and responses for defining certain established, available or desired behavior. If the need for such policies arises in the future, necessary policy statements can be included in the standard. 13.5.1 Exceptions Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/exceptions Requirement 126 The operations defined in this standard shall use the exception codes defined by Clause 8 in [OGC 06-121r3] and Clause 15 in [OGC 09-001] as well as clauses 8.3.3 and 11.2.1.3 in this standard. The encoding of these exceptions for the operations defined by this standard (in a SOAP binding) shall be as defined in clause 19.2 of [OGC 09-001].

The following subclauses define the SOAP fault encoding of the SOS exceptions that are introduced in clauses 8.3.3 and 11.2.1.3 . The definitions are provided using abstract (SOAP) fault properties as described in OGC 09-001 chapter 19.2.1. These abstract fault properties are mapped to the properties of SOAP 1.1/1.2 faults as defined in sections 19.2.2 and 19.2.3 of OGC 09-001.

94

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 13.5.1.1 ResponseExceedsSizeLimit exception The meaning of this exception (code) is defined in clause 8.3.3 of this standard. Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/ResponseExceedsSizeLimit Requirement 127 The abstract fault properties for the ResponseExceedsSizeLimit exception shall be as follows:

[Code] The QName soap11:Service (SOAP 1.1) or soap12:Receiver (SOAP 1.2)

[Subcode] The QName sos:ResponseExceedsSizeLimit

[Reason] the string: “The requested result set exceeds the response size limit of this service and thus cannot be delivered.”

[Details] An ows:Exception element as defined in clause 8.2 of [OGC 06-121r3] with exception code and locator value as defined in Table 23.

13.5.1.2 InvalidPropertyOfferingCombination exception The meaning of this exception (code) is defined in clause 11.2.1.3 of this standard. Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/InvalidPropertyOfferingCombination Requirement 128 The abstract fault properties for the exception shall be as follows:

InvalidPropertyOfferingCombination

[Code] The QName soap11:Client (SOAP 1.1) or soap12:Sender (SOAP 1.2)

[Subcode] The QName sos:InvalidPropertyOfferingCombination

[Reason] the string: “Observations for the requested combination of observedProperty and offering do not use SWE Common encoded results.”

[Details] An ows:Exception element as defined in clause 8.2 of [OGC 06-121r3] with exception code and locator value as defined in Table 42

13.5.2 Action URIs For the SOAP binding, a standard needs to define action URIs for the following features: 

as SOAPAction HTTP header field of a SOAP 1.1 request

Copyright © 2012 Open Geospatial Consortium.

95

OGC 12-006  

as action parameter in a SOAP 1.2 request “http://www.w3.org/2003/05/soap/features/action/”) as WS-Addressing [action] message addressing property

(SOAP

1.2

feature:

NOTE If and how a service instance makes use of one or more of these features depends upon the chosen SOAP and WSDL version as well as on the requirements of the service instance.

Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/action-uris Requirement 129 Action URIs for the message facets (requests and responses of operations) defined by this standard shall be as defined by Table 54 in this document.

Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/action-uris-exceptions Requirement 130 Action URIs for exceptions / fault message types, of which SOS operations make use of, shall be as defined in Table 36 (Subclause 19.3) of [OGC 09-001], while the action URI for SOS specific exceptions / fault message types defined in this standard shall be as defined in Table 55.

96

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Table 54: Action URIs for SOS message facets

Message Facet a

Action URI a

GetCapabilities request

http://www.opengis.net/def/serviceOper ation/sos/core/2.0/GetCapabilities

GetCapabilities response

http://www.opengis.net/def/serviceOper ation/sos/core/2.0/GetCapabilitiesRespo nse

N

N

Y

GetObservation request

http://www.opengis.net/def/serviceOper ation/sos/core/2.0/GetObservation

Y

Y

Y

GetObservation response

http://www.opengis.net/def/serviceOper ation/sos/core/2.0/GetObservationRespo nse

N

N

Y

GetFeatureOfInte rest request

http://www.opengis.net/def/serviceOper ation/sos/foiRetrieval/2.0/GetFeatureOf Interest

Y

Y

Y

GetFeatureOfInte rest response

http://www.opengis.net/def/serviceOper ation/sos/foiRetrieval/2.0/GetFeatureOf InterestResponse

N

N

Y

GetObservationB yId request

http://www.opengis.net/def/serviceOper ation/sos/obsByIdRetrieval/2.0/GetObse rvationById

Y

Y

Y

GetObservationB yId response

http://www.opengis.net/def/serviceOper ation/sos/obsByIdRetrieval/2.0/GetObse rvationByIdResponse

N

N

Y

InsertObservation request

http://www.opengis.net/def/serviceOper ation/sos/obsInsertion/2.0/InsertObserva tion

Y

Y

Y

InsertObservation response

http://www.opengis.net/def/serviceOper ation/sos/obsInsertion/2.0/InsertObserva tionResponse

N

N

Y

InsertResultTemp late request

http://www.opengis.net/def/serviceOper ation/sos/resultInsertion/2.0/InsertResul tTemplate

Y

Y

Y

Copyright © 2012 Open Geospatial Consortium.

Applicable in feature (Y=yes, N=no) SOAP SOAP WS1.1 1.2 Addres SOAP action sing Action [action] Y Y Y

97

OGC 12-006 InsertResultTemp late response

http://www.opengis.net/def/serviceOper ation/sos/resultInsertion/2.0/InsertResul tTemplateResponse

N

N

Y

InsertResult request

http://www.opengis.net/def/serviceOper ation/sos/resultInsertion/2.0/InsertResul t

Y

Y

Y

InsertResult response

http://www.opengis.net/def/serviceOper ation/sos/resultInsertion/2.0/InsertResul tResponse

N

N

Y

GetResultTempla te request

http://www.opengis.net/def/serviceOper ation/sos/resultRetrieval/2.0/GetResultT emplate

Y

Y

Y

GetResultTempla te response

http://www.opengis.net/def/serviceOper ation/sos/resultRetrieval/2.0/GetResultT emplateResponse

N

N

Y

GetResult request

http://www.opengis.net/def/serviceOper ation/sos/resultRetrieval/2.0/GetResult

Y

Y

Y

GetResult response

http://www.opengis.net/def/serviceOper ation/sos/resultRetrieval/2.0/GetResultR esponse

N

N

Y

a

Although some values listed in the column appear to contain spaces, they shall not contain spaces.

NOTE The action URIs for the messages defined by the SWE Service Model and only extended in this specification (such as DescribeSensor, InsertSensor and DeleteSensor) are not listed here – they can be found in Table 35 of [OGC 09-001].

Table 55: Action URI for SOS exceptions / fault types Exception / fault type Exception defined by SOS

WS-Addressing [action] message addressing property value http://www.opengis.net/def/serviceOperation/sos/core/ 2.0/Exception

13.5.3 SOAP Message Body When implementing the SOAP Binding Extension, the XML encoded requests and responses are transferred in the body of a SOAP message. Requirement http://www.opengis.net/spec/SOS/2.0/req/soap/message-body Requirement 131 The body of the SOAP messages that represent requests and responses of operations defined in this standard shall be encoded as defined in Table 47.

98

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 13.5.4 Example Example 36

The example shows a GetCapabilities request enclosed by a SOAP 1.2 envelope.

<soap12:Envelope xmlns:soap12=http://www.w3.org/2003/05/soap-envelope xsi:schemaLocation="http://www.w3.org/2003/05/soap-envelope http://www.w3.org/2003/05/soap-envelope/soapenvelope.xsd http://www.opengis.net/sos/2.0 http://schemas.opengis.net/sos/2.0/sos.xsd" xmlns:sos="http://www.opengis.net/sos/2.0" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1"> <soap12:Header> <wsa:To>http:/my.organization.org/services/sos</wsa:To> <wsa:Action>http://www.opengis.net/def/serviceOperation/sos/core/2.0/GetCapabilities</wsa:Action> <wsa:ReplyTo> <wsa:Address>http://my.client.com/client/myReceiver</wsa:Address> </wsa:ReplyTo> <wsa:MessageID>http://my.client.com/uid/msg-0010</wsa:MessageID> </soap12:Header> <soap12:Body> <sos:GetCapabilities> <ows:Sections> <ows:Section>serviceIdentification</ows:Section> <ows:Section>serviceProvider</ows:Section> <ows:Section>contents</ows:Section> </ows:Sections> </sos:GetCapabilities> </soap12:Body> </soap12:Envelope>

Copyright © 2012 Open Geospatial Consortium.

99

OGC 12-006

14 Annex A – Abstract test suite (normative) 14.1

SOS Core Tests

This section defines conformance tests for the SOS Core. All tests are defined in one conformance class defined below 14.1.1 Conformance Class: SOS Core There are dependencies on conformance classes of OGC Web Services Common 1.1 [OGC 06121r3], OGC SWE Common Service Model [OGC 09-001], and ISO Geographic Information — Observations and Measurements [OGC 10-004r3/ISO 19156]. http://www.opengis.net/spec/SOS/2.0/conf/core Requirements

http://www.opengis.net/spec/SOS/2.0/req/core

Dependency

http://www.opengis.net/doc/IS/OWS/1.1/clause/A4.2

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.1.1

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.1.2

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.7.1

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.7.2

Dependency

urn:iso:ts:iso:19156:clause:A1

Test

http://www.opengis.net/spec/SOS/2.0/conf/core/request-service

Test

100

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/request-service

Test purpose

Verify that the server checks and accepts the service parameter value “SOS”.

Test method

Send several valid operation requests to the SOS server and verify that the SOS server answers with correct responses. Send invalid operation request with missing service attribute and service attribute with incorrect value to SOS server and verify that the server responds with appropriate exceptions.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/request-version

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/request-version

Test purpose

For all SOS request types defined in this specification, verify that the version parameter is checked by the server and the value “2.0.0” is accepted.

Test method

Send one valid request per request type to the service and verify that the operation result is as expected. Send invalid operation request with missing version attribute and version attribute with incorrect value to SOS server and verify that the server responds with appropriate exceptions.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/mandatory-operations Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/ds

Test purpose

Check whether the mandatory operations GetCapabilities, GetObservations and DescribeSensor are supported by the service.

Test method

Execute a GetCapabilities, DescribeSensor, GetObservation request. Verify that the server appropriate responses as defined in this specification.

Test type

Conformance

and sends

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-sections Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-sections

Test purpose

Check whether the service accepts section parameters as defined in clause 8.1.1 of this specification and in clause 7 of OWS Common [OGC 06-121r3].

Test method

Submit GetCapabilities operation requests containing various values and combinations of values of the section parameter. Verify that the server provides the correct response to each

Copyright © 2012 Open Geospatial Consortium.

101

OGC 12-006 request. Test type Test

Test

Test

102

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-version Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-version

Test purpose

Check whether the service checks the AcceptVersions parameter of GetCapabilties requests and accepts the value “2.0.0”.

Test method

Send valid GetCapabilities request containing the AcceptVersions parameter with value “2.0.0” to the service and verify that the Capabilities document is returned. Send a GetCapabilities request with AcceptVersions parameter set to a value other than “2.0.0” which is not supported by the service (e.g. “99.0.0”) to the service and verify that an appropriate exception is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-ows Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-ows

Test purpose

Check that the service accepts GetCapabilties requests as defined in clause 7 of OWS Common [OGC 06-121r3].

Test method

Send valid GetCapabilities request to service and verify that a valid Capabilities document is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-request-structure Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-requeststructure

Test purpose

Check whether the service accepts GetCapabilities requests as defined in Subclause 8.3.1 of this specification.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test method

Send valid GetCapabilities request to service and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-response

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-responsestructure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-contentsstructure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gcobservationoffering-structure

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-contents

Test purpose

Check whether the service returns an instance of the Capabilities type as defined in the conceptual model of clause 8.1 of this specification.

Test method

Send valid GetCapabilities request to service and verify that response is conformant to Capabilities model.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-response-version Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-responseversion

Test purpose

To verify that the default version of the Capabilities is “2.0.0”.

Test method

Send valid GetCapabilities request to service without AcceptVersions parameter and verify that default version of the Capabilities returned is “2.0.0”.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

103

OGC 12-006 Test

Test

Test

104

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-operation-listing Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-operationlisting

Test purpose

Check whether the service supports the operations listed in the OperationsMetadata section of the Capabilities document.

Test method

Send valid operation request for each operation listed in OperationsMetadata section of Capabilities document and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-conf-class-listing Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-conf-classlisting

Test purpose

To verify that the Capabilities document advertises conformance classes which are supported by the server in addition to the SOS Core conformance class.

Test method

Retrieve Capabilities document, more specifically the Capabilities document including the ServiceIdentification section, and verify that the server passes all conformance tests of the conformance classes listed in the Profile list of the ServiceIdentification section.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-property-inheritancemechanism Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-propertyinheritance-mechanism

Test purpose

Check whether the properties of the Contents element in the Capabilities are inherited for all ObservationOfferings and check whether properties are contained as described in Table 18 of this specification.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test method

Send a valid GetCapabilities request to the service and verify that the properties of the Contents element in the Capabilities response are inherited for all ObservationOfferings as described in Table 18 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-spatialFilter-listing Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-spatialFilterlisting

Test purpose

Check whether the spatial operators and operands are listed in the FilterCapabilities section of the Capabilities.

Test method

Get a Capabilities document from the service and check that the spatial operators and operands are listed in the FilterCapabilities section of the Capabilities. Execute a GetObservation request for each combination of spatial operators and operands listed in the FilterCapabilities. Verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/spatial-filter-minimum Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/spatial-filterminimum

Test purpose

Check whether the spatial operator BBOX is listed in the FilterCapabilities of the Capabilities document and whether it is supported for the GetObservation operation.

Test method

Query a Capabilities document from the service and check whether the BBOX operator is listed in the FilterCapabilities section. Send a GetObservation request containing the BBOX filter to the server and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

105

OGC 12-006 Test

Test

Test

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-temporalFilter-listing Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gctemporalFilter-listing

Test purpose

Check whether the temporal operators and operands are listed in the FilterCapabilities section of the Capabilities and are supported by the server.

Test method

Query a Capabilities document from the service and check whether the temporal operators and operands are listed in the FilterCapabilities section of the Capabilities. Execute a GetObservation request for each temporal operator and operand listed in the FilterCapabilities. Verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/temporal-filter-minimum Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-temporalfilter-minimum

Test purpose

Check whether the temporal operators TEquals and During are listed as temporalFilters as well as TimeInstant and TimePeriod as temporal operands in the FilterCapabilities of the Capabilities document and verify that these are supported for the GetObservation operation.

Test method

Query a Capabilities document from the service and check that the operators and operands above are listed in the FilterCapabilities section. Send GetObservation requests for each combination of temporal operators and operands and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-offerings-observations Requirement

106

http://www.opengis.net/spec/SOS/2.0/req/core/gc-offeringsobservations

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test

Test purpose

Check whether the observations that an offering provides information about have not been created by another procedure than the one that is stated by the offering.

Test method

Send GetCapabilities request and cache the Capabilities response. Send a GetObservation request for each offering and verify that the observations returned have not been created by another procedure than the one that is stated by the offering.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-offering-identifier Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-offeringidentifier

Test purpose

Check whether the server assigned a unique identifier to each ObservationOffering in the Capabilities.

Test method

Send GetCapabilities request containing a Sections parameter with value “Contents” to the server and verify that the server has assigned a unique identifier to each ObservationOffering in the Capabilities.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-response-format-om20 Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-responseformat-om20

Test purpose

Check whether each ObservationOffering in the Capabilities contains at least one responseFormat parameter with value “http://www.opengis.net/om/2.0”.

Test method

Send GetCapabilities request containing a Sections parameter with value “Contents” to the server and verify that each ObservationOffering in the Capabilities contains at least one responseFormat parameter with value “http://www.opengis.net/om/2.0”.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/gc-exception

Copyright © 2012 Open Geospatial Consortium.

107

OGC 12-006

Test

Test

Test

108

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/gc-exception

Test purpose

Check whether the server returns appropriate exception messages in case of an error while executing the operation.

Test method

Send invalid GetCapabilities requests to the server and verify that the server returns appropriate exception messages according to section 8.1.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/ds Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/ds

Test purpose

Check that the service supports the DescribeSensor operations as specified in Section 11 of [OGC 09-001] and accepts such requests when their service property is set to “SOS” and their version property is set to “2.0.0”

Test method

Execute conformance tests as described in Subclause 20.1.7 of [OGC 09-001]. Verify that the service accepts valid DescribeSensor requests with service property set to “SOS” and version property set to “2.0.0”

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-request-structure Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-requeststructure

Test purpose

Check whether the service accepts GetObservation requests as defined in Subclause 8.3.1 of this specification.

Test method

Send valid GetObservation request to service and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-parameters

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-parameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-omittingparameters

Test purpose

Check whether the observations returned match the specified parameter values of the GetObservation request.

Test method

Send several GetObservation requests containing several valid parameters and check whether the observations returned match the request parameters.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-default-response-format Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-defaultresponse-format

Test purpose

Check whether the format of observations returned in the response is O&M 2.0 [OGC 10-004r3/ISO 19156].

Test method

Send a GetObservation request without responseFormat parameter and check whether the response is a GetObservationResponse containing observations encoded as O&M 2.0. To check the observations, use the conformance tests described in section A.1 of [OGC 10004r3/ISO 19156].

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-response-format Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-responseformat

Test purpose

Check that the format of the GetObservation response is valid according to the responseFormat parameter defined in the request.

Test method

Send valid GetObservation requests for each responseFormat listed in the Contents section of the Capabilities and verify that the SOS responds with the correct response format.

Copyright © 2012 Open Geospatial Consortium.

109

OGC 12-006 Test type Test

Test

Test

110

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-response-type Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-responsetype

Test purpose

To check that the type of the GetObservation response is valid according to the type of the GetObservationResponse as defined in subclause 8.3.2 of this specification.

Test method

Send valid GetObservation request to server and verify that the SOS responds with the correct response format.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-empty-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-emptyresponse

Test purpose

To check that an instance of GetObservationResponse type is empty if none of the observations associated with the SOS fulfil the GetObservation parameters specified by the client.

Test method

Send valid GetObservation request with request parameters that do not match any observations to server and verify that the SOS responds with an empty GetObservation response.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-response-elements-type Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-responseelements-type

Test purpose

To check that the observationData elements in an GetObservation response are of type OM_Observation as defined in [OGC 10-004r3/ISO 19156] or subtypes of OM_Observation, if the GetObservation response contains observations

Test method

Send valid GetObservation request to server and verify that the GetObservation response contains observationData elements that are of type OM_Observation as defined in [OGC 10-

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 004r3/ISO 19156] or subtypes of OM_Observation. Test type Test

Test

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-observation-duplicates Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-observationduplicates

Test purpose

Check that there are no duplicate observations in a GetObservation response.

Test method

Send several GetObservation requests to the service with offering parameter targeting all offerings with the same procedure but also targeting all observations and verify that there are no observation duplicates in the response.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/core/go-exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-exception

Requirement

http://www.opengis.net/spec/SOS/2.0/req/core/go-too-manyobs-exception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the GetObservation operation.

Test method

Send invalid GetObservation requests to the server and verify that the server returns appropriate exception messages according to section 8.3.3 of this specification.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

111

OGC 12-006 14.2

SOS Enhanced Operations Extension Tests

This section contains the conformance classes for the SOS Enhanced Operations Extension. 14.2.1 Conformance Class: SOS Feature of Interest Retrieval This conformance class defines conformance tests for the retrieval of features of interest. http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval Requirements

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/request-structure

Test

112

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/requeststructure

Test purpose

Check that the service accepts GetFeatureOfInterest requests as defined in Subclause 9.1.1.1 of this specification.

Test method

Send valid GetFeatureOfInterest request to service and verify that the server sends appropriate responses as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/parameters Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/paramet ers

Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/omitting -parameters

Test purpose

Check that the features returned match the specified parameter values of the GetFeatureOfInterest request.

Test method

Send several GetFeatureOfInterest requests containing several valid parameters and verify that the features returned match the request parameters.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Test

Test

Test

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/filter-context Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/filtercontext

Test purpose

Check that the filter context of each request parameter is correct.

Test method

Send a GetFeatureOfInterest request for each filter parameter to the SOS and check that only those features are returned that match the filter context of the particular filter parameter.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/response-structure Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/response -structure

Test purpose

Check that the structure of the response is conformant to the structure defined in Subclause 9.1.1.2 of this specification.

Test method

Send a GetFeatureOfInterest request to the service and check that the response is returned as defined in Subclause 9.1.1.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/empty-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/emptyresponse

Test purpose

Check that an instance of GetFeatureOfInterestResponse type is empty if none of the features associated with the SOS fulfill the GetFeatureOfInterest parameters specified by the client.

Test method

Send valid GetFeatureOfInterest requests to the server that contains parameters that none of the features associated with the SOS fulfil. Verify that the server returns an empty GetFeatureOfInterestResponse.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

113

OGC 12-006 Test

http://www.opengis.net/spec/SOS/2.0/conf/foiRetrieval/exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/foiRetrieval/exceptio n

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the GetFeatureOfInterest operation.

Test method

Send invalid GetFeatureOfInterest requests to the server and verify that the server returns appropriate exception messages according to section 9.1.1.3 of this specification.

Test type

Conformance

14.2.2 Conformance Class: SOS Observation Retrieval By ID This conformance class defines conformance tests for the retrieval of observations by ID. http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval Requirements

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval/requeststructure

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/req uest-structure

Test purpose

Check that the service accepts GetObservationById requests as defined in Subclause 9.2.1.1 of this specification.

Test method

Send valid GetObservationById request to service and verify that the server sends an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval/responsestructure Requirement

114

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/res

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 ponse-structure

Test

Test

Test

Test purpose

Check that the structure of the response is conformant to the structure defined in Subclause 9.2.1.2 of this specification.

Test method

Send a GetObservationById request to the service and check that the response is returned as defined in Subclause 9.2.1.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval/responsebehavior Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrievalresponse-behavior

Test purpose

Check that the server returns appropriate observations containing gml:identifier values as passed in the request.

Test method

Send valid GetObservationById request to the server and verify that the server returns observations containing gml:identifier values as passed in the request.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval/exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/ex ception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the GetObservationById operation.

Test method

Send invalid GetObservationById requests to the server and verify that the server returns appropriate exception messages according to section 9.2.1.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsByIdRetrieval/emptyresponse

Copyright © 2012 Open Geospatial Consortium.

115

OGC 12-006

14.3

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsByIdRetrieval/em pty-response

Test purpose

Check that the server returns an empty response if no observation was found matching one or more of the identifiers provided in the request.

Test method

Send GetObservationById with identifier value that is not associated with an observation hosted by the service and verify that an empty response is returned as defined above.

Test type

Conformance

SOS Transactional Extension Tests

This section contains the conformance classes for the SOS Transactional Extension. It comprises four conformance classes which are defined below. 14.3.1 Conformance Class: SOS Insertion Capabilities This conformance class defines conformance tests for the InsertionCapabilities section in the Capabilities of the service. http://www.opengis.net/spec/SOS/2.0/conf/insertionCap Requirements

http://www.opengis.net/spec/SOS/2.0/req/insertionCap

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/insertionCap/structure

Test

116

Requirement

http://www.opengis.net/spec/SOS/2.0/req/insertionCap/structur e

Test purpose

Check that the InsertionCapabilities is structured as defined in Subclause 10.1.1 of this specification.

Test method

Query Capabilities of the service and check that InsertionCapabilities are valid according to the model defined in Subclause 10.1.1 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/insertionCap/capabilities-

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 inclusion Requirement

http://www.opengis.net/spec/SOS/2.0/req/insertionCap/capabili ties-inclusion

Test purpose

Check that the InsertionCapabilities is contained in a Capabilities response, if it is requested.

Test method

Send GetCapabilities request with Sections parameter containing value “InsertionCapabilities” and verify that InsertionCapabilities are contained in the response.

Test type

Conformance

14.3.2 Conformance class: SOS Sensor Insertion This conformance class defines conformance tests for the insertion of sensors in the service. http://www.opengis.net/spec/SOS/2.0/conf/sensorInsertion Requirements

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/insertionCap

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.8

Test

http://www.opengis.net/spec/SOS/2.0/conf/sensorInsertion/requeststructure

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/reque st-structure

Test purpose

Check that the service accepts an InsertSensor request as defined in Subclause 10.2.1.1 of this specification.

Test method

Send a valid InsertSensor request to the service and verify that an appropriate response as defined in this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorInsertion/response

Copyright © 2012 Open Geospatial Consortium.

117

OGC 12-006

Test

Test

118

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/supp orted-types

Test purpose

Check that the response is created as defined in Subclause 10.2.1.2

Test method

Execute the conformance test defined in Subclause 20.1.8 of [OGC 09-001]

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorInsertion/exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exce ption

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the InsertSensor operation.

Test method

Send invalid InsertSensor requests to the server and verify that the server returns appropriate exception messages according to section 10.2.1.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorInsertion/exceptionunsupported-types Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorInsertion/exce ption-unsupported-types

Test purpose

Check that an exception is returned with the ExceptionCode “InvalidParameterValue” and locator value “featureOfInterestType” or “observationType” if one of the featureOfInterestType or observationType specified by the client in the SosInsertionMetadata element provided in the InsertSensor request are not supported by the SOS server (supported values are listed in the InsertionCapabilities section of the Capabilities document)

Test method

Send valid InsertSensor request containing an element of a type as described above with value that is not listed in the Capabilities to the server and verify that the server returns an exception with the ExceptionCode “InvalidParameterValue” and locator value

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 “featureOfInterestType” or “observationType” Test type

Conformance

14.3.3 Conformance Class: SOS Sensor Deletion This conformance class defines conformance tests for the deletion of sensors in the SOS. http://www.opengis.net/spec/SOS/2.0/conf/sensorDeletion Requirements

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/doc/IS/SWES/2.0/clause/A19.1.6

Test

http://www.opengis.net/spec/SOS/2.0/conf/sensorDeletion/request-structure

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/reque st-structure

Test purpose

Check that the service accepts DeleteSensor requests as defined in Subclause 10.3 of this specification.

Test method

Execute conformance test defined in Subclause 20.1.6 of [OGC 09-001]

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorDeletion/obsofferingdeletion Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/obsof fering-deletion

Test purpose

Check that the ObservationOfferings of the sensor which has been deleted are no more listed in the Capabilities of the service.

Test method

Delete a sensor and query the Capabilities from the service. Check that the ObservationOfferings of the sensor are no longer listed in the Contents section of the Capabilities.

Copyright © 2012 Open Geospatial Consortium.

119

OGC 12-006 Test type Test

Test

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorDeletion/observationdeletion Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/obser vation-deletion

Test purpose

Check that the observations of the sensor which has been deleted are no more provided by the service.

Test method

Delete a sensor and send a GetObservation request for the sensor which has been deleted to the service. Verify that no observations but an Exception with code InvalidParameterValue is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/sensorDeletion/exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/sensorDeletion/excep tion

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the DeleteSensor operation.

Test method

Send invalid DeleteSensor requests to the server and verify that the server returns appropriate exception messages according to section 10.3.1.1 of this specification.

Test type

Conformance

14.3.4 Conformance Class: SOS Observation Insertion This conformance class defines conformance tests for the insertion of observations in a SOS instance. http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion Requirements

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/insertionCap

120

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Dependency

urn:iso:ts:iso:19156:clause:A1

Test

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/request-structure

Test

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/requeststructure

Test purpose

Check that the service accepts InsertObservation requests as defined in Subclause 10.4.1.1 of this specification.

Test method

Send a valid InsertObservation request to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/supported-types Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/supporte d-types

Test purpose

Check that the observationTypes listed in the Capabilities are supported by the SOS and are also listed in the ObservationOffering to which the observations are added.

Test method

Query the Capabilities. Send valid InsertObservation requests for each observationType- to the service and verify that an appropriate response according to this specification is returned. Retrieve a new Capabilities document and check that the observationTypes are also listed in the ObservationOfferings to which the observations have been added.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/propertyconstellation Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/requeststructure

Test purpose

To verify that a particular constellation of procedure, observedProperty and ObservationOffering for observations is always encoded in the same observationand resultType. Verify that the service checks that the

Copyright © 2012 Open Geospatial Consortium.

121

OGC 12-006

observation- and resultType is valid for a particular constellation.

Test

Test

Test

122

Test method

Send an InsertObservation request with an incorrect observation- and resultType to the service. Verify that the observations are not inserted and an Exception is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/multiple-offerings Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/multiple -offerings

Test purpose

Check that the observations are inserted in all offerings that are specified in an InsertObservation request..

Test method

Send an InsertObservation request that specifies multiple offerings to the server and verify that the all observations are inserted in all offerings that are specified in the request..

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/response-structure Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/respons e-structure

Test purpose

Check that the service returns an InsertObservation response as defined in Subclause 10.4.1.2 of this specification.

Test method

Send a valid InsertObservation request to the service. Verify that service returns a response as defined in Subclause 10.4.1.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exceptio n

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the InsertObservation

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 operation.

Test

Test

Test method

Send invalid InsertObservation requests to the server and verify that the server returns appropriate exception messages according to section 10.4.1.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/exceptionsupported-types Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exceptio n-supported-types

Test purpose

Check that an exception is returned with the ExceptionCode “InvalidParameterValue” and locator value “observationType” or “resultType”, if the observationType and resultType of the observation which should be inserted is not supported by the SOS or the types are not listed in the ObservationOfferings of the sensor in the Capabilities.

Test method

Send valid InsertObservation request containing an observation of invalid type to the server and verify that the server returns appropriate exception messages as described above.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/obsInsertion/exception-propertyconstellation Requirement

http://www.opengis.net/spec/SOS/2.0/req/obsInsertion/exceptio n-property-constellation

Test purpose

Check that an exception is returned with the ExceptionCode “InvalidParameterValue” and locator value “observationType”, if an observationType is inserted for the same constellation of procedure, observedProperty as well as ObservationOffering and that observationType is different than in previous insertions of observations with that property constellation.

Test method

Send valid InsertObservation request containing an observation of invalid type to the server and verify that the server returns appropriate exception messages as described above.

Copyright © 2012 Open Geospatial Consortium.

123

OGC 12-006 Test type

14.4

Conformance

SOS Result Handling Extension

This section describes conformance tests for the Result Handling Extension of the SOS. 14.4.1 Conformance Class: Result Insertion This conformance class defines conformance tests for result insertion in a SOS. http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion Requirements

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/insertionCap

Test

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-requeststructure

Test

124

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtrequest-structure

Test purpose

Check that the service accepts InsertResultTemplate requests as defined in Subclause 11.1.1.1 of this specification.

Test method

Send a valid InsertResultTemplate request to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-supportedtypes Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtsupported-types

Test purpose

Check whether the observationTypes and resultEncodings listed in the InsertionCapabilities are supported for the SOS and that the observationTypes are also listed in the ObservationOffering to which the observation results are added.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test method

Query the Capabilities. Send valid InsertResultTemplate requests for each constellation of observationType, featureOfInterestType, resultStructure and resultEncoding to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-propertyconstellation Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtproperty-constellation

Test purpose

For a particular constellation of procedure, observedProperty and ObservationOffering, results shall always be given in the same resultStructure. Verify that the service checks that no different resultStructure can be inserted for a particular constellation.

Test method

Send two InsertResultTemplate requests with different resultStructures for the same constellation of procedure, observedProperty and ObservationOffering to the service. Verify that the service returns an Exception as response to the second InsertResultTemplate call.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-obs-templatestructure Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtobs-template-structure

Test purpose

Verify that the server checks whether the observation that is provided by the client in the ResultTemplate has om:phenomenonTime, om:resultTime and om:result with null value. For the first two properties, the nilReason has to be set to the value ‘template’. The procedure, featureOfInterest and observedProperty of the observation template shall not be empty.

Test method

Send a valid InsertResultTemplate request to the server and check whether it responds with an appropriate response. Afterwards, send an invalid InsertResultTemplate request to the server which does not fulfil the conditions defined above and

Copyright © 2012 Open Geospatial Consortium.

125

OGC 12-006 verify that the server returns an exception message. Test type Test

Test

126

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-resultstructure-phenomenonTime Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtresult-structure-phenomenonTime

Test purpose

The resultStructure in the ResultTemplate shall have at least a swe:Time or swe:TimeRange component with definition property set to the value “http://www.opengis.net/def/property/OGC/0/PhenomenonTim e”. Verify that the server checks the existence of this component and that the value of this component is used by the service to populate the om:phenomenonTime property of the observation template for each new result block the client is going to insert via the InsertResult operation.

Test method

Send a valid InsertResultTemplate request to the server and check whether it responds with an appropriate response. Then, send InsertResult requests for the template and verify that the value of the component with definition property set to the value http://www.opengis.net/def/property/OGC/0/PhenomenonTime is used by the service to populate the om:phenomenonTime property of the observation template for each new result block (e.g. by retrieving the full observations just inserted via a GetObservation request with appropriate procedure parameter and temporalFilter). Afterwards, send an invalid InsertResultTemplate request to the server which does not fulfil the conditions defined above and verify that the server returns an exception message.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-resultstructure-resultTime Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtresult-structure-resultTime

Test purpose

If the resultStructure in the ResultTemplate has a swe:Time component with definition property set to the value “http://www.opengis.net/def/property/OGC/0/ResultTime”, verify that the value of this component is used by the service to populate the om:resultTime property of the observation template for each new result block the client is going to insert

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 via the InsertResult operation.

Test

Test

Test method

Send a valid InsertResultTemplate request containing a component definition as defined above to the server and check that it responds with an appropriate response. Then, send InsertResult requests for the template and verify that the value of the component with definition property set to the value http://www.opengis.net/def/property/OGC/0/ResultTime is used by the service to populate the om:resultTime property of the observation template for each new result block (e.g. by retrieving the full observations just inserted via a GetObservation request with appropriate procedure and temporalFilter).

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-observationtime-provisioning Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtobservation-time-provisioning

Test purpose

Verify that the service checks that a client encodes the om:phenomenonTime as a swe:Time or swe:TimeRange component with definition “http://www.opengis.net/def/property/OGC/0/PhenomenonTim e” in the resultStructure that it proposes to the service in the InsertResultTemplate operation request.

Test method

Send a valid InsertResultTemplate request containing a component definition as defined above to the server and check that it responds with an appropriate response. Then, send an invalid InsertResultTemplate request without the component defined above to the server and verify that an exception message is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-responsestructure-irt Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtresponse-structure

Test purpose

Check that the service InsertResultTemplateResponse Subclause 11.1.1.2 of this specification.

Copyright © 2012 Open Geospatial Consortium.

as

returns defined

an in

127

OGC 12-006

Test

Test

Test

128

Test method

Send a valid InsertResultTemplate request to the service. Verify that service returns a response as defined in Subclause 11.1.1.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtexception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the InsertResultTemplate operation.

Test method

Send invalid InsertResultTemplate requests to the server and verify that the server returns appropriate exception messages according to section 11.1.1.3of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-exceptionsupported-types Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtexception-supported-types

Test purpose

Check that an exception is returned with the ExceptionCode “InvalidParameterValue” and locator value “observationType”, if the observationType of the observation template which should be inserted is not supported by the SOS or the type is not listed in the ObservationOfferings of the sensor in the Capabilities.

Test method

Send invalid InsertResultTemplate request containing an observation of invalid type to the server and verify that the server returns appropriate exception messages as described above.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/irt-exceptionproperty-constellation

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irtexception-property-constellation

Test purpose

Check that an exception is returned with the ExceptionCode “InvalidParameterValue” and locator value “proposedTemplate” if an observationType or result structure is inserted for the same constellation of procedure, observedProperty as well as ObservationOffering and that observationType / result structure is different than in previous insertions of result templates with that property constellation.

Test method

Send invalid InsertResultTemplate request containing an observation template of invalid type to the server and verify that the server returns appropriate exception messages as described above.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/ir-requeststructure Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irrequest-structure

Test purpose

Check that the service accepts InsertResult requests as defined in Subclause 11.1.2.1 of this specification.

Test method

Send a valid InsertResult request to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/ir-resultValuescontent Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irresultValues-content

Test purpose

The client shall encode the values of the observation result that is to be inserted via the InsertResult operation according to the resultStructure of the ResultTemplate it points to in the InsertResult request.

Test method

Send a valid InsertResult request to the service and verify that an appropriate response according to this specification is returned. Afterwards, send an InsertResult request to the

Copyright © 2012 Open Geospatial Consortium.

129

OGC 12-006 service where the resultValues are not encoded as defined in the referenced result template (which defines both the structure and encoding of the values), and verify that the service responds with an appropriate exception message. Test type Test

Test

Test

130

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/ir-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irresponse

Test purpose

Check that the service returns an InsertResultResponse as defined in Subclause 11.1.2.2 of this specification.

Test method

Send a valid InsertResultTemplate request to the service. Verify that service returns a response as defined in Subclause 11.1.2.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/ir-exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irexception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the InsertResult operation.

Test method

Send invalid InsertResult requests to the server and verify that the server returns appropriate exception messages according to section 11.1.2.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultInsertion/ir-exceptionunknown-result-structure Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultInsertion/irexception-unknown-result-structure

Test purpose

Check that an Exception is returned with exceptionCode value “InvalidParameterValue” and locator value “template”, if the structure and encoding of the inserted results does not adhere to the resultStructure and resultEncoding defined in the

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 ResultTemplate inserted beforehand. Test method

Send an invalid InsertResult request to the service containing results encoded in another structure and encoding as defined in the template inserted beforehand. Verify that an Exception is returned with exceptionCode value “InvalidParameterValue” and locator value “template”.

Test type

Conformance

14.4.2 Conformance Class: Result Retrieval This conformance class defines conformance tests for result retrieval from a SOS. http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval Requirements

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/grt-requeststructure

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grtrequest-structure

Test purpose

Check that the service accepts GetResultTemplate requests as defined in Subclause 11.2.1.1 of this specification.

Test method

Send a valid GetResultTemplate request to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/grt-responsestructure Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grtresponse-structure

Test purpose

Check that the service returns a GetResultResponse as defined in Subclause 11.2.1.2 of this specification.

Test method

Send a valid GetResultTemplate request to the service. Verify that the service returns a response as defined in Subclause

Copyright © 2012 Open Geospatial Consortium.

131

OGC 12-006 11.2.1.2 of this specification. Test type Test

Test

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/grt-exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grtexception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the GetResultTemplate operation.

Test method

Send invalid GetResultTemplate requests to the server and verify that the server returns appropriate exception messages according to section 11.2.1.3 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/gr-requeststructure Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grrequest-structure

Test purpose

Check that the service accepts GetResult requests as defined in Subclause 11.2.2.1 of this specification.

Test method

Send a valid GetResult request to the service and verify that an appropriate response according to this specification is returned.

Test type

Conformance

Test http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/gr-parameters

132

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grparameters

Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/gromitting-parameters

Test purpose

Check that the service returns result values from all observations that match the specified parameter values of the GetResult request.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test

Test method

Send several valid GetResult requests to the service and verify that the results returned match the specified parameter values of the GetResult request.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/gr-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grresponse

Test purpose

Check whether the service response is returned as defined in Subclause 11.2.2.2 of this specification.

Test method

Send a valid GetResult request to the service and verify that the response is valid according to the model defined in Subclause 11.2.2.2 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/gr-responseempty Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grresponse-empty

Test purpose

Check that the service response contains a resultValues property with “null” value, if no observation matches the parameters of the GetResult request.

Test method

Send a valid GetResult request to the service containing parameters that do not match the observations provided by the SOS (e.g. by choosing a temporal filter that targets observations from the year 40000). Verify that the response contains an empty resultValues property.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/resultRetrieval/gr-exception Requirement

http://www.opengis.net/spec/SOS/2.0/req/resultRetrieval/grexception

Test purpose

Check that the server returns appropriate exception messages in case of an error while executing the GetResult operation.

Copyright © 2012 Open Geospatial Consortium.

133

OGC 12-006

14.5

Test method

Send invalid GetResult requests to the server and verify that the server returns appropriate exception messages according to section 11.2.2.3 of this specification.

Test type

Conformance

SOS Spatial Filtering Profile

This section describes conformance test for the spatial filtering profile. 14.5.1 Conformance Class: Spatial Filtering Profile http://www.opengis.net/spec/SOS/2.0/conf/spatialFilteringProfile Requirements

http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfile

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/spec/OMXML/2.0/conf/spatialObservation

Test

http://www.opengis.net/spec/SOS/2.0/conf/spatialFilteringProfile/observati onRestriction

Test

134

Requirement

http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfil e/observationRestriction

Test purpose

Check that the response of a GetObservation request only contains observations which are conformant to the OM_SpatialObservation defined in Section A.11 of [OGC 10-025].

Test method

Send a valid GetObservation request to the service and verify that the observations returned are conformant to Spatial observation data defined in Section A.11 of [OGC 10-025].

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/spatialFilteringProfile/observed AreaRestriction Requirement

http://www.opengis.net/spec/SOS/2.0/req/spatialFilteringProfil e/observedAreaRestriction

Test purpose

Check that the observedArea of ObservationOfferings provided in the Capabilities document contain a geometry representing the minimum bounding box of the sampling geometries of

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 observations that belong to that offering.

14.6

Test method

Query the Capabilities from the service. Afterwards, query the observations for each ObservationOffering from the service and check that the observedArea is the minimum bounding box of the sampling geometries of these observations.

Test type

Conformance

SOS Binding Extension Tests

This section defines the conformance tests for the different bindings defined in the Binding Extension in section 14. 14.6.1 Conformance Class: XML Encoding This conformance class defines test for the XML Encoding requirements class. http://www.opengis.net/spec/SOS/2.0/conf/xml-encoding Requirements

http://www.opengis.net/spec/SOS/2.0/req/xml

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Dependency

http://www.opengis.net/spec/SWE/2.0/conf/xsd-simple-components

Dependency

http://www.opengis.net/spec/SWE/2.0/conf/xsd-simple-encodings

Dependency

http://www.opengis.net/spec/OMXML/2.0/conf/observation

Dependency

http://www.opengis.net/spec/SWES/2.0/conf/XMLEncoding

Test

http://www.opengis.net/spec/SOS/2.0/conf/xml/validation Requirement

http://www.opengis.net/spec/SOS/2.0/req/xml/GeneralEncodin gRules

Test purpose

Verify that XML implementations of the conceptual types defined in this specification are valid according to their XML Schema implementation.

Test method

For all XML instance documents received from the service or XML instance child elements that are in the namespace http://www.opengis.net/sos/2.0, verify that they are valid

Copyright © 2012 Open Geospatial Consortium.

135

OGC 12-006 according to their XML Schema definition listed in Table 47. NOTE: the sos.xsd can be used for validating any such XML instance against its schema definition. Test type

Conformance

14.6.2 Conformance Class: KVP Binding Extension http://www.opengis.net/spec/SOS/2.0/conf/kvp-core Requirements

http://www.opengis.net/spec/SOS/2.0/req/kvp-core

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/url-encoded-values

Test

136

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/urlencoded-values

Test purpose

Check that the server accepts URL encoded values.

Test method

Send a valid GetCapabilities KVP request to the service and verify that the server returns an appropriate response as specified in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/case-sensitivity Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/casesensitivity

Test purpose

Verify that the server checks case-sensitivity of parameter values.

Test method

Send two GetCapabilities KVP requests to the service, one with a case-sensitive encoding of parameter values and one without (with then incorrect values). Check that the server responds with an Exception in the latter case.

Test type

Conformance

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Test

Test

Test

Test

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/gc-request Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-request

Test purpose

Check that the server accepts a GetCapabilities KVP request as defined in section 13.2.1.

Test method

Send a valid GetCapabilities KVP request to the service and verify that the server returns an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/gc-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gc-response

Test purpose

Check that the server returns a GetCapabilities response as defined in section 8.1.2.

Test method

Send a valid GetCapabilities KVP request to the service and verify that the server returns a valid Capabilities response.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/ds-request Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-request

Test purpose

Check that the server accepts a DescribeSensor KVP request as defined in section 13.2.2.

Test method

Send a valid DescribeSensor KVP request to the service and verify that the server returns an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/ds-time-encoding Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-timeencoding

Copyright © 2012 Open Geospatial Consortium.

137

OGC 12-006

Test

Test

Test

138

Test purpose

Check that the server accepts validTime parameter values compliant to [ISO 8601].

Test method

Send a valid DescribeSensor KVP request containing a validTime parameter value compliant to [ISO 8601] to the service and verify that the server returns an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/ds-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/ds-response

Test purpose

Check that the server returns a DescribeSensor response as defined in section 13.2.2.

Test method

Send a valid DescribeSensors KVP request to the service and verify that the server returns a valid response.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/go-request Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-request

Test purpose

Check that the server accepts a GetObservation KVP request as defined in section 13.2.3.

Test method

Send a valid GetObservation KVP request to the service and verify that the server returns an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/go-BBOX-encoding Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-BBOXencoding

Test purpose

Check that the BBOX parameter is encoded according to the definition in section 13.2.3.

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

Test

Test

Test method

Send a valid GetObservation KVP request containing a BBOX parameter to the service and verify that the server returns observations matching the BBOX of the request.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/go-temporalFilterencoding Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/gotemporalFilter-encoding

Test purpose

Check that the temporalFilter parameter is used to filter on the temporal property of requested observations specified in the valueReference. Separated by commas, the first value of the temporalFilter defines the valueReference and the second value shall be encoded compliant to [ISO 8601]. Instances and periods of time shall be supported.

Test method

Send a valid GetObservation KVP request containing a temporal filter as defined above to the service and verify that the server returns observations with values for the temporal property (as specified in the valueReference) that match the temporalFilter.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/go-response Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvp-core/go-response

Test purpose

Check that the server returns a GetObservation response as defined in section 13.2.3.

Test method

Send a valid GetObservation KVP request to the service and verify that the server returns a valid GetObservation response.

Test type

Conformance

14.6.3 Conformance Class: GetFeatureOfInterest KVP Binding http://www.opengis.net/spec/SOS/2.0/conf/kvp-gfoi

Copyright © 2012 Open Geospatial Consortium.

139

OGC 12-006

Requirements

http://www.opengis.net/spec/SOS/2.0/req/kvp-foiRetrieval

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/core

Test

http://www.opengis.net/spec/SOS/2.0/conf/kvp-core/foiRetrieval-request

Test

Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvpfoiRetrieval/gfoi-request

Test purpose

Check that the server accepts a GetFeatureOfInterest KVP request as defined in section 13.3.

Test method

Send a valid GetFeatureOfInterest KVP request to the service and verify that the server returns an appropriate response as defined in this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/kvp-foiRetrieval/BBOX-encoding Requirement

http://www.opengis.net/spec/SOS/2.0/req/kvpfoiRetrieval/BBOX-encoding

Test purpose

Check whether the spatialFilter parameter is encoded according to the definition in section 13.3.

Test method

Send a valid GetFeatureOfInterest KVP request containing a spatialFilter parameter to the service and verify that the server returns features of interest of observations whose spatial properties (identified via the valueReference in the spatialFilter parameter) match the spatialFilter of the request.

Test type

Conformance

14.6.4 Conformance Class: SOAP Binding http://www.opengis.net/spec/SOS/2.0/conf/soap Requirements

http://www.opengis.net/spec/SOS/2.0/req/soap

Dependency

http://www.opengis.net/spec/SOS/2.0/conf/xml

Dependency

http://www.opengis.net/spec/SWES/2.0/conf/SOAPBinding

140

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 Test

Test

Test

http://www.opengis.net/spec/SOS/2.0/conf/soap/exceptions Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/exceptions

Test purpose

Check that the service returns exception codes defined by Subclause 8 in [OGC 06-121r3] and Subclause 15 in [OGC 09001] as well as clauses 8.3.3 and 11.2.1.3 in this standard and that the Exceptions are encoded as defined in Subclause 19.2 of [OGC 09-001].

Test method

Send invalid SOAP requests to the service and verify that the server returns valid exception codes encoded as defined in Subclause 19.2 of [OGC 09-001].

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/soap/action-uris Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/action-uris

Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/action-urisexceptions

Test purpose

Check that the service accepts and returns valid action URIs as defined in Subclause 0 of this specification.

Test method

Send valid SOAP requests to the service and verify that the server accepts and returns valid action URIs as defined in Subclause 0 of this specification.

Test type

Conformance

http://www.opengis.net/spec/SOS/2.0/conf/soap/message-body Requirement

http://www.opengis.net/spec/SOS/2.0/req/soap/message-body

Test purpose

Check that the service accepts and returns valid XML encoded requests and responses contained in the body of the SOAP messages.

Test method

Send valid SOAP requests for each supported operation to the service and verify that the service returns valid XML encoded responses. Validate the requests and responses with the schema defined in section 13.1.

Copyright © 2012 Open Geospatial Consortium.

141

OGC 12-006 Test type

142

Conformance

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

15 Annex B - Identifier Handling (informative) This Annex describes the handling of identifiers for the various resources associated with an SOS. The general usage of identifiers in SWE services is described in Clause 16 of the SWE Service Model standard [OGC 09-001], which serves as a basis for this specification. The SWE Service Model defines that each object type (e.g. types for procedure, observed property, or observations) has identity. Unlike in GML, a SWES object does not necessarily have an XML attribute that provides identity within an XML instance document (see clause 24.2.4.1 in [OGC 09-001]), since SWES cannot rely on a single data encoding for those objects. Instead, SWES defines that it is the responsibility of the service to assign and maintain identifiers to all elements that are referenceable (using xlink:href from other elements). Furthermore - as explained in [OGC 09-001], Clause 16.3.1 - each SWES object has an identifier property that is defined as of type ScopedName in the UML model, and is encoded as type xs:anyURI in the XML Schema. Therefore, a SWES object can be uniquely identified via a single URI. However, note that this is not the case for GML feature identifiers, which are encoded (in XML) as a gml:identifier element with a codeSpace (of type xs:anyURI) attribute and an element value of type xs:string. This is explained in more detail in [OGC 09-001] section 16.3.1. Due to the nature of mapping SOS operation request properties that identify / point to a GML feature from the UML model to XML Schema, clients can only use a single URI value to identify a GML feature in a SOS operation request. The default behavior of a SOS therefore is to ignore the codeSpace of the gml:identifier and to just perform an equality check of the given URI with the element value of the gml:identifier. A SOS should ensure that the gml:identifier element values of the GML features it manages (e.g. observations and their features of interest) are unique – at least in the scope of the service. B.1

Identifying a Procedure

The procedure of an observation in the O&M model is of type OM_Process. In the service model of the SOS, the OM_Process type is used within the observation offering to list the procedures that are associated with the observations hosted by the SOS. The actual encoding of an OM_Process is unknown and can be anything, from SensorML over any GML Application Schema to some new sensor description format. Hence, we cannot rely on finding an identifier for the procedure within its encoding. I.e., it is impossible for an SOS implementation to do a generic search for the identifier value inside of a given OM_Process encoding (unless the SOS follows domain specific restrictions of the possible encodings). Thus, after successfully inserting a procedure/sensor into the SOS using the InsertSensor operation, the SOS returns a newly created pointer for this procedure (see Clause 13.2.3 in [OGC 09-001]). This newly created pointer is the identifier (a URI) used by the SOS to address the procedure. Hence, when inserting new observations into the SOS for this new procedure, its identifier needs to be specified. Thereby, the procedure identifier is specified as the value of the xlink:href attribute of the procedure element of an observation. In consequence, the value stored in OM_Observation/procedure/@xlink:href shall be the same as the identifier of the procedure of

Copyright © 2012 Open Geospatial Consortium.

143

OGC 12-006 the observation offering to which the observations are inserted. This identifier is given in the element ObservationOffering/procedure in the Capabilities of an SOS. The identifier of the procedure can but does not need to be contained as identifier in the actual procedure description. The identifier value could be contained, for example, in the gml:identifier or some other field - this depends on the actual encoding of a given procedure description. Due to the variety of possible encodings for the procedure description, a containment of the identifier in the encoding may be not possible. B.2

Identifying an Observation Offering

As Requirement 21 of this document states, an SOS shall assign a unique identifier value to each of its observation offerings. A new offering is created, when a sensor/procedure gets inserted with the InsertSensor operation. In the XML encoding, the offering identifier (a URI) is contained in the swes:identifier property of the sos:ObservationOffering contained in the contents section of the Capabilities. B.3

Identifying an Observed Property

The identifier handling of an (observed) property resource of type GFI_PropertyType is similar to the identifier handling of OM_Process objects. The encoding of the property is unknown and hence the identifier in the encoding of a GFI_PropertyType can be anything. Thus, it is impossible to search the identifier in a given GFI_PropertyType instance. However, the difference is that the SOS does not need to manage the actual resources. The value of each property that is of type GFI_PropertyType is always the identifier for / pointer to the actual GFI_PropertyType resource. The identifier (the URI) of an instance of the GFI_PropertyType is used as the value of:

B.4

the observedProperty element in an sos:ObservationOffering

the xlink:href attribute of the observedProperty element in an OM_Observation Identifying a Feature of Interest

For features of interest, there is a big difference to the other identifiable types. Since a feature of interest is always of type GFI_Feature (which is in XML encoded a subtype of AbstractFeature), its encoding supports a gml:identifier property. Hence, an SOS can find the identifier of a feature of interest when it is inserted into the SOS via the InsertObservation or InsertResultTemplate operations. Note, however, that features of interest do not necessarily contain a gml:identifier value. It is in the responsibility of observation publishers to provide these identifiers. If a feature of interest does not have a gml:identifier value and a client request – for example a GetObservation request – contains a list of feature of interest identifiers, then that feature of interest will not match the request (as it cannot match the identifier filter) and thus will not be included in the response.

144

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006 While inserting an observation into the SOS, the feature of interest of the observation can be encoded inline of the observation instance or given as a reference. Whenever the feature of interest is given by reference, it is not recommended that the SOS implementation stores the feature instance, but instead it should store the reference as given in the attribute OM_Observation/featureOfInterest/@xlink:href. Then, if the SOS needs to search for a specific feature of interest identifier in consequence of an operation request, the service would need to resolve the reference and check the gml:identifier value of the referenced feature. This is necessary as the feature is governed outside of the SOS and may thus be altered without the SOS knowing. B.5

Identifying an Observation

In the XML implementation of the O&M data model, the identifier of an observation is stored in the gml:identifier property (ignoring the codeSpace attribute). Whenever an observation is requested by identifier (e.g., via GetObservationById operation), the SOS implementation has to search in the gml:identifier field of all available observations to respond to that request.

16 Annex C - Phenomena and Units of Measure (informative) C.1

Identifying and referencing Phenomena and Units of Measure

A critical issue for interoperability is defining a standard way to refer to the phenomena that are measured by sensors and the units of measure for those phenomena. This is important for both (i) discovery of SOS service instances in a catalog and (ii) to parameterize a request to a given service instance that offers a choice of observed properties. Because SOS is intended to be used in a wide variety of applications in a large number of application domains it is not feasible to construct a single comprehensive and authoritative dictionary for phenomena and units of measure. Observable phenomena include most properties of all feature types in all application domains (see O&M). The range of different phenomena and units of measure is large, unknown a-priori, and in fact both unknowable and incomputable. Phenomena and units of measure are often specific to a given domain and the mechanism used to reference them must support a decentralized approach. One goal of SOS and SWE in general is to specify a standard mechanism for consistently identifying phenomena and units of measure that will scale (up or down) to handle any number of definitions in any application domain. The mechanism for identifying phenomena and units of measure must be flexible enough to handle this. The solution for identifying phenomena and units of measure is to use external references. These may resolve to resources expressed in a variety of forms, utilizing various technologies including semantic web representations. GML dictionaries provide a relatively lightweight format which is compatible with the GML representation of data and web-based addressing patterns used by SOS. Services and clients use URIs to refer to specific entries in a particular GML dictionary. The URI might be a URN in cases where the reference is to phenomena or units of measure that are defined by an OGC dictionary or a dictionary hosted by another well-known organization. URN values using OGC as the authority must follow the format specified in OGC document 06023r1 - Definition identifier URNs in OGC namespace.

Copyright © 2012 Open Geospatial Consortium.

145

OGC 12-006 A URL may be used when the reference is to a new or non-standard definition, for example in the case that a service provides its own dictionary or uses a third-party dictionary that is not wellknown. If the specific definition is a sub-element within a dictionary provided as a single resource, then its URL must include a fragment identifier or XPointer to locate the definition within the dictionary. C.2

Describing and defining Phenomena and Units of Measure

Entities like units of measure and phenomena are not physical objects in the real world. They are concepts and can only be defined by convention or by their relationship to other intangible concepts. Phenomena or units of measure that are defined in reference to other types can be considered to be derived or constrained entities and can be derived from more basic entities. Concepts like phenomena and units of measure occupy a different meta-level in the information modeling hierarchy, and their definitions are usually subject to more rigorous governance arrangements, compared with “instance” level data, such as observations and sensor instances. Hence, they will ideally be managed in a registry environment. The GML Dictionary representation may be thought of as a “static” view of such a collection of resources that would usually be provided by a service, such as a register or catalogue. The SWE initiative relies on the existing GML support for identifying or defining units of measure. This is based on the usual hierarchy of base, derived and “other” (or “conventional”) units, such as defined by the Systeme International. The mechanism for deriving units is welldefined and can be done automatically using software as long as the base units are commonly understood. Ideally, though, UCUM symbols are used. A GML conformant schema for describing phenomena derived by combination and/or constraining base phenomena was developed as part of the SWE initiative. This schema allows for the definition of base phenomena in much the same way that base units are defined in GML. Derived phenomena can be developed as a constraint on an existing phenomenon, an aggregation of existing phenomena, or as a composite of existing phenomena. SensorML 1.0.1 contains a schema for describing such phenomena.

146

Copyright © 2012 Open Geospatial Consortium.

OGC 12-006

17 Annex D - Relationship to Other OGC Web Service Standards (informative) This Annex describes the relationships of the SOS to other OGC service specifications which are also used to distribute geospatial data. Right now only the relationship to the Web Feature Service (WFS) is described. D.1

Relationship to Web Feature Service

The approach that has been taken in the development of SOS, and the SWE specifications on which it depends, is to carefully model sensors, sensor systems, and observations in such a way that the model covers all varieties of sensors and supports the requirements of all users of sensor data. SOS leverages the standard properties of these two data types (sensors, observations) to provide specialized operation signatures for observation data. This may be contrasted with the approach taken in the Web Feature Service (WFS). WFS is based on a generic definition of a geographic feature that is flexible enough to encompass any realworld entity, and uses GML application schemas to define the feature type exposed by a specific service instance. Hence, the WFS “get data” request is highly parameterized since it must be fully generic. With this approach, interoperability requires organizations to agree on domain-specific GML application schemas. Clients that access a WFS for rich processing in a particular domain must have a-priori knowledge of the application schemas used in that domain. The SOS defines a common model for all sensors, sensor systems and their observations. This model is “horizontal” since it applies to all domains that use sensors to collect data. The domainspecific details are encapsulated in the second layer (features-of-interest, observed properties, sensor descriptions) allowing the basic “observation” to be processed by a generic client. In that sense, the SOS also provides feature rich access to observation data and metadata.

Figure 17-1. Relationship between SOS and WFS where WFS is providing features of interest

Figure 17-1 and Figure 17-2 contain two simple examples how to couple SOS and WFS. In the first figure, the SOS is providing dynamic property values encoded in O&M observations for certain features of interest. These features are provided by an external WFS. For example, the

Copyright © 2012 Open Geospatial Consortium.

147

OGC 12-006 SOS is providing surface temperature for a certain lake. Then the dynamic surface temperature values are provided by the SOS whereas the feature of interest, the lake, is provided by a WFS instance. As described above, the advantage for using an SOS is that it offers the surface temperature values and its metadata in the well-defined O&M format and that pre-defined filters (such as for time, result quality or producing procedure) can be used instead of the generic GetFeature operation of the WFS for retrieving the observations.

Figure 17-2. Relationship between SOS and WFS where SOS is encapsulating WFS

Figure 17-2 shows another possibility for coupling SOS and WFS instances. In this case, the SOS is using a WFS at the backend for handling the features of interest. The SOS offers both the observations as well as the features of interest. In the example above, the client can retrieve the surface temperature observations as well as the feature of interest, the lake, from the same SOS instance. The operation for retrieving features of interest through the SOS interface is kept simple, as there is only a limited set of query parameters. The two examples above point out that it is not a question whether you want to use either SOS or WFS, but a question of how to combine or couple the two services. As stated above, the SOS describes a WFS profile with pre-defined observation feature types from the O&M specification and specialized operation signatures for retrieving these observations. The specialization on O&M feature data also enables the SOS to provide a more detailed summary of the observations stored by the service in the service metadata document. This enables registries to harvest the information, improving the discovery of observation data. It also enables clients to generate and perform more informed requests to retrieve observation data. Usually, the SOS is used for providing dynamic property values for certain features of interest in the form of time series. These features of interest can be served either by the SOS instance itself (via GetFeatureOfInterest operation) or by an external WFS.

148

Copyright © 2012 Open Geospatial Consortium.

Related documents

Record · ID 601187 · SHA-256 59bce9ee569f93a6
Conceptio Open Knowledge Archive — every document is proof-bundled with source, license, and retrieval metadata.