Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

23-019 document update #183

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions 23-019.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
:published-date: 2029-03-30
:fullname: Hylke van der Schaaf
:fullname_2: Steve Liang
:fullname_3: Humaid Kidwai
:fullname_4: Kathi Schleidt
:fullname_3: Kathi Schleidt
:fullname_4: Humaid Kidwai
:docsubtype: implementation
:keywords: ogcdoc, OGC document, API, OData, openapi, html, MQTT
:submitting-organizations: Fraunhofer-Gesellschaft, Germany; University of Calgary, Canada; SensorUp Inc., Canada; Keys, USA; DataCove e.U., Austria
:submitting-organizations: Fraunhofer-Gesellschaft, Germany; University of Calgary, Canada; DataCove e.U., Austria
:mn-document-class: ogc
:mn-output-extensions: xml,html,doc,pdf
:local-cache-only:
Expand Down Expand Up @@ -46,27 +46,27 @@ include::sections/clause_05_conventions.adoc[]

include::sections/clause_06_overview.adoc[]

include::sections/clause_07a_meta_model.adoc[]
include::sections/clause_07a_sensing_core_entities.adoc[]

include::sections/clause_07b_sensing_entities.adoc[]
include::sections/clause_07b_sensing_OM_extension.adoc[]

include::sections/clause_07c_sensing_OM_extension.adoc[]
include::sections/clause_07c_sampling_entities.adoc[]

include::sections/clause_07d_sampling_entities.adoc[]
include::sections/clause_07d_actuation_entities.adoc[]

include::sections/clause_07e_actuation_entities.adoc[]
include::sections/clause_08a_meta_model.adoc[]

include::sections/clause_08a_abstract_api_overview.adoc[]
include::sections/clause_08b_abstract_api_overview.adoc[]

include::sections/clause_08b_rest_api_read.adoc[]
include::sections/clause_08c_rest_api_read.adoc[]

include::sections/clause_08c_rest_api_create_update_delete.adoc[]
include::sections/clause_08d_rest_api_create_update_delete.adoc[]

include::sections/clause_08d_rest_api_batch_requests.adoc[]
include::sections/clause_08e_rest_api_batch_requests.adoc[]

include::sections/clause_08e_rest_api_data_array.adoc[]
include::sections/clause_08g_pubsub_api.adoc[]

include::sections/clause_08f_pubsub_api.adoc[]
include::sections/clause_08f_rest_api_data_array.adoc[]

include::sections/clause_09a_bindings_http.adoc[]

Expand Down
Binary file modified images/GRP0001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified images/GRP0002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/GRP0003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions images/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Image files for graphics go here. Image files for figures go in the "figures" directory. Only place in here images not used in figures (e.g., as parts of tables, as logos, etc.)

Each graphic is a separate file with the naming convention:

"GRPn.xxx" where "n" is a sequential number with leading zeroes appropriate for the total number of graphics and "xxx" is the appropriate extension for the file type.
2 changes: 1 addition & 1 deletion metanorma.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
metanorma:
source:
files:
- 23-019.adoc
- document.adoc

30 changes: 16 additions & 14 deletions sections/clause_06_overview.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[[overview1]]
[obligation=informative]
== SensorThings API overview

Clauses not Containing Normative Material

[[who-should-use]]
=== Who should use the OGC SensorThings API
Paragraph
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That heading should not have been removed.



Organizations that need web-based platforms to manage, store, share, and analyze IoT-based sensor observation data should use the OGC SensorThings API.
Expand Down Expand Up @@ -50,14 +50,16 @@ For the Things whose location changed, the HistoricalLocations entities offer th
A Thing also can have multiple Datastreams.
A Datastream is a collection of Observations grouped by the same ObservedProperty, Sensor and optionally by Feature and ObservingProcedure.
An Observation is an event performed by a Sensor that produces a result whose value is an estimate of an ObservedProperty of any given Feature which may be a proximate or ultimate FeatureofInterest.
Details of each above described entity are provided in <<sensing-entities1>>.
Details of each above described entity are provided in <<sensing-core>>.

The Sampling part is a new addition to the SensorThings API.
As is often the case, an Observation may not be a true representation of the intended Feature's Property that an Observer may be trying to Observe.
Sampling is a common strategy to understand the characteristics of an otherwise difficult-to-measure Property of any feature-of-interest.
In order to generate Samplings, a Sampler, that may be any physical device or even a human being part of a survey campaign, must carefully select a SamplingProcedure.
Samplings may be generated by a sequence of SamplingProcedures (and vice-versa), however a Sampler must employ a unique SamplingProcedure to maintain unique Sampling-Sampler-SamplingProcedure relationships.
In scenarios where a Feature is not directly available for Sampling, a PreparationProcedure composed of multiple PreparationSteps may optionally be used to generate a PreparedFeature.
In order to generate Samplings, a Sampler, that may be any physical device (or even a human being part of a survey campaign), must carefully select a SamplingProcedure.
A Sampling may be generated by a SamplingProcedure.
This SamplingProcedure can be used by multiple Samplers and conversely, a Sampler may implement multiple SamplingProcedures.
However, any Sampling that is generated by a Sampler is always associated with a unique SamplingProcedure.
In scenarios where a Feature is not directly available for Sampling, a PreparationProcedure composed of multiple PreparationSteps may optionally be used to generate a PreparedSample (Feature entity).
The entities are explained in detail in <<sampling-entities>>.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In scenarios where a Feature is not directly available for Sampling

