SensorThings Data Model

1. Introduction

The following UML diagram shows the SensorThings API data model.

Note: We are still working on the Web pages of OGC SensorThings API. It will be available here soon. For now, you can download the old fashion PDF version. :-)



The OGC SensorThings API data model consists of two parts: (1) the Sensing profile and (2) the Tasking profile. The Sensing profile allows IoT devices and applications to CREATE, READ, UPDATE, and DELETE (i.e., HTTP POST, GET, PATCH, and DELETE) IoT data and metadata in a SensorThings service.

Managing and retrieving observations and metadata from IoT sensor systems is one of the most common use cases. As a result, the Sensing profile is designed based on the ISO/OGC Observation and Measurement (O&M) model [OGC and ISO 19156:2011].

SensorThings API has the following resources:

  • Thing
  • Locations
  • HistoricalLocations
  • Datastream
  • ObservedProperty
  • Sensor
  • Observation
  • FeatureOfInterest

  • 2. O&M: Conceptual Model of the SensorThings API

    The key to the model is that an Observation is modeled as an act that produces a result whose value is an estimate of a property of the observation target or FeatureOfInterest. An Observation instance is classified by its event time (e.g., resultTime and phenonmenonTime), FeatureOfInterest, ObservedProperty, and the procedure used (often a Sensor).

    Moreover, Things are also modeled in the SensorThings API. Further the geographical Locations of Things are useful in almost every application and as a result are included as well.

    In the Sensing profile, a Thing has Locations and HistoricalLocations. A Thing also can have multiple Datastreams. A Datastream is a collection of Observations grouped by the same ObservedProperty and Sensor. An Observation is an event performed by a Sensor that produces a result whose value is an estimate of an ObservedProperty of the FeatureOfInterest.