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

STA V2.0 Design Draft #167

Open
humaidkidwai opened this issue Sep 28, 2023 · 14 comments
Open

STA V2.0 Design Draft #167

humaidkidwai opened this issue Sep 28, 2023 · 14 comments
Labels
data model sensing v2.0 This change should be discussed for v2.0 of the sensing document.

Comments

@humaidkidwai
Copy link
Collaborator

humaidkidwai commented Sep 28, 2023

I designed a draft data model that addresses some of the concerns the community has had over the past couple of years and also attempts to align with OMS V3.

STA (1)

ObservationCollection
In TC Singapore, perhaps this was debated as to whether or not is it really a collection of observations or just a Datastream renamed to ObservationCollection.
[1] As per OMS, an ObservationCollection should be homogeneous or summarizing type.
[2] Should ObservationCollection be allowed to contain different types of observations that may potentially violate the OBSC req set out by OMS? Will it help in addressing issues?
[3] resultType is adopted as per SWE Common JSON schema (see #122 )

Deployment
This entity describes the current state of observers (read Sensors) in their association with Host (Thing (?))
[1] position property may be used to describe geographic location of sensors for moving things?

ObservingProcedure
See #160
Do we need it?

FeatureOfInterest
In order to introduce sampling in STA, FoI can be specialized further to pFOI and uFOI as specified in OMS. This also allows to extend pFOI by introducing and linking Sampling entitites with it. pFOI may act as a Sample proxy in the design

Please feel free to critique and put forward your suggestions

edit: changed the out-dated in-line image to a link to avoid possible confusion

@hylkevds hylkevds added the sensing v2.0 This change should be discussed for v2.0 of the sensing document. label Nov 22, 2023
@hylkevds
Copy link
Contributor

hylkevds commented Feb 20, 2024

Core Model:

STA v2.0 Core Model

OM Extension

Adds Deployment and ObservingProcedure
OM Extension Data Model

Sampling Data Model:

Tasking Data Model

Relations Data Model:

Tasking Data Model

Tasking Data Model:

Tasking Data Model

Tasking Data Model, illustrating the mirroring of Tasking and Sensing:

Tasking Data Model

@humaidkidwai
Copy link
Collaborator Author

humaidkidwai commented Feb 20, 2024

resultTime::Observation, time::PreparationStep needs to be of type TM_Instant. As described in #177 the way OData defines it is DateTimeOffset, this should be elaborated in the OData binding section of the standard and not in the data model.

@hylkevds
Copy link
Contributor

I fixed the image.

@humaidkidwai
Copy link
Collaborator Author

Is the Deployment entity to be included in the Core Sensing Part of the document?

@hylkevds
Copy link
Contributor

Updated images:
observationType --> resultType
deploymentTime --> time
samplingTime --> time
samplingLocation --> location
Sampling/parameters --> properties
Sampling/location type --> ANY

@hylkevds
Copy link
Contributor

Changed Sampling -> Thing relation cardinality to 0..1.
There is no need to require a Thing/Host for a Sampling, since the domain relation SampledFeature is mandatory.

@hylkevds
Copy link
Contributor

I've created a prototype for testing with this data model:

https://ogc-demo.k8s.ilt-dmz.iosb.fraunhofer.de/FROST-MODELV2/

It has the V2 proposed data model with the v1.1 API.

@michcfr
Copy link

michcfr commented Jul 18, 2024

I've created a prototype for testing with this data model:

https://ogc-demo.k8s.ilt-dmz.iosb.fraunhofer.de/FROST-MODELV2/

It has the V2 proposed data model with the v1.1 API.

Hello, would it be possible to download the FROST-MODELV2 prototype from github?

@hylkevds
Copy link
Contributor

Hello, would it be possible to download the FROST-MODELV2 prototype from github?

Yes, you can use the Docker images for it:

Or build it yourself from the develop-dataModelV2 branch

Enable the V2 model with the environment variables:

# Disable V1 model
plugins_coreModel_enable=false
# Enable model loader, needed for the v2 plugin
plugins_modelLoader_enable=true
# Enable V2 model
plugins_coreModelV2_enable=true
# Enable the (optional) OM model
plugins_modelOM_enable=true
# Enable the (optional) Sampling model
plugins_modelSampling_enable=true
# Enable the (optional) Relations model
plugins_modelRelations_enable=true

The database is currently not compatible with the V1 model, so don't put this over an existing V1.1 installation. Things may also break in the future...

@KathiSchleidt
Copy link
Collaborator

Shouldn't we have the core trinity (name, definition, description) of STA attributes on ALL Classes.

Somehow PreparationStep got link in place of definition, Sensor has never had a definition. Anything against doing this?

@hylkevds
Copy link
Contributor

I've put the build of my latest draft at: https://hylkevds.github.io/23-019/23-019.html

@hylkevds
Copy link
Contributor

Shouldn't we have the core trinity (name, definition, description) of STA attributes on ALL Classes.

Somehow PreparationStep got link in place of definition, Sensor has never had a definition. Anything against doing this?

I think adding a place for an external identifier is a good idea. That also makes it easier to link to other APIs.
For Core this would be all classes except Observation and HistoricalLocation? Or should Observation also get one?

@humaidkidwai
Copy link
Collaborator Author

humaidkidwai commented Oct 28, 2024

Shouldn't we have the core trinity (name, definition, description) of STA attributes on ALL Classes.

I agree. But wouldn't metadata be then redundant in Sensor entity if definition would essentially define the same?

For Core this would be all classes except Observation and HistoricalLocation? Or should Observation also get one?

I am of the view that Observation should be lean and lightweight for the sensors to push to the server and these attributes wouldn't be very useful.
HistoricalLocation however may benefit from definition and shall be more helpful with description

@hylkevds
Copy link
Contributor

definition is a link to an external reference. metadata is also meant to contain the actual SensorML description. There is overlap, since the definition could point to a sensorML description too, but in cases where people do not have an extra external definition server, having the data in the entity would be valuable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data model sensing v2.0 This change should be discussed for v2.0 of the sensing document.
Projects
None yet
Development

No branches or pull requests

4 participants