What does that mean?
From OMS: In addition, various preparation steps may be performed on samples both before and after observations are performed on the sample.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It means when a Feature is basically a prepared Feature (or Sample). For example, in case of water quality monitoring, it is not feasible to have the entire River Feature available to observe, a PreparationProcedure is applied to get a sample of water

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, preparation procedures are not used to create a sample. Sampling procedures create samples. Preparation procedures are applied to samples to prepare them for measuring, or to conserve them like with specimens.


The Tasking part provides a standard way for parameterizing - also called tasking - of taskable IoT devices, such as individual sensors and actuators, composite consumer / commercial / industrial / smart cities in-situ platforms, mobile and wearable devices, or even unmanned systems platforms such as drones, satellites, connected and autonomous vehicles, etc.
Expand All @@ -67,7 +69,7 @@ A TaskingCapability characterizes an Actuator's (or in some cases, a Thing's) ab
The Tasking Data Model thus mirrors the Sensing Data Model.
Each of these entities are elaborated further in <<tasking-entities>>.

The <<sensing-entities-om-extn>> and <<relations-extension>> are optional extensions to the data model that may be used for extended data modelling requirements.
The <<sensing-OM-extension>> and <<relations-extension>> are optional extensions to the data model that may be used for extended data modelling requirements.

[[observations-measurements]]
=== SensorThings API and Relation to ISO/OGC Observations, Measurements and Samples
Expand Down Expand Up @@ -116,13 +118,15 @@ SensorThings API uses the term of Sensor to describe the Observer that is used i
[[revision-differences]]
=== SensorThings API 2.0 changes from 1.1
[#sta-changes,reftext='{table-caption} {counter:table-num}']
.Changes in the SensorThings API 2.0 data model compared to v1.x
.Changes in the SensorThings API 2.0 data model compared to v1.1
[width="100%",cols="5,20a",options="header"]
|====
| *Entity* | *Changes*
| Sensor | description attribute is now optional and not mandatory
| Thing | description attribute is now optional and not mandatory
| Location | description attribute is now optional and not mandatory
| Location |
- description attribute is now optional and not mandatory
- For a Thing having multiple Locations, these Locations MAY be in same encodingTypes OR the encodingTypes MAY be be in different spaces (e.g., one encodingType in Geometrical space and one encodingType in Topological space).
| Datastream |

- description attribute is now optional and not mandatory
Expand All @@ -144,10 +148,8 @@ SensorThings API uses the term of Sensor to describe the Observer that is used i

=== Relation to OASIS-OData

The OGC SensorThings API v2 interface is not an OData interface.
The OGC SensorThings API v2 interface is not an OData interface and does not claim to be an OData service.
It specifies a subset of the OData interface, and extends it at the same time.

An SensorThings API Server implementation can implement the full OData specification.
An OData client can access a SensorThings API service.
An SensorThings API Server implementation can implement the full OData specification. An OData client can access a SensorThings API service.

EDITOR: Check if this is true
humaidkidwai marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
:sectnums: |,all|
:sectanchors:
[[sensing-entities1]]
== The SensorThings API Sensing Entities
[[sensing-core]]
== The SensorThings API Sensing Core Entities
All data model requirements classes are grouped in the following requirements class:


[requirements_class]
.Sensing Entities

====
[%metadata]
identifier:: {identifier}/req-class/datamodel/sensing
Expand All @@ -14,19 +15,13 @@ requirement:: {identifier}/req-class/datamodel/sensing/thing
requirement:: {identifier}/req-class/datamodel/sensing/location
requirement:: {identifier}/req-class/datamodel/sensing/historical-location
requirement:: {identifier}/req-class/datamodel/sensing/datastream
requirement:: {identifier}/req-class/datamodel/sensing/deployment
requirement:: {identifier}/req-class/datamodel/sensing/location
requirement:: {identifier}/req-class/datamodel/sensing/historical-location
requirement:: {identifier}/req-class/datamodel/sensing/datastream
requirement:: {identifier}/req-class/datamodel/sensing/deployment
requirement:: {identifier}/req-class/datamodel/sensing/sensor
requirement:: {identifier}/req-class/datamodel/sensing/observed-property
requirement:: {identifier}/req-class/datamodel/sensing/observing-procedure
requirement:: {identifier}/req-class/datamodel/sensing/observation
requirement:: {identifier}/req-class/datamodel/sensing/feature
====

[[sensing-entities2]]
[[sensing-entities]]
=== Sensing Entities

The OGC SensorThings API v2.0 depicts the Core Sensing entities in Figure {counter:figure-num}
Expand Down Expand Up @@ -130,8 +125,6 @@ A Thing SHOULD have only one Location.

However, in some complex use cases, a Thing MAY have more than one Location representations.
In such case, the Thing MAY have more than one Locations.
These Locations SHALL have different encodingTypes and the encodingTypes SHOULD be in different spaces (e.g., one encodingType in Geometrical space and one encodingType in Topological space).

| `HistoricalLocation` | HistoricalLocations | One mandatory to many optional
| A Thing has zero-to-many HistoricalLocations.
A HistoricalLocation has one-and-only-one Thing.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:sectnums: |,all|
:sectanchors:
[[sensing-OM-extension]]
=== Sensing Extension (Observations & Measurements)

Expand Down
Loading
Loading