SSN Observation

From Semantic Sensor Network Incubator Group
Revision as of 00:22, 15 June 2011 by Llefort (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Observation



The class ssn:Observation in the ontology provides the structure to represent a single observation. An observation is a situation that describes an observed feature, an observed property, a sensor and method of sensing used and a value observed for the property: that is, an observation describes a single value attributed to a single property by a particular sensor. Observations of multiple features or multiple properties of the one feature should be represented as either compound properties, features and values or as multiple observations, grouped in some appropriate structure.

The SSN ontology defines several properties for instances of the class ssn:Observation:

  • ssn:featureOfInterest: points to the observed feature of interest. A feature of interest can be any observed real-world phenomenon (e.g., geographic entity, entity, etc.).
  • ssn:observedProperty: points to the specific quality (properties in the ontology are qualities that can be observed by a sensor; qualities, on the other hand, can also abstract, qualities of abstract things, or in some other way not able to be sensed) of the feature of interest which was observed (e.g., temperature, acceleration, or speed).
  • ssn:observedBy: points to a sensor which produced the observation (an instance of the class ssn:Sensor).
  • ssn:sensingMethodUsed: points to a method used to produce the observation (an instance of the class ssn:Sensing). This could describe, for example, a particular way in which the sensor is used to make the observation.
  • ssn:observationResult: points to a result of the observation expressed as an instance of the class ssn:SensorOutput.
  • ssn:qualityOfObservation: points to the adjudged quality of the result. This is complementary to the measurement capability information expressed for the sensor itself (see Measurement Capability).
  • ssn:observationResultTime: points to the time when the observation result became available.
  • ssn:observationSamplingTime: points to the time when the observation result applies to the feature of interest.

The last two properties are defined as object properties, as the SSN ontology does not prescribe a specific format for the representation of time instants.

The result of an observation is expressed by an instance of the class ssn:SensorOutput. The ontology defines the following properties applicable to the class:

  • ssn:isProducedBy: points to a sensor which produced the output (an instance of the class ssn:Sensor).
  • ssn:hasValue: points to the actual value of the observation (e.g., "30°C", "60 mph", etc.). This is expressed as an instance of the class ssn:ObservationValue. The ontology does not restrict the format of an observation value: the actual properties can be defined by the user or imported from a third-party ontology.
A concept map highlighting the role of the direct relationships from Observation to the other classes of the SSN Ontology

Figure 5.16 - ssn:Observation

Please note that Figure 5.16 is also a simplification of Figure 5.10. Figure 5.10, included in the Semantic Sensor Network Ontology skeleton section, describes the alignment of the SSN ontology to the DOLCE ULtra Lite ontology.

Information about the time at which the observation has been made, known has the "sampling time" and/or the time at which the result is available can be attached to the ssn:Observation class. This can be done with the help of the ssn:observationSamplingTime and ssn:observationResultTime properties.

It is also possible to provide some information on the quality of an observation through the ssn:qualityOfObservation property.

A concept map describing the properties of Observation for the handling of observation time and observation quality

Figure 5.17 - Properties of ssn:Observation

How to represent an observation of a sensor?

Observation examples (OWL)



In order to describe an observation made by a sensor, an instance of the class ssn:Observation should be used. For example, in our setting (see the Smart product example) we have a sensor which is attached to a knife and measures its acceleration to capture the time when the user is cutting. To represent its observations, we define a class AccelerationObservation as a subclass of the class ssn:Observation.

 <owl:Ontology rdf:about="http://purl.oclc.org/NET/ssnx/product/smart-knife">
 ...
 <owl:Class rdf:about="#AccelerationObservation">
   <rdfs:label>Acceleration observation</rdfs:label>
   <rdfs:comment>A class describing acceleration observations. Properties ssn:observationResult, ssn:observedBy, and 
                 ssn:observedProperty are restricted accordingly.</rdfs:comment>
   <rdfs:subClassOf rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Observation"/>
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:onProperty rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#observationResult"/>
       <owl:allValuesFrom rdf:resource="#AccelerationSensorOutput"/>
     </owl:Restriction>
   </rdfs:subClassOf>
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:onProperty rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#observedBy"/>
       <owl:allValuesFrom rdf:resource="#Accelerometer"/>
     </owl:Restriction>
   </rdfs:subClassOf>
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:onProperty rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#observedProperty"/>
       <owl:hasValue rdf:resource="&ucum;physical-quality/acceleration"/>
     </owl:Restriction>
   </rdfs:subClassOf>
 </owl:Class>
 

In this class definition, we define that the class instances are used to define the observations of acceleration made by accelerometer sensors. The output of these sensors is represented using the class AccelerationSensorOutput.

 <owl:Class rdf:about="#AccelerationSensorOutput">
   <rdfs:label>Acceleration sensor output</rdfs:label>
   <rdfs:comment>A class describing sensor output for acceleration measurements. Properties ssn:hasValue and ssn:isProducedBy are
                 restricted accordingly.</rdfs:comment>
   <rdfs:subClassOf rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#SensorOutput"/>
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:onProperty rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#hasValue"/>
       <owl:allValuesFrom rdf:resource="#AccelerationValue"/>
     </owl:Restriction>
   </rdfs:subClassOf>
   <rdfs:subClassOf>
     <owl:Restriction>
       <owl:onProperty rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#isProducedBy"/>
       <owl:allValuesFrom rdf:resource="#Accelerometer"/>
     </owl:Restriction>
   </rdfs:subClassOf>
 </owl:Class>
 

Then, having these subclasses, we can represent the results produced by our accelerometer. For example, it captured a movement of the knife with the acceleration of 0.98g. This observation can be encoded using the following three instances:

 <owl:Thing rdf:about="#KnifeCuttingObservation_435782677">
   <rdf:type rdf:resource="#AccelerationObservation"/>
   <rdfs:comment>An example of the acceleration observation produced by our ExampleWiTilt30Accelerometer. </rdfs:comment>
   <ssn:observationResult rdf:resource="#KnifeSensorOutput_2355676"/>
   <ssn:featureOfInterest rdf:resource="#Knife_123"/>
   <ssn:observedBy rdf:resource="#ExampleWiTilt30Accelerometer"/>
 </owl:Thing>
 ...
 <owl:Thing rdf:about="#KnifeSensorOutput_2355676">
   <rdf:type rdf:resource="#AccelerationSensorOutput"/>
   <rdfs:comment>An example of the acceleration sensor output produced by our ExampleWiTilt30Accelerometer. </rdfs:comment>
   <ssn:isProducedBy rdf:resource="#ExampleWiTilt30Accelerometer"/>
   <ssn:hasValue rdf:resource="#ZAxisAccelerationMeasurementValue"/>
 </owl:Thing>
 ...
 <AccelerationValue rdf:about="#ZAxisAccelerationMeasurementValue">
   <hasQuantityValue rdf:datatype="&xsd;float">0.98</hasQuantityValue>
 </AccelerationValue>
 

The measurement value is expressed using the class AccelerationValue defined as a subclass of the class ssn:ObservationValue (see section Measurement Capability). In this example, the accelerometer (expressed by an instance #ExampleWiTilt30Accelerometer) measures the acceleration of the knife to which it is attached (#Knife_123). Thus, #Knife_123 plays the role of the feature of interest. In general, a feature of interest can be any real-world object the properties of which are observed by a sensor. This can be, e.g., a geographical point (for weather sensors), a piece of equipment (for diagnostic sensors), etc.