W3C First Public Working Draft
Copyright © 2025 OGC & World Wide Web Consortium, W3C® liability, trademark, W3C and OGC document use rules apply.
The Semantic Sensor Network ontology (SSN) describes actuators and their actuations, sensors and their observations, samplers and their samplings, the procedures implemented, the features of interest and samples changed or studied, and the actuated and observed properties. The core SSN classes and properties are defined using minimal axiomatization in a module called SOSA (Sensor, Observation, Sample, and Actuator) supplemented with additional axiomatization and terms in further modules. These allow SSN to support a wide range of applications and use cases, including satellite imagery, large-scale scientific monitoring, industrial and household infrastructures, social sensing, citizen science, observation-driven ontology engineering, and the Web of Things. Alignments to some existing ontologies and specifications are provided. Patterns for application of SSN are provided.
The namespace for the core terms is http://www.w3.org/ns/sosa/
.
The suggested prefix for the SOSA namespace is sosa
.
The SOSA graph containing the core definitions is available at http://www.w3.org/ns/sosa/.
The SSN graph with the full axiomatization of the core terms is available at http://www.w3.org/ns/ssn/.
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index.
General Information
For OGC this is a Public Draft of a document prepared by the Spatio-temporal Data on the Web Working Group (SDW) — a joint W3C-OGC project (see charter). The document is prepared following W3C conventions. The document is released at this time to solicit public comment.
This document was published by the Spatio-temporal Data on the Web Working Group as a First Public Working Draft using the Recommendation track.
Publication as a First Public Working Draft does not imply endorsement by W3C and its Members.
This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.
This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent that the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
This document is governed by the 18 August 2025 W3C Process Document.
This section is non-normative.
Sensors are a major source of data available on the Web today. However, searching, reusing, integrating, and interpreting sensor data requires more than just the result of an act of sensing. For proper interpretation of these values, knowledge of the feature of interest, such as a river, the observed property, such as flow velocity, the sampling strategy, such as the specific locations and times at which the velocity was measured, and a variety of other information are required.
Furthermore, the Web of Things makes actuators and the data they produce first-class citizens of the Web. Parallel to sensors and observations, searching, reusing, integrating, and interpreting actuator data requires more than just the actuation input and result values. Knowledge of the feature of interest, such as a smart thermostat, the actuated property, such as temperature setpoint, and a variety of other information are required.
OGC's Sensor Web Enablement standards [SWE], [SensorML], [OandM], [OMS], [STA] provide conceptual models and some encodings for the annotation of sensors and their observations. [OMS] provides a comprehensive description of the characteristics of observations and samples. Integration and alignment of these with W3C Semantic Web technologies and Linked Data embeds this in a global and densely interconnected graph of data.
The ETSI Smart Applications REFerence ontology ([SAREF]) forms a shared model of consensus intended to enable semantic interoperability and data portability between solutions from different providers and among various activity sectors in the Internet of Things (IoT), such as smart energy systems, smart cities, smart homes, etc. [SAREF] provides a generic description of devices, such as sensors and actuators, the functions and individual commands they expose to some network, and the physical systems upon which these devices act.
This specification defines the Semantic Sensor Network (SSN) ontology. It provides flexible but coherent perspectives for representing the entities, relations, and activities involved in actuation, observation, and sampling.
A lightweight core for SSN, known as SOSA (Sensor, Observation, Sample, and Actuator) aims to broaden the audience and application areas that do not need the full capabilities of Semantic Web ontologies. SOSA acts as minimal interoperability fall-back level, i.e., it defines terms (classes and properties) with which data can be safely exchanged across all uses of SSN, its modules, and SOSA.
The previous edition of the SSN Ontology [vocab-ssn-20171019] harmonised earlier work from OGC ([OandM]) and W3C ([SSNX]). A new edition of the OGC/ISO standard [iso-19156-2023],Observations, measurements and samples (OMS) has updated Observations and Measurements (O&M) v2 with a number of additional features arising from more than 10 years implementation experience. This new edition of the SSN Ontology provides a canonical RDF implementation of OMS (the OMS Extension Module). In addition, [SAREF] and SSN have common contributors who work on the convergence of these reference ontologies. This new edition of the SSN Ontology provides an alignement to [SAREF] (the SSN-SAREF Alignment Module). Finally, direct experience with SSN has uncovered a variety of minor issues and possible improvements that have been addressed or accommodated. For example, with the increasing diversity of data and data providers, definitions for sensors and actuators have been broadened to include agents (including humans) and software (simulation).
This edition of the SSN Ontology is designated "2023 Edition" corresponding to the year when revision commenced. This allows a W3C document name and id to be established regardless of the final publication date. It also aligns with designation of the ISO standard that triggered the revision work — ISO 19156:2023 ([OMS]).
A number of new terms have been added to the SSN Ontology in the 2023 Edition. Those that have received little or no implementation testing are marked "non-normative" with a Warning note. These terms will be updated to normative status if implementation evidence is received during the transition process.
A change log is provided in an Annex of this document. This describes the changes since the 2017 edition [vocab-ssn-20171019]. Backward compatibility is maintained since descriptions of Actuations, Observations, Samplings, and Samples using the SSN Ontology from the 2017 edition are compatible with the SSN Ontology provided by this 2023 Edition.
An account of the Origins of SSN and SOSA through various OGC and W3C initiatives is provided in an Appendix to this document.
The SSN Ontology is defined using RDFS RDF Schema 1.1 and OWL OWL 2 Web Ontology Language Document Overview (Second Edition) using its RDF representation [owl2-rdf-based-semantics].
There are several RDF serializations available. The choice of RDF serialization is NOT prescribed by this specification. In this document, RDF fragments and examples are shown primarily using the compact Turtle notation [rdf12-turtle], with options for JSON-LD [json-ld11] in some places. OWL Restrictions are shown using the Manchester Syntax [owl2-manchester-syntax]
This section is non-normative.
Module diagrams use a notation similar to UML Package Diagrams OMG Unified Modeling Language, with folders for modules, and dashed directed connectors for dependencies. However the module diagrams MUST NOT be interpreted according to strict UML rules.
Class and property diagrams use a notation similar to UML Class Diagrams OMG Unified Modeling Language, with boxes for classes and individuals, and labelled directed connectors (associations) or class attributes for properties. However the class diagrams MUST NOT be interpreted according to strict UML rules.
In particular:
- Cardinalities are not shown and SHOULD NOT be inferred
- Object properties are generally shown as association roles.
Exceptions are (i) if a target class is unspecified (ii) to reduce clutter,
in which case object properties appear as class attributes, alongside the datatype properties
Individual members of classes in a diagrams showing examples, appear as boxes with a dotted-outline. Properties of instances are shown as dashed connectors. In some cases, a literal is shown in a box, even though it is not strictly an 'object' or 'individual' in the RDF or OWL sense (e.g., quantities, location coordinates, time values).
Classes and properties coloured grey are included in a diagram for context, but are described in a different section of the document
Connectors with open arrowheads indicate sub-class relationships, however it should be noted that these are not defined in the SOSA modules — see Expressivity for more explanation.
The purpose of the diagrams is primarily to orient the reader as to how SSN properties are related to the
SSN classes for most applications.
The associations shown in the diagrams match the soft axioms schema:domainIncludes
and
schema:rangeIncludes
in the ontology.
However, in any diagram the associations and attributes are not exhaustive:
other associations and attributes exist but are not shown where their presence in the diagram would distract
from the primary message.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, SHALL, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Data conforms to SSN if:
SSN-compliant knowledge graphs MAY include additional non-SSN class instances, object and data properties, and additional RDF data.
This section is non-normative.
The SSN Ontology is distributed in several modules. The segmentation allows users to access the knowledge they require, reducing the scope to what is necessary in a given use case. Lower level modules are independent of their higher level modules and are logically consistent on their own.
Higher level here is not to be confused with upper level ontologies. Upper level ontologies are general knowledge ontologies that can be directionally imported in many domains.
Figure 3 summarizes the modules and dependencies within the core SSN Ontology.
The SOSA Module (Sensors, Observations, Samples and Actuations) defines the core classes and properties, and provides textual definitions and other annotations. Some semantic enrichment is provided using Schema.org [schema-org] properties, but there is no formal axiomatization. SOSA may be used as-is by an audience who wish to use terminology consistent with the SSN Ontology, thus ensuring interoperability with SSN-based repositories.
SOSA is composed of four lower level modules:
Finally, SOSA imports SOSA Actuation, SOSA Observation and SOSA Sampling.
SOSA as the core, does not import any other ontologies, so it is truly independent of modules that add more expressivity and further ontological commitments to the lightweight semantics of SOSA.
The SSN Module adds axioms that formally indicate how properties relate to classes, and how classes relate to each other. SSN may be used in semantic web systems that use inferencing and reasoning, and consistency checking for datasets.
The modularization of SSN mirrors SOSA. SSN is composed of four lower level modules:
Finally, SSN imports SSN Actuation, SSN Observation and SSN Sampling.
Figure 4 summarizes the extension modules described in this document and their dependencies on the SSN Ontology.
The SOSA-OMS module imports SOSA Observation and SOSA Sampling and adds classes and properties required to provide an RDF implementation of Observations, measurements and samples (OMS). SOSA-OMS may be used by audiences for whom full conformance to [OMS] (also known as ISO 19156:2023) is a requirement
The SSN-OMS module imports SOSA-OMS and SSN Observation and SSN Sampling and adds OWL/RDFS axiomatization to the RDF implementation of [OMS]. SSN-OMS may be used by audiences for whom full conformance to [OMS] (also known as ISO 19156:2023) is a requirement, with reasoning support
The SOSA-OMS module and the SSN-OMS module are documented in section 6.1 OMS Extension Module
The Sample Relations module imports SOSA Sampling, and adds classes and properties required for the description of networks of samples.
The Sample Relations module is documented in section 6.2 Sample Relations Module.
The System Capabilities module imports SOSA and adds classes and properties required for the description of the operating conditions and capabilities of systems, in particular Sensors and Actuators.
The System Capabilities module is documented in appendix E. System Capabilities Module.
Figure 5 summarizes alignments of other ontologies and specifications with the SSN Ontology that are described in this document.
The SOSA-PROV module imports SOSA Common, and describes the alignment of SOSA to PROV-O: The PROV Ontology. SOSA-PROV may be used to integrate data designed using SSN into provenance systems.
The SOSA-PROV module is documented in section 7.1 PROV Alignment Module.
The SOSA-SAREF module imports SOSA, and describes the alignment of SOSA to ETSI TS 103 264 V4.1.1 (2025-03): SmartM2M; Smart Applications; Reference Ontology and oneM2M Mapping. SOSA-SAREF may be used to integrate data designed using SSN with data designed using SAREF.
The SOSA-SAREF module is documented in section 7.2 SAREF Alignment Module.
The SOSA-OBOE module imports SOSA Observation, and describes the alignment of SOSA to OBOE: the Extensible Observation Ontology, version 1.1. SOSA-OBOE may be used to integrate observation data structured using OBOE with data using SOSA.
The SOSA-OBOE module is documented in section 7.3 OBOE Alignment Module.
The SOSA-DUL module imports SOSA, and adds axioms that position SOSA within DOLCE UltraLite. SOSA-DUL may be used to integrate data designed using SOSA into systems otherwise built in the DOLCE UltraLite framework.
The SOSA-DUL module is documented in section 7.4 DOLCE UltraLite Alignment Module.
This section introduces the specifications for the RDF implementation of the Semantic Sensor Network Ontology.
The namespace for the core terms is http://www.w3.org/ns/sosa/
The suggested prefix for the SOSA namespace is sosa:.
Each module of the SSN Ontology is packaged as an RDF file.
The RDF representations use owl:imports
statements to implement the dependencies.
Within each graph, where further information (axioms and annotations) is added to an existing term,
rdfs:isDefinedBy
indicates the module where the term was originally defined.
The SOSA modules contain the basic definitions of the core terms with minimal axiomatization — only
rdf:type
and owl:inverseOf
— together with key annotations
rdfs:label
, skos:definition
, schema:domainIncludes
, and/or
schema:rangeIncludes
, plus other annotations as required.
Inverses are named for all object properties.
The SSN module is an OWL 2 DL ontology (OWL 2 Web Ontology Language Document Overview (Second Edition)) that contains the full axiomatization of the core
terms, importing SOSA modules and using constructors such as ObjectSomeValuesFrom
and
ObjectAllValuesFrom
, and using axioms such as SubClassOf
and
SubObjectPropertyOf
.
SOSA Common is available at http://www.w3.org/ns/sosa/common/.
SOSA Actuation is available at http://www.w3.org/ns/sosa/act/.
SOSA Observation is available at http://www.w3.org/ns/sosa/obs/.
SOSA Sampling is available at http://www.w3.org/ns/sosa/sam/.
The complete SOSA is available at http://www.w3.org/ns/sosa/.
SSN Common is available at http://www.w3.org/ns/ssn/common/.
SSN Actuation is available at http://www.w3.org/ns/ssn/act/.
SSN Observation is available at http://www.w3.org/ns/ssn/obs/.
SSN Sampling is available at http://www.w3.org/ns/ssn/sam/.
The complete SSN is available at http://www.w3.org/ns/ssn/.
This section is non-normative.
Figure 6, Figure 7, Figure 8, Figure 9, show the key classes and properties in the ontology modules, showing the general pattern for Executions, and from the perspectives of Actuation, Observation, and Sampling.
The following are alphabetical lists of the classes and properties in the SSN Ontology.
Terms added in the 2023 Edition are indicated with an asterisk*.
Classes: sosa:ActuatingProcedure*, sosa:Actuation, sosa:ActuationCollection*, sosa:Actuator, sosa:Deployment, sosa:Execution*, sosa:ExecutionCollection*, sosa:FeatureOfInterest, sosa:MaterialSample*, sosa:Observation, sosa:ObservationCollection*, sosa:ObservingProcedure*, sosa:Platform, sosa:Procedure, sosa:Property, sosa:Sample, sosa:SampleCollection*, sosa:Sampler, sosa:Sampling, sosa:SamplingCollection*, sosa:SamplingProcedure*, sosa:Sensor, sosa:SpatialSample*, sosa:StatisticalSample*, sosa:Stimulus, sosa:System
Object Properties: sosa:actsOn*, sosa:actsOnProperty, sosa:deployedAsset*, sosa:deployedOnPlatform, sosa:deployedSystem, sosa:detects, sosa:featureHasUltimateSample*, sosa:forProperty, sosa:hasDeployment, sosa:hasFeatureOfInterest, sosa:hasInput, sosa:hasInputValue*, sosa:hasMember*, sosa:hasOriginalSample*, sosa:hasOutput, sosa:hasProcedure*, sosa:hasProperty, sosa:hasProxy*, sosa:hasResult, sosa:hasSample, sosa:isSampleOfUltimateFOI*, sosa:hasSubSystem, sosa:hasUltimateFeatureOfInterest*, sosa:hosts, sosa:implementedBy, sosa:implements, sosa:inDeployment, sosa:inputFor*, sosa:inputValueForExecution*, sosa:isActedOnBy, sosa:isDetectedBy*, sosa:isFeatureOfInterestOf, sosa:isHostedBy, sosa:isMemberOf*, sosa:isObservedBy, sosa:isOriginalSampleOf*, sosa:isPropertyOf, sosa:isProxyFor, sosa:isResultOf, sosa:isResultOfMadeBySampler*, sosa:isResultOfUsedProcedure*, sosa:isSampleOf, sosa:isSubSystemOf*, sosa:isUltimateFeatureOfInterestOf*, sosa:madeActuation, sosa:madeByActuator, sosa:madeBySampler, sosa:madeBySensor, sosa:madeBySystem, sosa:madeExecution, sosa:madeObservation, sosa:madeSampling, sosa:madeSamplingHasResult*, sosa:observationRelatedTo*, sosa:observedProperty, sosa:observes, sosa:originated*, sosa:outputFor*, sosa:phenomenonOccurred*, sosa:phenomenonTime, sosa:propertyFor*, sosa:qualityOf*, sosa:relatedObservation*, sosa:resultQuality*, sosa:usedForExecution*, sosa:usedForExecutionHasResult*, sosa:usedProcedure, sosa:wasActedOnBy*, sosa:wasObservedBy*, sosa:wasOriginatedBy
Datatype Properties: sosa:endTime*, sosa:hasSimpleResult, sosa:resultTime, sosa:startTime*
The SSN classes and properties are described in the following sections, organized by module as described in Modularization. A list of all SSN properties and their inverses with the classes that are included in their domains and ranges is provided in Tabulation of properties and their inverses.
This section is non-normative.
The Common module defines terms that are common across Sensing, Observation, Sampling and Actuation applications. Some of the classes in the Common module are used as-is in applications (FeatureOfInterest, Property, Platform, Deployment). Other classes in the Common module are super-classes of more specific classes used in the application modules (Procedure, System, Execution). They all support the description of Actuation, Observation and Sampling instances using patterns that are common across the applications.
The description of the Common module is organized into the following sections:
This section is non-normative.
Figure 10 provides an overview of the classes and properties related to modeling Features of Interest and Properties.
This section introduces the following classes and properties:
sosa:FeatureOfInterest, sosa:Property, sosa:forProperty, sosa:hasProperty, sosa:isFeatureOfInterestOf, sosa:isPropertyOf, sosa:isUltimateFeatureOfInterestOf, sosa:propertyFor
IRI: http://www.w3.org/ns/sosa/FeatureOfInterest
an OWL Class
Feature Of Interest — entity that is the target of an Execution or Deployment
i.e., the entity whose property is being estimated by an Observation, or whose property is being manipulated by an Actuation, or which is being sampled or transformed by an act of Sampling, or which is the target of Executions planned as part of a Deployment.
The relationship between sosa:FeatureOfInterest, and types or classes defined in a domain model is explained below in Domain types and FeatureOfInterest
A Feature of Interest may have a geographic location. See Location and Geometry for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/Property
an OWL Class
The 2017 edition defined ActuatableProperty and ObservableProperty. Those specializations of Property are deprecated in this 2023 edition. sosa:Property should be used instead.
Property — identifiable quality of features of interest that can be observed or acted upon
A property can apply to different features of interest.
A model for the description of observable and actuatable Properties is outside the scope of the SSN Ontology. See Property definitions for links to some external resources that address this, and to some catalogues and code lists whose members may be used as instances of sosa:Property.
IRI: http://www.w3.org/ns/sosa/forProperty
an OWL Object Property
for property — relation from some Procedure or System to a Property it acts on or observes
IRI: http://www.w3.org/ns/sosa/hasProperty
an OWL Object Property
has property — relation from an entity to a Property of that entity
IRI: http://www.w3.org/ns/sosa/isFeatureOfInterestOf
an OWL Object Property
is feature of interest of — relation from a FeatureOfInterest to an Execution, Execution Collection, or Deployment, operating on it
i.e., to an Observation about it, to an Actuation acting on it, to an act of Sampling that sampled it, or to a Deployment for which it is the subject.
IRI: http://www.w3.org/ns/sosa/isPropertyOf
an OWL Object Property
is property of — relation from a Property to a FeatureOfInterest that it is a quality of
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isUltimateFeatureOfInterestOf
an OWL Object Property
isUltimateFeatureOfInterestOf added in 2023 Edition. This term is non-normative, pending further implementation experience
is ultimate feature of interest of — relation from an ultimate FeatureOfInterest to an Execution, ExecutionCollection, or Deployment, for which it is the ultimate subject
IRI: http://www.w3.org/ns/sosa/propertyFor
an OWL Object Property
property for — relation from a Property to some Procedure or System that acts on it or observes it
This section is non-normative.
Figure 11 provides an overview of the classes and properties related to modeling Procedures.
This section introduces the following classes and properties:
sosa:Procedure, sosa:hasInput, sosa:hasOutput, sosa:hasProcedure, sosa:implementedBy, sosa:inputFor, sosa:outputFor, sosa:usedForExecution
IRI: http://www.w3.org/ns/sosa/Procedure
an OWL Class
Procedure — workflow, protocol, plan, algorithm, or computational method specifying how to make an Execution
A Procedure is re-usable, and might be applied in many Executions (Actuations, Observations, or Samplings). It explains the steps to be carried out to arrive at reproducible results.
A specific model for the description of execution Procedures is outside the scope of the SSN Ontology.
IRI: http://www.w3.org/ns/sosa/hasInput
an OWL Object Property
has Input — relation from a Procedure to an input required for its execution
IRI: http://www.w3.org/ns/sosa/hasOutput
an OWL Object Property
has Output — relation from a Procedure to an output of its execution
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasProcedure
an OWL Object Property
hasProcedure added in the 2023 Edition. This term is non-normative, pending further implementation experience
has Procedure — relation from a Property to a Procedure that can observe or act on it
IRI: http://www.w3.org/ns/sosa/implementedBy
an OWL Object Property
implemented by — relation from a Procedure to a System that is capable of executing it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/inputFor
an OWL Object Property
inputFor added in the 2023 Edition. This term is non-normative, pending further implementation experience
input for — relation from an input to a Procedure that uses it in an Execution
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/outputFor
an OWL Object Property
outputFor added in 2023 Edition. This term is non-normative, pending further implementation experience
output for — relation from an output to a Procedure that generates it in an Execution
IRI: http://www.w3.org/ns/sosa/usedForExecution
an OWL Object Property
used for execution — relation from a Procedure to an Execution or ExecutionCollection made using it
This section is non-normative.
Figure 12 provides an overview of the classes and properties related to modeling Execution of Procedures.
This section introduces the following classes and properties:
sosa:Execution, sosa:ExecutionCollection, sosa:endTime, sosa:hasFeatureOfInterest, sosa:hasInputValue, sosa:hasResult, sosa:hasSimpleResult, sosa:hasUltimateFeatureOfInterest, sosa:inputValueForExecution, sosa:isResultOf, sosa:madeBySystem, sosa:phenomenonOccurred, sosa:phenomenonTime, sosa:resultTime, sosa:startTime, sosa:usedProcedure
IRI: http://www.w3.org/ns/sosa/Execution
an OWL Class
Execution — act of carrying out a Procedure using a System
The different time-properties on a sosa:Execution support the description of plans, forecasts and predictions as well as descriptions of various historical scenarios. See Temporal properties for patterns related to these.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/ExecutionCollection
an OWL Class
ExecutionCollection added in the 2023 Edition This term is non-normative, pending further implementation experience
Execution Collection — set of one or more Executions or ExecutionCollections; collections may be nested
All Execution properties may appear in an ExecutionCollection, including: hasFeatureOfInterest, usedProcedure, madeBySystem, endTime, resultTime, startTime. If they are present, the value of these properties summarize the values of the matching properties of the member Executions, where membership is either direct or transitive through one or more member Execution collections.
The following consistency rules apply to the Execution properties listed above:
The members of a collection (set) do not necessarily share a common value for any property.
Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/endTime
an OWL Datatype Property
endTime added in the 2023 Edition. This term is non-normative, pending further implementation experience
end time — instant of time when the Execution or Deployment was ended or completed
The value would usually be encoded using
xsd:dateTime
,
xsd:date
,
xsd:gYearMonth
,
and/or xsd:gYear
.
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
IRI: http://www.w3.org/ns/sosa/hasFeatureOfInterest
an OWL Object Property
has feature of interest — relation from an Execution or Deployment to its subject entity
i.e., from an Actuation to the entity whose property was modified; from an Observation to the entity whose quality was observed; from an act of Sampling to the entity that was sampled; or from a Deployment to its target
The distinction between sosa:hasFeatureOfInterest, and sosa:hasUltimateFeatureOfInterest is explored further in Proximate and Ultimate feature of interest
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasInputValue
an OWL Object Property
hasInputValue added in the 2023 Edition. This term is non-normative, pending further implementation experience.
has Input Value — assigns a value to an input defined by the Procedure that is used in an Execution
IRI: http://www.w3.org/ns/sosa/hasResult
an OWL Object Property
has result — relation from an Execution to its result
In the case of an Actuation, the result may be the value of the Property following the execution of the Procedure by the Actuator.
In the case of an Observation, the result is the value of the Property produced by the execution of the Procedure by the Sensor.
In the case of a Sampling, the result is the Sample produced by the execution of the Procedure by the Sampler.
An Execution has a single result, therefore sosa:hasResult is Functional.
The result of an actuation or observation may be a quantity. See Quantity Values and Units of Measure for patterns to describe this.
The result of an observation may be a geometry. See Location and Geometry for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/hasSimpleResult
an OWL Datatype Property
has simple result — relation from an Execution to its value expressed as a literal
In the case of an sosa:Actuation, the result may be the value of the sosa:Property following the execution of the Procedure by the Actuator.
In the case of an Observation, the result is the value produced by the execution of the Procedure by the Sensor.
The result of an actuation or observation may be a quantity. See Quantity Values and Units of Measure for patterns to describe this.
The result of an actuation or observation may be a geometry. See Location and Geometry for patterns to describe this.
"89"^^xsd:integer
"true"^^xsd:boolean
"23.5 Cel"^^cdt:ucum
"Point (145.042316 -37.919134)"^^geo:wktLiteral
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasUltimateFeatureOfInterest
an OWL Object Property
hasUltimateFeatureOfInterest added in 2023 edition. This term is non-normative, pending further implementation experience
has ultimate feature of interest — relation from a Deployment or Execution to its ultimate subject entity
i.e., from an Actuation to the ultimate entity whose property was modified; from an Observation to the ultimate entity whose property was observed; from an act of Sampling to the ultimate entity that was sampled; or from a Deployment to its ultimate target
The distinction between sosa:hasFeatureOfInterest, and sosa:hasUltimateFeatureOfInterest is explored further in Proximate and Ultimate feature of interest
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/inputValueForExecution
an OWL Object Property
inputValueForExecution added in the 2023 edition. This term is non-normative, pending further implementation experience.
Input Value for Execution — relation from an input value to an Execution that used it
IRI: http://www.w3.org/ns/sosa/isResultOf
an OWL Object Property
is result of — relation from a result to the Execution that created or caused it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/madeBySystem
an OWL Object Property
madeBySystem added in the 2023 edition. This term is non-normative, pending further implementation experience
made by system — relation from an Execution to the System that made it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/phenomenonOccurred
an OWL Object Property
phenomenon occurred — result of an Execution that this time applies to
IRI: http://www.w3.org/ns/sosa/phenomenonTime
an OWL Object Property
phenomenon time — time that the result of an Execution applies to the subject entity
It may be an interval or an instant, or some other compound temporal entity [owl-time].
The sosa:phenomenonTime is not necessarily the same as the sosa:endTime or sosa:resultTime.
In the case of sosa:Actuation, sosa:phenomenonTime SHOULD indicate the time during which the sosa:Actuator was active.
In the case of sosa:Observation, the sosa:phenomenonTime MAY be distant from the sosa:resultTime. For example in the case of forecasts the sosa:phenomenonTime is after the sosa:resultTime. In historical, geological and cosmological investigations the sosa:phenomenonTime can be far in the past, while the sosa:resultTime is contemporary.
In the case of sosa:Sampling the sosa:phenomenonTime SHOULD indicate the time during which the sampling sosa:Procedure was active. The sosa:resultTime can indicate when the sample comes into the possession of the operator.
The different time-properties on a sosa:Execution support the description of plans, forecasts and predictions as well as descriptions of arious historical scenarios. See Temporal properties for patterns related to these.
<obs1> sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2023-06-20T21:49:18+00:00"^^xsd:dateTime ;
] ;
<obs2> sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2017-04-15T23:59:30+00:00"^^xsd:dateTime
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2017-04-16T00:00:00+00:00"^^xsd:dateTime
] ;
] ;
<obs3> sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inTimePosition [
time:hasTRS ex:BP ;
time:numericPosition 12000 ;
] ;
] ;
time:hasDuration [
a time:Duration ;
time:numericDuration 500 ;
time:unitType time:unitYear ;
] ;
] ;
IRI: http://www.w3.org/ns/sosa/resultTime
an OWL Datatype Property
result time — instant of time when the Execution was completed
The value would usually be encoded using
xsd:dateTime
,
xsd:date
,
xsd:gYearMonth
,
and/or xsd:gYear
.
The different time-properties on a sosa:Execution support the description of plans, forecasts, and predictions, as well as descriptions of various historical scenarios. See Temporal properties for patterns related to these.
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/startTime
an OWL Datatype Property
startTime added in 2023 edition. This term is non-normative, pending further implementation experience
start time — instant of time when the Execution or Deployment was initiated or tasked
The value would usually be encoded using
xsd:dateTime
,
xsd:date
,
xsd:gYearMonth
,
and/or xsd:gYear
.
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
IRI: http://www.w3.org/ns/sosa/usedProcedure
an OWL Object Property
used procedure — relation from an Execution or ExecutionCollection to a Procedure used to make it
This section is non-normative.
The following figure provides an overview of the classes and properties that are specifically related to modeling systems and their deployment.
A sosa:System is an instrument or equipment, including software systems and agents where relevant, that implements a procedure in the context of executions. A system may be composed of sub-systems.
A sosa:Platform hosts one or more sosa:Systems. Stationary platforms include stations, or fixtures. Mobile platforms include vehicles, marine- and air-craft, satellites, mobile phones, etc.
A sosa:Deployment is an arrangement of assets (systems and platforms) with the intention of executing actuation, observation or sampling procedures with respect to designated features of interest for a specified time interval.
This section introduces the following classes and properties:
sosa:Deployment, sosa:Platform, sosa:System, sosa:deployedAsset, sosa:deployedOnPlatform, sosa:deployedSystem, sosa:hasDeployment, sosa:hasSubSystem, sosa:hosts, sosa:implements, sosa:inDeployment, sosa:isHostedBy, sosa:isSubSystemOf, sosa:madeExecution
IRI: http://www.w3.org/ns/sosa/Deployment
an OWL Class
Deployment — arrangement of one or more assets (Systems or Platforms) to execute Procedures with respect to designated features of interest.
A Deployment may have a geographic location. See Location and Geometry for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/Platform
an OWL Class
Platform — entity that hosts other entities, particularly Systems, and other Platforms.
A Platform may have a geographic location. See Location and Geometry for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/System
an OWL Class
System — entity that implements a Procedure in the context of an Execution
This may be a device, a piece of infrastructure, an agent (including humans), or software (simulation).
Different Systems can implement the same (reusable) Procedure for different Executions.
A System may have components, its sub-systems, which are other systems.
See Systems Types and Individuals for guidance on describing types vs. individuals.
A System may have a geographic location. See Location and Geometry for patterns to describe this.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/deployedAsset
an OWL Object Property
deployedAsset added in 2023 Edition. This term is non-normative, pending further implementation experience
deployed asset — relation from a Deployment to an asset (System or Platform).
IRI: http://www.w3.org/ns/sosa/deployedOnPlatform
an OWL Object Property
deployed on platform — relation from a Deployment to a Platform on which Systems are hosted
IRI: http://www.w3.org/ns/sosa/deployedSystem
an OWL Object Property
deployed system — relation from a Deployment to a deployed System
IRI: http://www.w3.org/ns/sosa/hasDeployment
an OWL Object Property
has deployment — relation from a System or Platform to a Deployment in which it is deployed
IRI: http://www.w3.org/ns/sosa/hasSubSystem
an OWL Object Property
See Complex devices for guidance on describing complex systems.
has subsystem — relation from a System to its component parts
IRI: http://www.w3.org/ns/sosa/hosts
an OWL Object Property
hosts — relation from a Platform to an asset (System or Platform) hosted or mounted on it
IRI: http://www.w3.org/ns/sosa/implements
an OWL Object Property
implements — relation from a System to a Procedure that it is capable of executing
IRI: http://www.w3.org/ns/sosa/inDeployment
an OWL Object Property
in deployment — relation from a Platform to a Deployment
IRI: http://www.w3.org/ns/sosa/isHostedBy
an OWL Object Property
is hosted by — relation from an asset (System or Platform), to a Platform that it is mounted on or hosted by
IRI: http://www.w3.org/ns/sosa/isSubSystemOf
an OWL Object Property
is subsystem of — relation from a component System to a System that it belongs to
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/madeExecution
an OWL Object Property
madeExecution added in the 2023 Edition. This term is non-normative, pending further implementation experience
madeExecution — relation from a System to an Execution or ExecutionCollection that it has made
Collections added in the 2023 Edition
This section is non-normative.
The results of multiple observations are typically assessed together in order to discover or detect a pattern or signal. Similarly, a single sample is usually insufficient to provide insight regarding the properties of its source entity or population.
Collections (sets) that are useful for analysis will typically be homogeneous with respect to one or more properties of the members. For example, a collection of observations of the same observed-property on the same feature of interest at a series of different times. A collection of actuations may act on different properties of the same feature of interest, but other cases also apply. A collection of samplings may use the same sampler. A collection of samples may be of the same feature (entity) of interest.
The SSN Ontology supports the description of collections (sets) primarily through the provision of:
Consistency rules for the properties of collections and their members are described in the definitions of the specific collection types ExecutionCollection, ActuationCollection, ObservationCollection, SampleCollection, and SamplingCollection.
Examples of Collections conforming to the rules are provided in Collections and their members' property values.
This section is non-normative.
Figure 14 provides an overview of the classes and properties that are specifically related to describing collections of executions or of samples.
This section introduces the following properties:
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasMember
an OWL Object Property
hasMember added in the 2023 Edition. This term is non-normative, pending further implementation experience
has member of collection — link from a Collection to an Execution or Sample or Collection of these that is part of it
rules for the consistency of values of properties of collections and properties of their members are given for each collection type.
Note that there is a single member
property.
OWL or SHACL constraints may limit the range depending on the context of different collection types.
See Time series and
Homogeneous observation collection for examples of use of
hasMember
.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/memberOf
an OWL Object Property
memberOf added in 2023 Edition. This term is non-normative, pending further implementation experience
is member of collection — link from an Execution or Sample or Collection of these, to a collection that it is part of
rules for the consistency of values of properties of collections and properties of their members are given for each collection type.
Note that there is a single member
property. OWL or SHACL constraints may limit the range depending on
the context of different collection types.
This section is non-normative.
Collections of other entities associated with sensing, actuation and sampling could use the same pattern. For example, networks of sensors and platforms (sites and stations) are common in environmental monitoring. Furthermore, higher level aggregations of both entities and activities, such as occur in the context of projects, initiatives, and campaigns, might be described using similar patterns. However, the details of these cases are currently beyond the scope of the SSN Ontology.
The PROV Ontology provides a generic framework for describing and relating Activities and Entities [prov-o]. An alignment of SSN to PROV is provided in this document. A basic Project Ontology based on PROV has also been proposed [Project-PROV]. Higher level aggregations in SSN applications should consider the PROV framework along with the recursive sosa:hasMember/sosa:isMemberOf pattern used for SSN collections.
This section is non-normative.
Figure 15 provides an overview of the core classes and properties that are specifically related to modeling Actuations.
This section introduces the following classes and properties:
sosa:ActuatingProcedure, sosa:Actuation, sosa:ActuationCollection, sosa:Actuator, sosa:actsOn, sosa:actsOnProperty, sosa:isActedOnBy, sosa:madeActuation, sosa:madeByActuator, sosa:wasActedOnBy
IRI: http://www.w3.org/ns/sosa/ActuatingProcedure
an OWL Class
ActuatingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience
Actuating Procedure — workflow, protocol, plan, algorithm, or computational method specifying how to make an Actuation
An Actuating Procedure is re-usable, and might be applied in many Actuations. It explains the steps to be carried out to arrive at reproducible results.
IRI: http://www.w3.org/ns/sosa/Actuation
an OWL Class
Actuation — act of carrying out an ActuatingProcedure using an Actuator to change the value of an actuatable Property of a FeatureOfInterest
An Actuation concerns a single Property of a single FeatureOfInterest. Changes to multiple properties, or other combinations of Actuations, may be described in an ActuationCollection.
Alternatively, applications may choose to encapsulate complexity by defining a complex property with multiple individual components, and a corresponding complex result (e.g., a vector). This approach is not prohibited by the SSN Ontology, but the details are beyond the scope of SSN.
The different time-properties on a sosa:Actuation support the description of plans, forecasts, and predictions, as well as descriptions of various historical scenarios. See Temporal properties for patterns related to these.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/ActuationCollection
an OWL Class
ActuationCollection added in 2023 Edition. This term is non-normative, pending further implementation experience
Actuation Collection — set of one or more Actuations or ActuationCollections; collections may be nested
All Actuation properties may appear in an sosa:ActuationCollection, including: sosa:hasFeatureOfInterest, sosa:usedProcedure, sosa:madeByActuator, sosa:actsOnProperty, sosa:endTime, sosa:hasResult, sosa:hasSimpleResult. If they are present, the value of these properties summarize the values of the matching properties of the member actuations, where membership is either direct or transitive through one or more member actuation collections.
The following consistency rules apply to the Actuation properties listed above:
The members of a collection do not necessarily share a common value for any property.
Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.
IRI: http://www.w3.org/ns/sosa/Actuator
an OWL Class
Actuator — System that implements an ActuatingProcedure to change the value of an actuatable Property
This may be a device, a piece of infrastructure, an agent (including humans), or software (simulation).
An Actuator may have a geographic location. See Location and Geometry for patterns to describe this.
Specific actuator types may be implemented as sub-classes
of this class or its sub-classes.
Their descriptions may capture the properties and characteristics of a whole class of actuators, corresponding with the information typically found in a spec-sheet or
data-sheet.
Individual actuator instances are members of this class or its sub-classes.
See Systems Types and Individuals for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/actsOn
an OWL Object Property
acts on — relation from an Actuator to a Property whose state may be changed by using it
IRI: http://www.w3.org/ns/sosa/actsOnProperty
an OWL Object Property
The 2017 edition defined the term ActuatableProperty as the range of sosa:actsOnProperty. That specialization of sosa:Property is deprecated in this 2023 edition.
acts on property — relation from an Actuation to the Property it acted upon
IRI: http://www.w3.org/ns/sosa/isActedOnBy
an OWL Object Property
The 2017 edition defined the term ActuatableProperty as the domain of sosa:isActedOnBy. That specialization of sosa:Property is deprecated in this 2023 edition.
is acted on by — relation from a Property to an Actuator that may change its state
IRI: http://www.w3.org/ns/sosa/madeActuation
an OWL Object Property
made actuation — relation from an Actuator to an Actuation or ActuationCollection it has made
IRI: http://www.w3.org/ns/sosa/madeByActuator
an OWL Object Property
made by actuator — relation from an Actuation or ActuationCollection to the Actuator that made it
IRI: http://www.w3.org/ns/sosa/wasActedOnBy
an OWL Object Property
wasActedOnBy added in 2023 Edition. This term is non-normative, pending further implementation experience
was acted on by — relation from a Property to an Actuation that changed its state
This section is non-normative.
Figure 16 provides an overview of the core classes and properties that are specifically related to modeling Observations.
This section introduces the following classes and properties:
sosa:Observation, sosa:ObservationCollection, sosa:ObservingProcedure, sosa:Sensor, sosa:Stimulus, sosa:detects, sosa:hasProxy, sosa:isDetectedBy, sosa:isObservedBy, sosa:isProxyFor, sosa:madeBySensor, sosa:madeObservation, sosa:observationRelatedTo, sosa:observedProperty, sosa:observes, sosa:originated, sosa:qualityOf, sosa:relatedObservation, sosa:resultQuality, sosa:wasObservedBy, sosa:wasOriginatedBy
IRI: http://www.w3.org/ns/sosa/Observation
an OWL Class
Observation — act of carrying out an ObservingProcedure using a Sensor to estimate or calculate a value of an observable Property of a FeatureOfInterest
An Observation primarily concerns a single Property of a single FeatureOfInterest. Observations of multiple properties, or other combinations of Observations, may be described in an ObservationCollection.
Alternatively, applications may choose to encapsulate complexity by defining a complex property with multiple individual components, and a corresponding complex result (e.g., a vector). This approach is not prohibited by the SSN Ontology, but the details are beyond the scope of SSN.
When the FeatureOfInterest cannot be observed directly, a Sample of it might be used in Observations as a proxy. In such a case the Sample is the proximate FeatureOfInterest of the Observation, while the (ultimate) FeatureOfInterest of the act of Sampling (i.e., the entity that the Sample is ultimately isSampleOf) is the ultimate FeatureOfInterest of the Observation.
The different time-properties on a sosa:Observation support the description of plans, forecasts, and predictions, as well as observations relating to various historical scenarios. See Temporal properties for patterns related to these.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/ObservationCollection
an OWL Class
ObservationCollection added in the 2023 Edition This term is non-normative, pending further implementation experience
Observation Collection — set of one or more Observations or ObservationCollections; collections may be nested
An instance of ObservationCollection represents a container for a set of data derived from observations. This broadly corresponds with the class dcat:Dataset from the Data Catalog Vocabulary [vocab-dcat-3].
All Observation properties may appear in an sosa:ObservationCollection, including: sosa:hasFeatureOfInterest, sosa:hasUltimateFeatureOfInterest, sosa:usedProcedure, sosa:madeBySensor, sosa:observedProperty, sosa:phenomenonTime, sosa:resultTime, sosa:hasResult, sosa:hasSimpleResult. If they are present, the value of these properties summarize the values of the matching properties of the member observations, where membership is either direct or transitive through one or more member observation collections.
The following consistency rules apply to the Observation properties listed above:
The results of collections of observations are often packaged in a 'data cube' whose axes define the range of properties of the set of observations.
The members of a collection do not necessarily share a common value for any property.
Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.
See Time series and Homogeneous observation collection for examples.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/ObservingProcedure
an OWL Class
ObservingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience
Observing Procedure — workflow, protocol, plan, algorithm, or computational method specifying how to make an Observation
An Observing Procedure is re-usable, and might be applied in many Observations. It explains the steps to be carried out to arrive at reproducible results.
IRI: http://www.w3.org/ns/sosa/Sensor
an OWL Class
Sensor or Observer — System that implements an ObservingProcedure to determine the value of an observable Property
This may be a device, a piece of infrastructure, an agent (including humans), or software (simulation).
A Sensor responds to a Stimulus, e.g., a change in the environment, or input data composed from the results of prior Observations.
A Sensor may have a geographic location. See Location and Geometry for patterns to describe this.
Specific sensor types may be implemented as sub-classes
of this class or its sub-classes.
Their descriptions may capture the properties and characteristics of a whole class of sensors, corresponding with the information typically found in a spec-sheet or data-sheet.
Individual sensor instances are members of this class or its sub-classes.
See Systems Types and Individuals for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/Stimulus
an OWL Class
Stimulus — event in the real world that triggers a Sensor
The properties associated to the Stimulus may be different to the eventual observed Property. It is the event, not the object, that triggers the Sensor.
IRI: http://www.w3.org/ns/sosa/detects
an OWL Object Property
detects — relation from a Sensor to the Stimulus that it detects
The Stimulus itself will be serving as a proxy (sosa:isProxyFor) for some Property.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasProxy
an OWL Object Property
has proxy — relation from an Property to a Stimulus that serves as its proxy
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isDetectedBy
an OWL Object Property
is detected by — relation from a Stimulus to a Sensor that may detect it
The Stimulus itself will be serving as a proxy (sosa:isProxyFor) for some Property.
IRI: http://www.w3.org/ns/sosa/isObservedBy
an OWL Object Property
The 2017 edition defined the term ObservableProperty as the domain of sosa:isObservedBy. That specialization of sosa:Property is deprecated in this 2023 edition.
is observed by — relation from a Property to a Sensor that is able to observe it
IRI: http://www.w3.org/ns/sosa/isProxyFor
an OWL Object Property
The 2017 edition defined the term ObservableProperty as the range of sosa:isProxyFor. That specialization of sosa:Property is deprecated in this 2023 edition.
isProxyFor — relation from a Stimulus to the Property that it is serving as a proxy for
IRI: http://www.w3.org/ns/sosa/madeBySensor
an OWL Object Property
made by Sensor — relation from an Observation or ObservationCollection to the Sensor that made it
IRI: http://www.w3.org/ns/sosa/madeObservation
an OWL Object Property
made observation — relation from a Sensor to an Observation or ObservationCollection it has made
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/observationRelatedTo
an OWL Object Property
observationRelatedTo added in 2023 Edition. This term is non-normative, pending further implementation experience
observation related to — relation from an Observation or ObservationCollection to another Execution or ExecutionCollection
This general relationship complements the specific predicates outbound from Observation. It is particularly useful to relate Observations (and collections) to other Executions (and collections)
IRI: http://www.w3.org/ns/sosa/observedProperty
an OWL Object Property
The 2017 edition defined the term ObservableProperty as the range of sosa:observedProperty. That specialization of sosa:Property is deprecated in this 2023 edition.
observed property — relation from an Observation or ObservationCollection to the property that was observed
'observed property' covers the concepts referred to in [VIM] as 'measurand' (quantitative values) and 'examinand' (categorical and nominal values — [VIM4]), as well as complex and structured properties whose values may be represented as lists, vectors, arrays, rasters, geometries, etc. More specific terms are used in other contexts for related concepts, such as 'analyte' (chemistry) and 'determinand' (water quality).
The Property MUST be a property of the FeatureOfInterest of this Observation.
IRI: http://www.w3.org/ns/sosa/observes
an OWL Object Property
The 2017 edition defined the term ObservableProperty as the range of sosa:observes. That specialization of sosa:Property is deprecated in this 2023 edition.
observes — relation from a Sensor to a Property that it is capable of sensing
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/originated
an OWL Object Property
originated — relation from a Stimulus to an Observation that was originated by it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/qualityOf
an OWL Object Property
qualityOf added in 2023 Edition. This term is non-normative, pending further implementation experience
quality of — link from a quality description to an Observation or ObservationCollection that it relates to
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/resultQuality
an OWL Object Property
resultQuality added in 2023 Edition. This term is non-normative, pending further implementation experience
observation result quality — relation from an Observation or ObservationCollection to some information pertaining to the quality of the result
IRI: http://www.w3.org/ns/sosa/wasObservedBy
an OWL Object Property
was observed by — relation from a Property to an Observation that observed it
IRI: http://www.w3.org/ns/sosa/wasOriginatedBy
an OWL Object Property
was originated by — relation from an Observation to the Stimulus that originated it
This section is non-normative.
Figure 17 provides an overview of the core classes and properties that are specifically related to modeling Samplings.
This section introduces the following classes and properties:
sosa:Sample, sosa:MaterialSample, sosa:SpatialSample, sosa:StatisticalSample, sosa:SampleCollection, sosa:Sampler, sosa:Sampling, sosa:SamplingCollection, sosa:SamplingProcedure, sosa:featureHasUltimateSample, sosa:hasOriginalSample, sosa:hasSample, sosa:isOriginalSampleOf, sosa:isResultOfMadeBySampler, sosa:isResultOfUsedProcedure, sosa:isSampleOf, sosa:isSampleOfUltimateFOI, sosa:madeBySampler, sosa:madeSampling, sosa:madeSamplingHasResult, sosa:usedForExecutionHasResult
IRI: http://www.w3.org/ns/sosa/Sample
an OWL Class
Sample — piece or subset that is intended to be representative of a FeatureOfInterest
Three specializations of sosa:Sample are provided:
A Sample may have a geographic location. See Location and Geometry for patterns to describe this.
In the previous edition Sample was axiomatized as a sub-class of FeatureOfInterest. The subclass relationship is removed in this edition. See Domain types and FeatureOfInterest for a discussion of the relationship between types and FeatureOfInterest.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/MaterialSample
an OWL Class
MaterialSample added in the 2023 edition. This term is non-normative, pending further implementation experience
Material Sample — subset of a FeatureOfInterest that is physical (i.e., tangible)
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/SpatialSample
an OWL Class
SpatialSample added in the 2023 edition. This term is non-normative, pending further implementation experience
Spatial Sample — subset of a FeatureOfInterest defined by its location and shape in space
When observations are made to estimate properties of a geospatial feature, particularly where the value of a property varies within the scope of the feature, a SpatialSample is used.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/StatisticalSample
an OWL Class
StatisticalSample added in the 2023 edition. This term is non-normative, pending further implementation experience
Statistical Sample — subset of a FeatureOfInterest defined by the statistical process used to create it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/SampleCollection
an OWL Class
SampleCollection added in the 2023 edition. This term is non-normative, pending further implementation experience
Sample Collection — set of one or more Samples or SampleCollections; collections may be nested
All Sample properties may appear in a sosa:SampleCollection, including: sosa:hasOriginalSample, sosa:isSampleOfUltimateFOI, sosa:isSampleOf, sosa:isResultOfUsedProcedure, sosa:isResultOfMadeBySampler. If they are present, the value of these properties summarize the values of the matching properties of the member samples, where membership is either direct or transitive through one or more member sample collections.
The following consistency rules apply to the Sample properties listed above:
The members of a collection do not necessarily share a common value for any property.
Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.
IRI: http://www.w3.org/ns/sosa/Sampler
an OWL Class
Sampler — System that implements a SamplingProcedure to generate a Sample
A Sampler may have a geographic location. See Location and Geometry for patterns to describe this.
IRI: http://www.w3.org/ns/sosa/Sampling
an OWL Class
Sampling — act of carrying out a SamplingProcedure using a Sampler to create one or more Samples of a FeatureOfInterest
The different time-properties on a sosa:Sampling support the description of plans, forecasts, and predictions, as well as descriptions of various historical scenarios. See Temporal properties for patterns related to these.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/SamplingCollection
an OWL Class
SamplingCollection added in 2023 Edition. This term is non-normative pending further implementation experience
Sampling Collection — set of one or more Samplings or SamplingCollections; collections may be nested
All Sampling properties may appear in an sosa:SamplingCollection, including: sosa:hasFeatureOfInterest, sosa:hasUltimateFeatureOfInterest, sosa:madeBySampler, sosa:usedProcedure, sosa:hasInputValue, sosa:startTime, sosa:phenomenonTime, sosa:resultTime, sosa:hasResult. If they are present, the value of these properties summarize the values of the matching properties of the member samplings, where membership is either direct or transitive through one or more member sampling collections.
The following consistency rules apply to the Sampling properties listed above:
The members of a collection do not necessarily share a common value for any property.
Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/SamplingProcedure
an OWL Class
SamplingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience
Sampling Procedure — workflow, protocol, plan, algorithm, or computational method specifying how to make a Sampling
A Sampling Procedure is re-usable, and might be applied in many Samplings. It explains the steps to be carried out to arrive at reproducible results.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/featureHasUltimateSample
an OWL Object Property
featureHasUltimateSample added in 2023 edition. This term is non-normative, pending further implementation experience
feature has ultimate sample — relation from an ultimate FeatureOfInterest to a Sample or SampleCollection that is intended to be representative of it; i.e., the end of a chain of hasSample relations
Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/hasOriginalSample
an OWL Object Property
hasOriginalSample added in 2023 Edition. This term is non-normative, pending further implementation experience
has original sample — relation from a Sample or SampleCollection to the initial Sample collected from the ultimate FeatureOfInterest
Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.
IRI: http://www.w3.org/ns/sosa/hasSample
an OWL Object Property
has sample — relation from a FeatureOfInterest to the Sample or SampleCollection used to represent it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isOriginalSampleOf
an OWL Object Property
isOriginalSampleOf added in 2023 Edition. This term is non-normative, pending further implementation experience
is original sample of — relation from the initial Sample collected from the ultimate FeatureOfInterest to a downstream Sample or SampleCollection
Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isResultOfMadeBySampler
an OWL Object Property
isResultOfMadeBySampler added in 2023 Edition. This term is non-normative, pending further implementation experience
is a result of made by sampler — relation from a Sample or SampleCollection to the Sampler that made it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isResultOfUsedProcedure
an OWL Object Property
isResultOfUsedProcedure added in 2023 Edition. This term is non-normative, pending further implementation experience
is a result of used procedure — relation from a Sample or SampleCollection to the Procedure (plan) used to make it
IRI: http://www.w3.org/ns/sosa/isSampleOf
an OWL Object Property
is sample of — relation from a Sample or SampleCollection to the FeatureOfInterest that it is intended to represent
Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/isSampleOfUltimateFOI
an OWL Object Property
isSampleOfUltimateFOI added in 2023 edition. This term is non-normative, pending further implementation experience
is sample of ultimate feature of interest — relation from a Sample or SampleCollection to the ultimate FeatureOfInterest that it is intended to be representative of; i.e., the end of a chain of isSampleOf relations
Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.
isSampleOfUltimateFOI renames the property that was called hasSampledFeature in Extensions to the Semantic Sensor Network Ontology [vocab-ssn-ext]
IRI: http://www.w3.org/ns/sosa/madeBySampler
an OWL Object Property
made by sampler — relation from an act of Sampling to the Sampler that made it
IRI: http://www.w3.org/ns/sosa/madeSampling
an OWL Object Property
made sampling — relation from a Sampler to the Sampling or SamplingCollection it has made
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/madeSamplingHasResult
an OWL Object Property
madeSamplingHasResult added in 2023 Edition. This term is non-normative, pending further implementation experience
made sampling has result — relation from a Sampler to a Sample or SampleCollection made by it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/usedForExecutionHasResult
an OWL Object Property
usedForExecutionHasResult added in 2023 Edition. This term is non-normative, pending further implementation experience
used for execution has result — relation from a Procedure to a Sample or SampleCollection made by it
This section provides the specifications for modules that extend the scope and capabilities of SSN.
This section introduces extensions to the SSN Ontology to provide a canonical RDF implementation of [OMS].
OMS is the 2023 Edition of the OGC and ISO standard previously known as Observations and Measurements [OandM], which was a key influence and input in the development of SSN.
OMS was published as ISO 19156:2023 [iso-19156-2023], but is freely available as OGC Abstract Specification — Topic 20 [OMS].
This module provides (i) additional classes and properties required for an RDF implementation of OMS, (ii) a
detailed mapping of SOSA terms to discrete requirements in OMS.
Note that OMS is formalized using UML, which does not provide accessible global identifiers for terms in the
structure model.
The URI for each formal Requirement relating to a class or property in OMS denotes the UML class or
property.
The predicate ogc-ms:implements
links a SOSA term to the corresponding OMS class or property,
and ogc-ms:implementedBy
its inverse, defined as follows:
ogc-ms:implements a owl:ObjectProperty ;
rdfs:subPropertyOf dcterms:source , prov:wasDerivedFrom .
ogc-ms:implementedBy a owl:ObjectProperty ;
owl:inverseOf ogc-ms:implements .
Some classes and properties from OMS are not yet represented in the OMS Extension Module.
It is intended to resolve this before the 2023 edition of the SSN Ontology is finalized.
This is likely to be through additional patterns for the use of SSN,
and additional terms in the sosa-oms:
namespace.
SOSA-OMS describes the implementation of ISO 19156:2023 [OMS] using terms from the SSN Ontology. SOSA-OMS imports SOSA Observation and SOSA Sampling and declares additional terms required for OMS. SOSA-OMS is the canonical RDF implementation of OMS.
The SOSA-OMS graph is available at http://www.w3.org/ns/sosa-oms/.
SSN-OMS describes the implementation of ISO 19156:2023 [OMS] using terms from the SSN Ontology, with RDFS/OWL axiomatization. SSN-OMS imports SOSA-OMS and SSN Observation and SSN Sampling. SSN-OMS is the canonical OWL implementation of OMS.
The SSN-OMS graph is available at http://www.w3.org/ns/ssn-oms/.
The following namespace prefixes are used in the RDF implementation of OMS:
A number of terms in OMS do not have matches in the SSN Ontology.
This section introduces the following classes and properties:
sosa-oms:PreparationProcedure, sosa-oms:PreparationStep, sosa-oms:hasPreparationStep, sosa-oms:madeOnPlatform, sosa-oms:metadata, sosa-oms:observationType, sosa-oms:preparedSample, sosa-oms:processingDetails, sosa-oms:relatedSampling, sosa-oms:samplePreparationStep, sosa-oms:validTime
Terms in the sosa-oms:
namespace were added in the 2023 edition.
These are non-normative, pending further implementation experience.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/PreparationProcedure
an OWL Class
Preparation Procedure — description of preparation steps performed on a Sample
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/PreparationStep
an OWL Class
Preparation Step — individual step pertaining to a Sample PreparationProcedure
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/hasPreparationStep
an OWL Object Property
has preparation step — link from a Sample to a PreparationStep used for it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/madeOnPlatform
an OWL Object Property
made on platform — relation from an Observation to the Platform that the Sensor was attached to at the time it was made
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/metadata
an OWL Object Property
metadata — link from an individual to a metadata description
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/observationType
an OWL Object Property
observation type — further detail on the type of Observations.
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/preparedSample
an OWL Object Property
prepared sample — link from a PreparationStep to a Sample on which the PreparationProcedure was performed
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/processingDetails
an OWL Object Property
processing details — link from a PreparationStep to the PreparationProcedure used
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/samplePreparationStep
an OWL Object Property
sample preparation step — link from a PreparationProcedure to a PreparationStep used in it
This section is non-normative.
IRI: http://www.w3.org/ns/sosa/oms/validTime
an OWL Object Property
valid time — time interval during which the result is assumed to be applicable for use.
The following classes from the SSN Ontology and this extension implement UML classes from OMS as indicated:
The following UML classes in OMS are implemented by classes from the SSN Ontology and this extension as indicated:
The following properties from the SSN Ontology and this extension implement attributes and association roles from OMS as indicated:
The following attributes and association roles from OMS are implemented by properties from the SSN Ontology and this extension as indicated:
This section is non-normative.
Samples are often related to other samples by sub-sampling, topological relationships (e.g., stations along a traverse, pixels within an image, probe spots on a polished section, or specimens retrieved within a borehole), or as parts of sample processing chains (e.g., crushing, splitting, dissecting, or dissolving). There is an essentially unlimited set of relationships between samples, so the nature of the relationship has its own class. This section describes a flexible model to describe such relationships between samples. The model is based on the QualifiedRelation pattern.
The Sample-Relations graph imports SOSA and contains additional definitions associated with relationships between samples.
The namespace for Sample relationships terms is http://www.w3.org/ns/sosa/sampling/
The suggested prefix for the sample relationships namespace is sosa-rel
An ontology graph for this is available.
The Sample-Relations module is available at http://www.w3.org/ns/sosa/sampling/.
Figure 19 provides an overview on the classes and properties that are specifically related to modeling Sample relationships.
This section introduces the following classes and properties:
sosa-rel:RelationshipNature, sosa-rel:hasSampleRelationship, sosa-rel:natureOfRelationship, sosa-rel:relatedSample
IRI: http://www.w3.org/ns/sosa/sampling/RelationshipNature
an OWL Class
Nature of relationship — the nature of a relationship between two Samples
IRI: http://www.w3.org/ns/sosa/sampling/SampleRelationship
an OWL Class
Sample relationship — relationship from one Sample to another Sample
IRI: http://www.w3.org/ns/sosa/sampling/hasSampleRelationship
an OWL Object Property
has sample relationship — links a Sample to a SampleRelationship
IRI: http://www.w3.org/ns/sosa/sampling/natureOfRelationship
an OWL Object Property
nature of (sample) relationship — links a SampleRelationship to an indication of the nature of the relationship
This section is non-normative.
This section provides the specifications for modules that align SOSA and SSN to a variety of related ontologies and specifications.
This section introduces the alignment of SOSA to W3C PROV ([prov-overview], [prov-dm], [prov-o]).
The underlying structure of PROV is based around a process-flow model, with three base classes: Entity, which is the class of physical, digital, conceptual, or other kinds of things with some fixed aspects; Activity, which is the class of things that occur over a period of time and act upon or with entities, and it may include consuming, processing, transforming, modifying, relocating, using, or generating entities; and Agent, which is the class of things that bear some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity.
The SOSA/SSN ontologies conceive executions (actuations, observations, and acts of sampling) as activities or events, which result in a change in the world, or information being produced, or the production or transformation of a sample. An alignment of SOSA to PROV is natural. Compton et al. [SSN-PROV] and Cox [OM-Lite] have described alignments of the [SSNX] and [OandM] models with [prov-o]. The alignment here (see Figure 20) is based on that work, also extended to consider actuation and sampling.
An RDF file containing a graph corresponding to this alignment is available.
This section uses a combination of [Description-Logics] notation (see also the [Description-Logics-Home-Page]) and the Manchester Syntax [owl2-manchester-syntax].
⊑ denotes either SubClassOf
or SubObjectPropertyOf
, depending on the context.
≡ indicates equivalence, corresponding to either EquivalentClasses
or EquivalentObjectProperties
, depending on the context.
The expression OP1 o OP2 ⊑ OP3
represents a subproperty chain axiom.
The following namespace prefixes are used in the alignment of SOSA to PROV.
The primary classes from SOSA are aligned with the PROV classes as follows.
1. Execution (acts of Observation, Actuation and Sampling) is a kind of Activity, thus:
2. Systems (Sensors, Actuators and Samplers) are entities that are responsible for the corresponding activities, thus:
3. Procedures for observation, actuation or sampling are a kind of prov:Plan, thus:
4. The other classes from the core SOSA ontology represent either real or information resources, so are interpreted as kinds of prov:Entity, thus:
The following properties from SOSA have simple alignments with PROV properties:
The final property alignment first requires some sub-properties of PROV properties to be defined:
Then sosa:usedProcedure is given a property chain axiom:
This section introduces the alignment of SOSA to SAREF V4.1.1 [SAREF] and SAREF4SYST [SAREF_Patterns]. The ETSI portal for SAREF exposes the SAREF ontologies and points to the different SAREF-related deliverables, which are open ETSI standards.
An RDF file containing a graph corresponding to this alignment is available. This file additionally contains justifications for the alignment.
This section uses [Description-Logics] notation (see also the [Description-Logics-Home-Page]).
⊑ denotes either SubClassOf
or SubObjectPropertyOf
, depending on the context.
⊒ represents the inverse relation.
≡ indicates equivalence, corresponding to either EquivalentClasses
or EquivalentObjectProperties
, depending on the context.
The expression OP1 ⊒ OP2 o OP3
represents a subproperty chain axiom.
The following namespace prefixes are used in the alignment of SOSA to SAREF.
The classes and properties from SOSA-common are aligned with the SAREF classes and properties as follows.
The classes and properties from SOSA-observation are aligned with the SAREF classes and properties as follows.
The classes and properties from SOSA-actuation are aligned with the SAREF classes and properties as follows.
The classes and properties from SOSA-sampling are aligned with the SAREF classes and properties as follows.
This section introduces the alignment of SOSA to [OBOE].
OBOE, the Extensible Observation Ontology, is used within the biodiversity community for semantic representation of observation data. The ontology is composed of multiple modules. The core observation elements are in the module OBOE-core.
An RDF file containing a graph corresponding to this alignment is available.
This section uses a combination of [Description-Logics] notation (see also the [Description-Logics-Home-Page]) and the Manchester Syntax [owl2-manchester-syntax].
⊑ denotes either SubClassOf
or SubObjectPropertyOf
, depending on the context.
≡ indicates equivalence, corresponding to either EquivalentClasses
or EquivalentObjectProperties
, depending on the context.
The expression OP ONLY C
represents an ObjectAllValuesFrom
restriction.
The expression OP EXACTLY 1
represents an ObjectExactCardinality
restriction.
The following namespace prefixes are used in the alignment to SOSA.
An oboe:Observation
is composed of a collection of oboe:Measurements
concerning a single
oboe:Entity
.
Each individual oboe:Measurement
concerns a distinct oboe:Characteristic
and uses a
distinct oboe:Protocol
.
This aligns to a sosa:ObservationCollection whose member sosa:Observations each concern a different
sosa:observedProperty of a single sosa:hasFeatureOfInterest.
An oboe:ObservationCollection
is composed of a collection of oboe:Observations
with no particular homogeneity expectation of the members.
This aligns to a sosa:ObservationCollection whose members are sosa:ObservationCollections each having
a single sosa:hasFeatureOfInterest.
The overall alignment is illustrated in Figure 21.
The primary classes from [OBOE] are aligned with SOSA classes as follows.
oboe:ObservationCollection
⊑
sosa:ObservationCollection
oboe:ObservationCollection
⊑
sosa:hasMember ONLY sosa:ObservationCollection
oboe:Observation
⊑
sosa:ObservationCollection
oboe:Observation
⊑
sosa:hasFeatureOfInterest EXACTLY 1
oboe:Observation
⊑
sosa:hasMember ONLY sosa:Observation
oboe:Measurement
≡
sosa:Observation
oboe:Characteristic
≡
sosa:Property
oboe:Protocol
≡
sosa:ObservingProcedure
The class oboe:Entity
appears in OBOE as the range of the oboe:ofEntity
and oboe:hasValue
properties, so we
interpret it as a general superclass.
oboe:Entity
The following properties from [OBOE] may be directly aligned with SOSA properties.
oboe:ofEntity
≡
sosa:hasFeatureOfInterest
oboe:ofCharacteristic
≡
sosa:observedProperty
oboe:usesProtocol
⊑
sosa:usedProcedure
oboe:usesMethod
⊑
sosa:usedProcedure
oboe:hasValue
≡
sosa:hasResult
The properties oboe:hasMember
and oboe:hasMeasurement
link an oboe:ObservationCollection
to its member
oboe:Observations
, and an oboe:Observation
to its member oboe:Measurements
, respectively.
These match sosa:hasMember links to a sosa:ObservationCollection (with a single
sosa:hasFeatureOfInterest) and to the sosa:Observations of the different properties, respectively.
oboe:hasMember
⊑
sosa:hasMember
oboe:hasMeasurement
⊑
sosa:hasMember
This section introduces the alignment of SOSA to the DOLCE UltraLite upper ontology (DUL) which is the core dependency of the previous version of SSN. This serves to axiomatically clarify the intended meaning of SOSA terms and will assist SOSA users wishing to interoperate with other DUL-aligned ontologies. Note, however, that the DUL alignment can be used independently to align SOSA with more generic concepts/properties of DUL.
The SOSA-DUL alignment has been relaxed with respect to the previous edition, to account for the different usage of terms reported in 8. Common Patterns. Only classes are aligned.
An RDF file containing a graph corresponding to this alignment is available.
The following namespace prefixes are used in the alignment of SOSA to DUL.
The upper-level classes from SOSA are aligned with the DUL classes as follows. The alignment of subclasses of these upper-level classes follows logically from these correspondences.
This section uses a combination of [Description-Logics] notation (see also the [Description-Logics-Home-Page]) and the Manchester Syntax [owl2-manchester-syntax].
The expression C1 ⊑ C2
represents a SubClassOf
axiom.
The expression C1 or C2
represents an ObjectUnionOf
class expression.
The expression OP ONLY C
represents an ObjectAllValuesFrom
restriction.
The definition of each DUL concept is displayed as a tooltip when hovering over the concept.
Due to the disjunctive (or) nature of several class alignments, SOSA object properties are not aligned to specific DUL properties. Instead, they can be understood to be uniformly aligned to the most general property, dul:associatedWith, to ensure compatibility and enable flexible integration with DUL-aligned ontologies.
The definition of dul:associatedWith is displayed as a tooltip when hovering over the concept.
This section is non-normative.
This section discusses how to handle some common modeling questions.
The result of an sosa:Observation or an sosa:Actuation can be a quantity value with a numeric value and a unit of measure.
It is out of the scope of this specification to recommend a particular way of representing quantitative results.
Several options from external vocabularies are available for expressing quantities as OWL individuals, or as
datatypes.
Examples include:
qudt:QuantityValue
from the Quantities, Units, Dimensions, and Data Types ontologies [QUDT];
cdt:ucum
from Custom Datatypes [CDT].
The following examples show alternative encodings of a single observation with a scalar result, as shown in Figure 22.
With QUDT, a quantitative result can be represented as a qudt:QuantityValue
.
In the following example unit:DEG_C is an
individual from the QUDT catalogue of units of measurement.
@prefix ex: <https://example.org/data/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
ex:Obs234534
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:apt134 ;
sosa:observedProperty qk:Temperature ;
sosa:hasResult [
a qudt:QuantityValue ;
qudt:hasUnit unit:DEG_C ;
qudt:value 24.9 ;
] ;
.
ex:apt134
a sosa:FeatureOfInterest ;
.
qk:Temperature
a sosa:Property ;
.
With CDT, the value of sosa:hasSimpleResult is a literal structured
as space-separated quantiy-value using the UCUM code for the unit of measurement [UCUM].
The type designator is
cdt:ucum
taken from [CDT].
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:Obs234534
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:apt134 ;
sosa:observedProperty qk:Temperature ;
sosa:hasSimpleResult "24.9 Cel"^^cdt:ucum ;
.
cdt:ucum
a rdfs:Datatype ;
.
ex:apt134
a sosa:FeatureOfInterest ;
.
qk:Temperature
a sosa:Property ;
.
In a collection of observations or actuations the members will often use a common unit of measurement.
This can be specified at the level of the collection using qudt:hasUnit
.
If qudt:hasUnit
is present on a collection, then the consistency rules described for
Actuation properties or
Observation properties apply.
In the following example, the unit of measurement unit:DEG_C is provided for all members of collection of observations.
@prefix ex: <https://example.org/data/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:OCa134
a sosa:ObservationCollection ;
sosa:hasFeatureOfInterest ex:apt134 ;
sosa:observedProperty qk:Temperature ;
qudt:hasUnit unit:DEG_C ;
sosa:hasMember ex:OCa134t1 , ex:OCa134t2 , ex:OCa134t3 ;
.
ex:OCa134t1
a sosa:Observation ;
sosa:phenomenonTime [ time:inXSDDateTime "2017-04-15T09:00:00+00:00"^^xsd:dateTime ] ;
sosa:hasSimpleResult 22.5 ;
.
ex:OCa134t2
a sosa:Observation ;
sosa:phenomenonTime [ time:inXSDDateTime "2017-04-15T09:15:00+00:00"^^xsd:dateTime ] ;
sosa:hasSimpleResult 24.9 ;
.
ex:OCa134t3
a sosa:Observation ;
sosa:phenomenonTime [ time:inXSDDateTime "2017-04-15T09:30:00+00:00"^^xsd:dateTime ] ;
sosa:hasSimpleResult 21.3 ;
.
unit:DEG_C
a qudt:hasUnit ;
.
ex:apt134
a sosa:FeatureOfInterest ;
.
qk:Temperature
a sosa:Property ;
.
Actuations, Observations, Samplings, and Deployments can be made on any entity in any context. For many applications a domain-model has been previously defined. This will include names and definitions for classes of entities in the domain. For example: applications in hydrology will refer to types such as water-course, stream, river, reach, storage, aquifer, lake, reservoir, spring, water-table, etc.
A property of an instance of any domain type may be observed using a sensor, or changed using an actuator, or the entity may be sampled following a sampling procedure. When this occurs, the domain entity is the feature of interest of the Execution.
Does this therefore require that classes in the domain model are defined as sub-classes of sosa:FeatureOfInterest? No, absolutely not. RDF and OWL entailments do not work that way.
The way the SSN Ontology addresses this is described in the following sub-sections. There are different implications depending on whether you are using the simple SOSA module, or the more expressive SSN module.
In SOSA the domain and range indications use the Schema.org [schema-org] predicates
schema:domainIncludes
and
schema:rangeIncludes
.
For feature of interest, SOSA has:
sosa:hasFeatureOfInterest
schema:domainIncludes sosa:Execution ;
schema:domainIncludes sosa:Deployment ;
schema:rangeIncludes sosa:FeatureOfInterest ;
.
Note:
So the 'domain and range' indications in SOSA are functionally harmless.
The fact that
sosa:hasFeatureOfInterest schema:rangeIncludes sosa:FeatureOfInterest .
merely says that things of type
sosa:FeatureOfInterest might be found as the object of
hasFeatureOfInterest statements.
No more, no less.
In SSN there are local (guarded) constraints, which can fix the range of a property when it appears in the context of a member of a specific class. Related to the feature of interest, SSN has:
sosa:Execution
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty sosa:hasFeatureOfInterest ;
owl:allValuesFrom sosa:FeatureOfInterest ] ;
.
sosa:Deployment
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty sosa:hasFeatureOfInterest ;
owl:allValuesFrom sosa:FeatureOfInterest ] ;
.
This says that, in the context of an individual sosa:Execution or sosa:Deployment, the object of sosa:hasFeatureOfInterest is always an individual sosa:FeatureOfInterest.
However, this does not mean that (i) the object of the statement must be declared to have
rdf:type sosa:FeatureOfInterest
in advance, or (ii) this is its only type.
Rather, it means that
then it is automatically inferred to be of type sosa:FeatureOfInterest in addition to any other information that was already available about it, including any pre-existing type.
This does not require you to derive domain types as sub-classes of sosa:FeatureOfInterest. It merely says that when a domain individual participates in an Execution (e.g., an Observation) it becomes a member of the class sosa:FeatureOfInterest in addition to any pre-existing domain class. In the context of SSN axiomatization, membership in the class sosa:FeatureOfInterest does not need to be asserted explicitly, and does not need to be assigned prior to the involvement of an entity in a sosa:Execution (or one of its sub-classes) or sosa:Deployment.
Consider the following scenario (Figure 23, Figure 24). There is an entity typed with a class from a domain model:
ex:YarraAboveDightsFalls rdf:type hydro:RiverReach .
An observation is made concerning a property of this entity:
ex:o345 rdf:type sosa:Observation ;
sosa:hasFeatureOfInterest ex:YarraAboveDightsFalls ;
sosa:observedProperty hydro:elevation ;
sosa:hasSimpleResult "30 m"^^cdt:ucum ;
sosa:phenomenonTime [ a time:Instant ; time:inXSDDateTime "2024-07-15T13:30:00+10:00" ; ] ;
.
The SSN constraint shown above entails:
ex:YarraAboveDightsFalls rdf:type sosa:FeatureOfInterest .
in addition to the type hydro:RiverReach
already asserted.
In terms of set theory, the class hydro:RiverReach
has a non-empty intersection with the class
sosa:FeatureOfInterest
when a member of hydro:RiverReach
participates in an
sosa:Observation (or any other subclass of
sosa:Execution).
Domain types are not features-of-interest unless they are involved in Executions or Deployments.
The additional typing happens to individual members of the class 'automatically', by entailment, but not to the
domain class as a whole.
The object of the hasFeatureOfInterest property of an Execution (e.g., Actuation, Observation, or Sampling) or Deployment is the immediate or proximate FeatureOfInterest. For example, Figure 25 shows a description of a simple actuation to open a window.
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/open-window/> .
ex:window98 rdf:type sosa:FeatureOfInterest ;
sosa:hasProperty ex:openState ;
.
ex:openState rdf:type sosa:Property ;
.
ex:closer-987 rdf:type ex:WindowCloser , sosa:Actuator ;
.
ex:WindowCloser rdfs:subClassOf sosa:Actuator ;
.
ex:A188 rdf:type sosa:Actuation ;
sosa:hasFeatureOfInterest ex:window98 ;
sosa:actsOnProperty ex:openState ;
sosa:madeByActuator ex:closer-987 ;
sosa:hasSimpleResult true ;
sosa:startTime "2017-04-18T17:23:00+02:00"^^xsd:dateTime ;
sosa:endTime "2017-04-18T17:24:00+02:00"^^xsd:dateTime ;
.
In some cases the feature of interest of the execution is not the ultimate thing that the act of actuation, observation, or sampling is concerned with, but is an intermediate thing. This might be a sample of the ultimate feature of interest, or a sample of a sample, etc. The relationship between the proximate and ultimate feature of interest might be specified, such as a sampling-chain. If this relationship is recorded, then an ultimate feature of interest might be inferred.
Nevertheless, it is often the ultimate feature of interest that really matters to the data user, particularly for discovery purposes. This requirement is met using the hasUltimateFeatureOfInterest property as shown in Figure 26.
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:Bubble873 a sosa:Sample ;
sosa:isSampleOf ex:EarthAtmosphere;
.
ex:Ob873c4 a sosa:Observation ;
sosa:observedProperty ex:CO2-Concentration ;
sosa:hasFeatureOfInterest ex:Bubble873 ;
sosa:hasUltimateFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasSimpleResult "240 [ppm]"^^cdt:ucum ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
ex:CO2-Concentration a sosa:Property ;
skos:exactMatch <http://purl.obolibrary.org/obo/ENVO_04000004> ;
skos:prefLabel "concentration of carbon dioxide in air" ;
.
Many observation workflows rely on a chain of samples, where it is important to understand the provenance of the sample which is the (proximate) feature of interest for observations. Knowing either the original sample or the initial feature of interest at the base of the chain is useful for both discovery and management purposes.
For example, gas bubbles from ice-cores are examined in climate research. The ice-core is a sample of the ice-sheet, while the bubble taken from the core is a sample of an ancient atmosphere (Figure 27). The two samples have different values for the isSampleOf property, reflecting the different hasFeatureOfInterest values for the separate acts of Sampling. The bubble is also a sample of the atmosphere, which is a feature of interest for the observations.
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix orcid: <https://orcid.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:IceCore12 a sosa:Sample , sosa:MaterialSample ;
sosa:isSampleOf ex:Antarctic_ice_sheet ;
sosa:isResultOf ex:WellDrilling4578 ;
.
ex:Bubble873 a sosa:Sample , sosa:MaterialSample ;
sosa:isSampleOf ex:IceCore12 , ex:EarthAtmosphere;
sosa:isSampleOfUltimateFOI ex:Antarctic_ice_sheet ;
sosa:isResultOf ex:CoreEx1923 ;
.
ex:WellDrilling4578 a sosa:Sampling ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (9.32 -73.35)"^^geo:WktLiteral ;
] ;
sosa:hasResult ex:IceCore12 ;
sosa:madeBySampler ex:ThermalDrill2 ;
sosa:resultTime "2017-04-03T11:12:00+00:00"^^xsd:dateTime ;
sosa:hasFeatureOfInterest ex:Antarctic_ice_sheet ;
.
ex:CoreEx1923 a sosa:Sampling ;
sosa:hasInputValue [
ex:offset "15.202 m"^^cdt:ucum ;
] ;
sosa:hasResult ex:Bubble873 ;
sosa:madeBySampler orcid:0000-0002-3884-3420 ;
sosa:resultTime "2018-01-09T14:12:00+00:00"^^xsd:dateTime ;
sosa:hasFeatureOfInterest ex:IceCore12 ;
sosa:hasUltimateFeatureOfInterest ex:Antarctic_ice_sheet ;
.
ex:Antarctic_ice_sheet a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q571430> ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
Figure 28 shows a more complex scenario involving many samples derived from an initial one, with some relationships that may be useful in processing and discovery of subsequent observations, the intention of which will be to characterize various aspects of the original sample which is representative of an ultimate feature of interest. This is supported by additional properties for relationships between samples and features of interest at specific points in the chain: hasOriginalSample and isSampleOfUltimateFOI.
Having a direct indication of an original sample allows multiple results to be combined to describe the sample. Having a direct indication of the ultimate feature that was sampled allows discovery of many samples that are intended to be representative of that feature.
Note that the scenario in Figure 28 is simplified from real-life scenarios, and also that the diagram only shows a subset of the full set of resources and relationships.
Many executions are made as parts of a time series. There are a number of ways these may be modeled using the SSN Ontology.
The most explicit representation has each member of the series as an individual member of a Collection. For example Figure 29 shows a Collection of Observations that has a member for each time-step in the series.
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/tsoc/> .
ex:ts159c
a sosa:ObservationCollection ;
sosa:hasFeatureOfInterest ex:station223 ;
sosa:observedProperty ex:p1 ;
sosa:madeBySensor ex:fooglemeter39 ;
sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:00:00+00:00"^^xsd:dateTime
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:03:00+00:00"^^xsd:dateTime
] ;
] ;
sosa:resultTime "2017-04-15T20:03:30+00:00"^^xsd:dateTime ;
sosa:hasMember ex:t1 ;
sosa:hasMember ex:t2 ;
sosa:hasMember ex:t3 ;
sosa:hasMember ex:t4 ;
.
ex:t1
a sosa:Observation ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:00:00+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult "3.24 m/s"^^cdt:ucum ;
.
ex:t2
a sosa:Observation ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:01:00+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult "3.21 m/s"^^cdt:ucum ;
.
ex:t3
a sosa:Observation ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:02:00+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult "3.15 m/s"^^cdt:ucum ;
.
ex:t4
a sosa:Observation ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:03:00+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult "3.15 m/s"^^cdt:ucum ;
.
ex:station223 a sosa:FeatureOfInterest .
ex:p1 a sosa:Property .
ex:fooglemeter39 a sosa:Sensor .
Alternatively, the series may be represented as a single Observation whose result is a complex value, such as a vector or array. This may be indicated 'inline' as a complex literal, e.g. CSV:
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/tsoi/> .
ex:ts159i
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:station223 ;
sosa:observedProperty ex:p1 ;
sosa:madeBySensor ex:fooglemeter39 ;
sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:00:00+00:00"^^xsd:dateTime
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:03:00+00:00"^^xsd:dateTime
] ;
] ;
sosa:resultTime "2017-04-15T20:03:30+00:00"^^xsd:dateTime ;
sosa:hasSimpleResult """2017-04-15T20:00:00+00:00,3.24
2017-04-15T20:01:00+00:00,3.21
2017-04-15T20:02:00+00:00,3.15
2017-04-15T20:03:00+00:00,3.15"""^^ex:SpeedObservationCSVRecord ;
rdfs:comment """The result of this observation is encoded as a CSV literal.
The CSV has four rows each representing a member of the time-series.
The CSV structure is defined in the datatype definition."""@en ;
.
ex:station223 a sosa:FeatureOfInterest .
ex:p1 a sosa:Property .
ex:fooglemeter39 a sosa:Sensor .
ex:SpeedObservationCSVRecord a rdfs:Datatype ;
rdfs:comment """Datatype definition for CSV-encoded data records conforming to the speed observation data model.
The speed observation data model is defined using the OGC SWE Data Model given as the object of ex:asSWEDataModel.
The formal definition of this datatype (a lexical space, value space, lexical-to-value mapping) is left unspecified in this example.""" ;
ex:asSWEDataModel """{
"type": "DataRecord",
"label": "Speed Observation",
"fields": [
{
"name": "time",
"type": "Time",
"definition": "http://www.opengis.net/def/property/OGC/0/SamplingTime",
"referenceFrame": "http://www.opengis.net/def/trs/BIPM/0/UTC",
"label": "Sampling Time",
"uom": {
"href": "http://www.opengis.net/def/uom/ISO-8601/0/Gregorian"
}
},
{
"name": "speed",
"type": "Quantity",
"definition": "http://qudt.org/vocab/quantitykind/Speed",
"label": "Vehicle Speed",
"uom": {
"code": "m/s",
"href": "https://qudt.org/vocab/unit/M-PER-SEC"
}
}
]
}"""^^rdf:JSON ;
.
In this example, an OGC SWE Common DataRecord
([SWE-Common], [SWE-Common-JSON]) is used to
define an RDF Datatype that encodes data records encoded in CSV.
The result of a time series observation can also be 'linked' to an external resource:
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/tsol/> .
ex:ts159l
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:station223 ;
sosa:observedProperty ex:p1 ;
sosa:madeBySensor ex:fooglemeter39 ;
sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:00:00+00:00"^^xsd:dateTime
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2017-04-15T20:03:00+00:00"^^xsd:dateTime
] ;
] ;
sosa:resultTime "2017-04-15T20:03:30+00:00"^^xsd:dateTime ;
sosa:hasResult <https://example.org/data/tso/netcdf/ts159> ;
rdfs:comment "The result of the observation is accessed using the URI https://example.org/data/tso/netcdf/ts159 (notional)."@en ;
.
ex:station223 a sosa:FeatureOfInterest .
ex:p1 a sosa:Property .
ex:fooglemeter39 a sosa:Sensor .
In addition to the encodings shown above, terms from SOSA can be directly integrated into existing structures, e.g. OGC Coverages [CoverageJSON]. In such cases, it is no longer necessary to provide a paired Observation.
Many of the key classes provided by SOSA and SSN represent entities that can be located in space such as sensors, features of interest, actuators, samples, and so forth, or activities that can be located via their participating entities, e.g., platforms. These entities will usually be described using models and ontologies defined for application domains, including technical disciplines, social and business contexts. In these contexts there are a number of implementations that support the expression of spatial properties, including location. These are discussed further in the Spatial Data on the Web Best Practices note [SDW-BP].
In particular, GeoSPARQL [GeoSPARQL] provides a flexible and relatively complete platform for geospatial
objects, that fosters interoperability between geo-datasets.
The property geo:hasGeometry
MAY be used to attach a geometry or location to any entity.
Note that geo:hasGeometry
has a global domain constraint which entails that any resource carrying this
property SHALL be inferred to be a geo:Feature
(GeoSPARQL 1.1,
clause 8.4.1).
In case of classes, e.g., specific types of features of interest such as rivers, these MAY be explicitly defined as
subclasses of geo:Feature
.
A number of patterns may be used to characterize the location of a System, depending on how much detail about Platforms and Deployments is useful.
For example, a System, such as a Sensor, might be permanently in one specific location, described as follows:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:IBS-TH2-56
a sosa:Sensor ;
rdfs:label "12gth456a-23190"^^ex:serialNumber ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (-73.877244 45.511672)"^^geo:WktLiteral ;
] ;
.
ex:serialNumber a rdfs:Datatype ;
rdfs:subClassOf xsd:string ;
.
Alternatively, the location may be associated with a Platform, which then might also host other Systems:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:Room31C a sosa:Platform ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (-73.877244 45.511672)"^^geo:WktLiteral ;
] ;
sosa:hosts ex:IBS-TH2-56 ;
.
ex:IBS-TH2-56
a sosa:Sensor ;
rdfs:label "12gth456a-23190"^^ex:serialNumber ;
.
ex:serialNumber a rdfs:Datatype ;
rdfs:subClassOf xsd:string ;
.
If this Sensor location is not permanent, then it may be characterized as a Deployment:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:TH2-56-2024 a sosa:Deployment ;
sosa:deployedSystem ex:IBS-TH2-56 ;
sosa:deployedOnPlatform ex:Room31C ;
sosa:startTime "2024-01-01T00:00:00+00:00"^^xsd:dateTime ;
sosa:endTime "2024-12-31T23:59:59+00:00"^^xsd:dateTime ;
.
ex:Room31C a sosa:Platform ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (-73.877244 45.511672)"^^geo:WktLiteral ;
] ;
.
ex:IBS-TH2-56
a sosa:Sensor ;
rdfs:label "12gth456a-23190"^^ex:serialNumber ;
.
ex:serialNumber a rdfs:Datatype ;
rdfs:subClassOf xsd:string ;
.
Similarly, Location can be associated directly or indirectly with a Sample.
Observations of the atmosphere are necessarily made at a specific location. The location of an air Sample might be recorded directly using the following pattern:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:EarthAtmosphere_StE a sosa:Sample ;
sosa:isSampleOf ex:EarthAtmosphere ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (4.387611 45.437772)"^^geo:WktLiteral ;
] ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
The location could also be provided as a parameter to the act of Sampling that generated the Sample:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:EarthAtmosphere_StE a sosa:Sample ;
sosa:isSampleOf ex:EarthAtmosphere ;
sosa:isResultOf ex:AirSampling_StE ;
.
ex:AirSampling_StE a sosa:Sampling ;
sosa:hasFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasInputValue [
a geo:Point ;
geo:asWKT "POINT (4.387611 45.437772)"^^geo:WktLiteral ;
] ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
In general, the locations of the System and FeatureOfInterest for an Execution are different. For example, the relative locations of the Sensor (or its Platform or Deployment) and the feature of interest (or Sample), along with the phenomenon- and result-time, fall into distinct patterns for different Observation modes as follows:
Note that in ex situ measurements, there will usually be a Sample and thus an act of Sampling involved, whose properties determine the location and phenomenon-time.
Geometry may appear in other contexts.
For example, a determination of location using a GPS receiver can be described as an
Observation whose hasResult value is a geometry.
The following example illustrates this pattern, with the result being a GeoSPARQL Geometry
object:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/geor/> .
ex:ObsGeo1 a sosa:Observation ;
sosa:madeBySensor ex:MyGPS736 ;
sosa:hasFeatureOfInterest ex:AbbysCar ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTimeStamp "2023-06-20T21:49:18+00:00"^^xsd:dateTime ;
] ;
sosa:resultTime "2023-06-20T21:49:18+00:00"^^xsd:dateTime ;
sosa:observedProperty <https://vocab.nerc.ac.uk/collection/S06/current/S0600255/> ;
sosa:hasResult [
a geo:Geometry ;
geo:asWKT "Point (145.042316 -37.919134)"^^geo:wktLiteral ;
] .
ex:MyGPS736
a sosa:Sensor ;
.
ex:AbbysCar
a sosa:FeatureOfInterest ;
.
<https://vocab.nerc.ac.uk/collection/S06/current/S0600255/>
a sosa:Property ;
rdfs:label "Location (geographic coordinates)"@en ;
.
The WKT representation of the result could be encoded directly as a 'simple' (literal) result:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:ObsGeo1 a sosa:Observation ;
sosa:madeBySensor ex:MyGPS736 ;
sosa:hasFeatureOfInterest ex:AbbysCar ;
sosa:resultTime "2023-06-20T21:49:18+00:00"^^xsd:dateTime ;
sosa:observedProperty <https://vocab.nerc.ac.uk/collection/S06/current/S0600255/> ;
sosa:hasSimpleResult "Point (145.042316 -37.919134)"^^geo:wktLiteral ;
.
Multiple times are associated with an Execution. Trivially, since an Execution is a time-bounded activity, there is a startTime and endTime. In the case of Observation and Sampling the end of the Execution is the time that the result is generated so it is called resultTime. In the case of Actuation and Observation the phenomenonTime is the interval when the change or result applies to the actuated- or observed-property.
In the simplest case, an Execution is instantaneous and all these times are the same. More commonly, these times are different. Different kinds of executions have different relationships between these times.
A forecast may be represented as an observation where the value of sosa:phenomenonTime
is later in
time than the sosa:resultTime
(Figure 36).
The time when the observation execution was completed is before the time that the result of the observation applies
to the FeatureOfInterest.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix siq: <https://si-digital-framework.org/quantities/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/forecast/> .
ex:Observation299876
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasResult <grid/299876> ;
sosa:observedProperty siq:TEMC ;
sosa:phenomenonTime [
time:hasBeginnning [
time:inXSDDateTime "2024-03-09T11:00:00+10:00"^^xsd:dateTime ;
];
time:hasEnd [
time:inXSDDateTime "2024-03-09T12:00:00+10:00"^^xsd:dateTime ;
];
];
sosa:resultTime "2024-03-06T12:00:00+10:00"^^xsd:dateTime ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
siq:TEMC a sosa:Property ;
rdfs:label "Celsius temperature" ;
.
{
"@graph" : [ {
"@id" : "_:b0",
"hasBeginnning" : "_:b2",
"hasEnd" : "_:b1"
}, {
"@id" : "_:b1",
"inXSDDateTime" : "2024-03-09T12:00:00+10:00"
}, {
"@id" : "_:b2",
"inXSDDateTime" : "2024-03-09T11:00:00+10:00"
}, {
"@id" : "ex:EarthAtmosphere",
"@type" : "sosa:FeatureOfInterest",
"sameAs" : "https://www.wikidata.org/wiki/Q3230"
}, {
"@id" : "ex:Observation299876",
"@type" : "sosa:Observation",
"hasFeatureOfInterest" : "ex:EarthAtmosphere",
"hasResult" : "ex:forecast/grid/299876",
"observedProperty" : "https://si-digital-framework.org/quantities/TEMC",
"phenomenonTime" : "_:b0",
"resultTime" : "2024-03-06T12:00:00+10:00"
}, {
"@id" : "ex:forecast/",
"@type" : "owl:Ontology"
} ],
"@context" : {
"resultTime" : {
"@id" : "http://www.w3.org/ns/sosa/resultTime",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTime"
},
"phenomenonTime" : {
"@id" : "http://www.w3.org/ns/sosa/phenomenonTime",
"@type" : "@id"
},
"observedProperty" : {
"@id" : "http://www.w3.org/ns/sosa/observedProperty",
"@type" : "@id"
},
"hasResult" : {
"@id" : "http://www.w3.org/ns/sosa/hasResult",
"@type" : "@id"
},
"hasFeatureOfInterest" : {
"@id" : "http://www.w3.org/ns/sosa/hasFeatureOfInterest",
"@type" : "@id"
},
"hasEnd" : {
"@id" : "http://www.w3.org/2006/time#hasEnd",
"@type" : "@id"
},
"hasBeginnning" : {
"@id" : "http://www.w3.org/2006/time#hasBeginnning",
"@type" : "@id"
},
"inXSDDateTime" : {
"@id" : "http://www.w3.org/2006/time#inXSDDateTime",
"@type" : "http://www.w3.org/2001/XMLSchema#dateTime"
},
"sameAs" : {
"@id" : "http://www.w3.org/2002/07/owl#sameAs",
"@type" : "@id"
},
"ex" : "http://example.org/data/",
"rdf" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"owl" : "http://www.w3.org/2002/07/owl#",
"xsd" : "http://www.w3.org/2001/XMLSchema#",
"rdfs" : "http://www.w3.org/2000/01/rdf-schema#",
"time" : "http://www.w3.org/2006/time#",
"sosa" : "http://www.w3.org/ns/sosa/"
}
}
Other means to represent forecasts are reported, but not in the scope of this specification.
For example [Lefrancois-et-al-2017] adapt the SSN Sensing/Sensor/Observation
pattern to derive explicit Forecasting/Forecaster/Forecast
classes.
Describing a plan for some actuation or observation in the future is not covered by this specification.
Observations in historical sciences, including geology and archeology, may be made to determine the state of the world in the past.
Consider a determination of the diet of past communities by examination of middens and other archaeological features (Figure 37)
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:O299877
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:Community2998 ;
sosa:hasResult ex:d77 ;
sosa:observedProperty ex:diet ;
sosa:phenomenonTime [
time:hasBeginning [
time:inTimePosition [
time:hasTRS ex:BP ;
time:numericPosition 12000 ;
] ;
] ;
time:hasDuration [
time:numericDuration 500 ;
time:unitType time:unitYear ;
] ;
] ;
sosa:resultTime "2015-06-06T12:00:00+10:00"^^xsd:dateTime ;
.
ex:d77
a ex:diet ;
rdfs:comment "mainly seafood" ;
.
ex:BP
a time:TRS ;
skos:definition "Years before 1950, positive backwards" ;
.
An observation transcribed from a historical record, such as a logbook, might be encoded as follows:
@prefix ex: <https://example.org/data/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@base <https://example.org/data/htemp/> .
ex:T99 a sosa:Sensor , ex:Mercury-in-glass-thermometer ;
rdfs:label "Mercury in glass thermometer #99"@en ;
sosa:observes ex:airTemperature ;
.
ex:SHW a sosa:Platform , sosa:FeatureOfInterest;
rdfs:label "Station Hohe Warte"@en ;
geo:hasGeometry [
a geo:Point ;
geo:asWKT "POINT (16.355804145468635 48.248491274780754)"^^geo:WktLiteral ;
] ;
sosa:hosts ex:T99 ;
.
ex:airTemperature a sosa:Property ;
rdfs:label "air temperature"@en ;
sosa:isPropertyOf ex:EarthAtmosphere ;
skos:broader qk:Temperature ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
ex:SHW_T_1872-04-04T15 a sosa:Observation ;
sosa:madeBySensor ex:T99 ;
sosa:hasFeatureOfInterest ex:SHW ;
sosa:observedProperty ex:airTemperature ;
sosa:phenomenonTime [
time:inXSDDateTime "1872-04-04T15:00:00+01:00"^^xsd:dateTime ;
] ;
sosa:hasResult [
rdf:type qudt:QuantityValue ;
qudt:value "22.5"^^xsd:decimal ;
qudt:hasUnit unit:DEG_C ] ;
sosa:resultTime "1872-04-04T15:00:00+01:00"^^xsd:dateTime ;
.
The concentration of CO2 can be measured in bubbles in ice-cores that are assumed to sample the atmosphere at some past time. In this case, the concentration and age are the results of two initial observations (at the top of Figure 39). These provide input-values to the final observation (at the bottom of Figure 39).
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:Bubble873 a sosa:Sample , sosa:MaterialSample ;
sosa:isSampleOf ex:IceCore12 , ex:EarthAtmosphere;
sosa:isSampleOfUltimateFOI ex:Antarctic_ice_sheet ;
sosa:isResultOf ex:CoreEx1923 ;
.
ex:Ob873t2 a sosa:Observation ;
sosa:observedProperty ex:C14-Age ;
sosa:hasFeatureOfInterest ex:Bubble873 ;
sosa:hasUltimateFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasSimpleResult "7530 a"^^cdt:ucum ;
sosa:resultTime "2018-01-09T14:15:00+00:00"^^xsd:dateTime ;
.
ex:Ob873c4 a sosa:Observation ;
sosa:observedProperty ex:CO2-Concentration ;
sosa:hasFeatureOfInterest ex:Bubble873 ;
sosa:hasUltimateFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasSimpleResult "240 [ppm]"^^cdt:ucum ;
sosa:resultTime "2018-01-09T14:16:00+00:00"^^xsd:dateTime ;
.
ex:Oatc349 a sosa:Observation ;
sosa:observedProperty ex:CO2-Concentration ;
sosa:hasFeatureOfInterest ex:EarthAtmosphere ;
sosa:hasSimpleResult "240 [ppm]"^^cdt:ucum ;
sosa:phenomenonTime [
time:inTimePosition [
time:hasTRS ex:BP ;
time:numericPosition 7530 ;
] ;
] ;
sosa:resultTime "2018-01-09T14:16:00+00:00"^^xsd:dateTime ;
sosa:hasInputValue ex:Ob873t2 , ex:Ob873c4 ;
.
ex:BP
a time:TRS ;
skos:definition "Years before 1950, positive backwards" ;
.
ex:Antarctic_ice_sheet a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q571430> ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.
ex:C14-Age a sosa:Property ;
skos:exactMatch <http://vocab.nerc.ac.uk/collection/S06/current/S0600001/> ;
skos:definition "The age of an object, determined by radiocarbon dating, expressed relative to a datum of AD 1950." ;
skos:prefLabel "14C age" ;
.
ex:CO2-Concentration a sosa:Property ;
skos:exactMatch <http://purl.obolibrary.org/obo/ENVO_04000004> ;
skos:prefLabel "concentration of carbon dioxide in air" ;
.
In each of these cases the ultimate phenomenonTime is far in the past, while the resultTime is contemporary.
Properties of the members of Collections must follow the consistency rules given in their definitions — see ExecutionCollection, ActuationCollection, ObservationCollection, SampleCollection, and SamplingCollection. The following examples illustrate each case from the rules, in the context of an ObservationCollection. The patterns shown also apply to the other collection types.
Where an individual Collection omits a property, a member (direct or transitive) MAY have any value for that property.
The properties sosa:hasFeatureOfInterest
, sosa:phenomenonTime
,
sosa:hasSimpleResult
are not specified on the collection, but are provided individually on each member.
@prefix ex: <https://example.org/sosa/collection-rule-1/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:oc1
a sosa:ObservationCollection ;
sosa:hasMember ex:a11 ;
sosa:hasMember ex:a12 ;
sosa:madeBySensor ex:T56 ;
sosa:observedProperty qk:Temperature ;
qudt:hasUnit unit:DEG_C ;
rdfs:comment """
The properties madeBySensor, observedProperty, and hasUnit are given for the collection.
""" ;
.
ex:a11
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F1 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 24.1 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the values for the collection.
""" ;
.
ex:a12
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F2 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 27.3 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the values for the collection.
""" ;
.
ex:F1
a sosa:FeatureOfInterest ;
rdfs:comment "Room #1" ;
.
ex:F2
a sosa:FeatureOfInterest ;
rdfs:comment "Room #2" ;
.
ex:T56
a sosa:Sensor ;
rdfs:comment "Thermometer #56" ;
.
qk:Temperature
a sosa:Property ;
.
Where an individual Collection has a single value for a property, each member (direct or transitive) MUST have that same value for that property i.e., the collection (set) is homogeneous in that property. That property MAY then be omitted in any member.
The properties sosa:observedProperty
, sosa:madeBySensor
, qudt:hasUnit
are
specified on the collection with single values, which apply to every member.
A member that also specifies sosa:observedProperty
individually has the same value as the collection.
@prefix ex: <https://example.org/sosa/collection-rule-2/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:oc2
a sosa:ObservationCollection ;
sosa:hasMember ex:a21 ;
sosa:hasMember ex:a22 ;
sosa:madeBySensor ex:T56 ;
sosa:observedProperty qk:Temperature ;
qudt:hasUnit unit:DEG_C ;
rdfs:comment """
The properties madeBySensor, observedProperty, and hasUnit are given for the collection.
""" ;
.
ex:a21
a sosa:Observation ;
sosa:observedProperty qk:Temperature ;
sosa:hasFeatureOfInterest ex:F1 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 24.1 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The property observedProperty matches the value for the collection.
The properties madeBySensor and hasUnit are inferred from the value for the collection.
""" ;
.
ex:a22
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F2 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 27.3 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:F1
a sosa:FeatureOfInterest ;
rdfs:comment "Room #1" ;
.
ex:F2
a sosa:FeatureOfInterest ;
rdfs:comment "Room #2" ;
.
ex:T56
a sosa:Sensor ;
rdfs:comment "Thermometer #56" ;
.
qk:Temperature
a sosa:Property ;
.
Where an individual Collection has more than one value for a property, each member (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
The collection specifies a multiple values for sosa:hasFeatureOfInterest
.
Each member has a value for sosa:hasFeatureOfInterest
taken from this set of values.
@prefix ex: <https://example.org/sosa/collection-rule-3/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:oc3
a sosa:ObservationCollection ;
sosa:hasMember ex:a31 ;
sosa:hasMember ex:a32 ;
sosa:madeBySensor ex:T56 ;
sosa:observedProperty qk:Temperature ;
sosa:hasFeatureOfInterest ex:F1 , ex:F2 ;
qudt:hasUnit unit:DEG_C ;
rdfs:comment """
The properties madeBySensor, observedProperty, and hasUnit are given for the collection.
The property hasFeatureOfInterest has multiple values.
""" ;
.
ex:a31
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F1 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 24.1 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of hasFeatureOfInterest matches one of the set of values for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:a32
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F2 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 27.3 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of hasFeatureOfInterest matches one of the set of values for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:F1
a sosa:FeatureOfInterest ;
rdfs:comment "Room #1" ;
.
ex:F2
a sosa:FeatureOfInterest ;
rdfs:comment "Room #2" ;
.
ex:T56
a sosa:Sensor ;
rdfs:comment "Thermometer #56" ;
.
qk:Temperature
a sosa:Property ;
.
Where an individual Collection has a value for a property that is a range or interval, each member (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
The collection specifies a range of values for sosa:phenomenonTime
.
Each member has a value for sosa:phenomenonTime
that falls within the range.
@prefix ex: <https://example.org/sosa/collection-rule-4/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:oc4
a sosa:ObservationCollection ;
sosa:hasMember ex:a41 ;
sosa:hasMember ex:a42 ;
sosa:madeBySensor ex:T56 ;
sosa:observedProperty qk:Temperature ;
sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:00:00+00:00"^^xsd:dateTime ;
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2022-05-01T23:00:00+00:00"^^xsd:dateTime ;
] ;
] ;
qudt:hasUnit unit:DEG_C ;
rdfs:comment """
The properties madeBySensor, observedProperty, and hasUnit are given for the collection.
The property phenomenonTime has value range.
""" ;
.
ex:a41
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F1 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 24.1 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of phenomenonTime falls within the value range for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:a42
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F2 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 27.3 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of phenomenonTime falls within the value range for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:F1
a sosa:FeatureOfInterest ;
rdfs:comment "Room #1" ;
.
ex:F2
a sosa:FeatureOfInterest ;
rdfs:comment "Room #2" ;
.
ex:T56
a sosa:Sensor ;
rdfs:comment "Thermometer #56" ;
.
qk:Temperature
a sosa:Property ;
.
Where an individual Collection has more than one value for a property that is a range or interval, each member (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.
The collection has two ranges of values for sosa:phenomenonTime
.
Each member has a value for sosa:phenomenonTime
that falls within one of the ranges.
@prefix ex: <https://example.org/sosa/collection-rule-5/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix time: <http://www.w3.org/2006/time#>.
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:oc5
a sosa:ObservationCollection ;
sosa:hasMember ex:a51 ;
sosa:hasMember ex:a52 ;
sosa:madeBySensor ex:T56 ;
sosa:observedProperty qk:Temperature ;
sosa:phenomenonTime [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:00:00+00:00"^^xsd:dateTime ;
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2022-05-01T21:00:00+00:00"^^xsd:dateTime ;
] ;
] , [
a time:Interval ;
time:hasBeginning [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:00:00+00:00"^^xsd:dateTime ;
] ;
time:hasEnd [
a time:Instant ;
time:inXSDDateTime "2022-05-01T23:00:00+00:00"^^xsd:dateTime ;
] ;
] ;
qudt:hasUnit unit:DEG_C ;
rdfs:comment """
The properties madeBySensor, observedProperty, and hasUnit are given for the collection.
The property phenomenonTime has multiple value ranges.
""" ;
.
ex:a51
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F1 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T20:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 24.1 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of phenomenonTime falls within one of the value ranges for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:a52
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:F2 ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTime "2022-05-01T22:33:40+00:00"^^xsd:dateTime ;
] ;
sosa:hasSimpleResult 27.3 ;
rdfs:comment """
The properties hasFeatureOfInterest, phenomenonTime, and hasSimpleResult are specific to this individual member
The value of phenomenonTime falls within one of the value ranges for the collection.
The properties madeBySensor, observedProperty, and hasUnit are inferred from the value for the collection.
""" ;
.
ex:F1
a sosa:FeatureOfInterest ;
rdfs:comment "Room #1" ;
.
ex:F2
a sosa:FeatureOfInterest ;
rdfs:comment "Room #2" ;
.
ex:T56
a sosa:Sensor ;
rdfs:comment "Thermometer #56" ;
.
qk:Temperature
a sosa:Property ;
.
A collection of observations may share a common value for one or more of the characteristic observation properties. For example:
These patterns can be accommodated with the class ObservationCollection
individuals of which may
hold one or more of the essential properties of an atomic observation, except for the result.
Where present, the value of the property(s) of the collection are shared by all member observations.
Of the essential properties of an observation, only the value of each actual hasResult is not potentially shared by all member
observations, though at least one of the other properties would be expected to vary between members in a typical
collection.
For example, Figure 40 describes a collection of remote sensing observations using the same sensor on different scenes, while Figure 41 is a series of the same scene on different days.
Collections may be nested. For example, an outer observation-collection might share the observed-property, procedure and sensor, and contain inner observation-collections at different phenomenon-times, each of which contain a set of observations on different features-of-interest (Figure 42).
Observations can be factored into collections in more than one way, so more than one set of nested observation-collections can collect the same set of atomic results. For example, the same outer collection may contain inner collections concerning different features-of-interests, each containing a set of observations at different phenomenon-times (Figure 43).
Effectively, the results of each observation-collection correspond to a slice in a data-cube which is composed of the results of the complete set of observations.
This feature might also apply to collections of Actuations but this application has not yet been explored.
Assets (Systems or Platforms) may be deployed with the intention of making Executions (Actuations, Observations, or Sampling) at some future time. Collections of Samples or Executions can be described ahead of their completion, to indicate the intention to make collections with the given properties at a future date. Here we describe patterns that may be used in this way.
A specific sosa:System (sosa:Actuator, sosa:Sensor, sosa:Sampler) can be planned to be attached to a sosa:Platform as part of a sosa:Deployment during a nominated time interval.
For example, Figure 44 describes the deployment of a specific sosa:Sampler
(ex:SA56
) on a specified sosa:Platform (ex:LOIRE_A_JARGEAU_WQ_Station
) on the Loire River between
2026 and 2028.
This Sampler implements a nominated sosa:SamplingProcedure.
It may be associated with a potential set of Samples, packaged in an empty sosa:SampleCollection
(ex:SC-LaJ1
).
The resulting SampleCollection has no members prior to the deployment, but can be characterized prospectively in terms of the SamplingProcedure and Platform (station) used.
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:SamDepG a sosa:Deployment ;
sosa:hasFeatureOfInterest ex:Loire_River ;
sosa:deployedOnPlatform ex:LOIRE_A_JARGEAU_WQ_Station ;
sosa:deployedSystem ex:SA56 ;
sosa:startTime "2026-05-01T00:00:00"^^xsd:dateTime ;
sosa:endTime "2028-04-30T23:59:00"^^xsd:dateTime ;
.
ex:Loire_River
a sosa:FeatureOfInterest ;
.
ex:LOIRE_A_JARGEAU_WQ_Station
a sosa:Platform ;
.
ex:SA56
a sosa:Sampler ;
sosa:implements ex:Sp-A56 ;
sosa:isHostedBy ex:LOIRE_A_JARGEAU_WQ_Station ;
sosa:madeSamplingHasResult ex:SC-LaJ1 ;
.
ex:Sp-A56
a sosa:SamplingProcedure ;
.
ex:SC-LaJ1
a sosa:SampleCollection ;
.
More generically, a Collection (i.e., sosa:ActuationCollection, sosa:ObservationCollection, sosa:SamplingCollection, or sosa:SampleCollection) can be described which is made by a potential deployment, where the actual system is only specified in terms of the Procedure implemented.
For example, Figure 45 describes a potential set of samples (ex:SC-LaJ2
) of
the Loire River, packaged in a sosa:SampleCollection, collected from a specified sosa:Platform,
using a given sosa:SamplingProcedure (ex:Sp-A56
).
The actual sosa:Sampler is not specified, only that it must implement the nominated SamplingProcedure,
and be deployed at the nominated station.
@prefix ex: <https://example.org/data/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:SC-LaJ2 a sosa:SampleCollection ;
sosa:isSampleOf ex:Loire_River ;
sosa:isResultOfMadeBySampler [
a sosa:Sampler ;
sosa:implements ex:Sp-A56 ;
sosa:isHostedBy ex:LOIRE_A_JARGEAU_WQ_Station ;
] ;
sosa:isResultOfUsedProcedure ex:Sp-A56 ;
.
ex:Loire_River
a sosa:FeatureOfInterest ;
.
ex:Sp-A56
a sosa:SamplingProcedure ;
.
ex:LOIRE_A_JARGEAU_WQ_Station
a sosa:Platform ;
.
Then Figure 46 describes a potential set of observations of pH
(ex:ObsColpH
),
packaged in a sosa:ObservationCollection, whose (proximate) feature of interest is the set of Samples
described above (ex:SC-LaJ2
).
Each member of the sosa:ObservationCollectionmust be consistent with the
requirements for membership of an ObservationCollection - i.e., be
sampled on the specified sosa:Platform using the nominated sosa:ObservingProcedure (ex:pH-A56
),
and whose sosa:hasFeatureOfInterest must be a member of the set of Samples (ex:SC-LaJ2
).
Again, the actual System (sosa:Sensor) is not specified, only that it must implement the nominated
ObservingProcedure.
It is not specified that the observations are made at any particular time or place, so might be ex-situ.
@prefix ex: <https://example.org/data/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:ObsColpH a sosa:ObservationCollection ;
sosa:hasUltimateFeatureOfInterest ex:Loire_River ;
sosa:observedProperty qk:PH ;
sosa:usedProcedure ex:pH-A56 ;
sosa:hasFeatureOfInterest ex:SC-LaJ2 ;
.
ex:Loire_River
a sosa:FeatureOfInterest ;
.
qk:PH
a sosa:Property ;
.
ex:pH-A56
a sosa:ObservingProcedure ;
.
ex:SC-LaJ2
a sosa:SampleCollection ;
rdfs:comment "described above" ;
.
The SSN Ontology does not provide a general pattern for describing observable or actuatable properties.
A number of existing catalogues of properties are available, such as:
Each of these uses a distinct ontology — or way of formalizing the definition of a property — suitable for many applications.
Alternatively, the Parameter Usage Vocabulary or I-ADOPT may be used to define a new observable or actuatable property. For example, using the I-ADOPT terminology, the property Temperature may be specialized to apply to a sick child as follows:
@prefix ex: <https://example.org/data/> .
@prefix iop: <https://w3id.org/iadopt/ont/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
ex:SickChildTemperature
a iop:Variable , sosa:Property;
iop:hasProperty qk:Temperature ;
iop:hasObjectOfInterest ex:Child ;
iop:hasConstraint [
a iop:Constraint, ex:Sick ;
iop:constrains ex:Child ] ;
skos:prefLabel "sick child" ;
.
qk:Temperature
a iop:Property , sosa:Property ;
skos:prefLabel "Temperature"@en ;
.
ex:Child skos:exactMatch <http://hadatac.org/ont/chear#Child> .
ex:Sick skos:exactMatch <http://semanticscience.org/resource/SIO_000954> .
<http://hadatac.org/ont/chear#Child>
a iop:Entity ;
skos:prefLabel "Child"@en ;
.
<http://semanticscience.org/resource/SIO_000954>
skos:prefLabel "Sick"@en , "Krank"@de ;
skos:altLabel "Unwell"@en , "Poorly"@en ;
.
The key point is that an individual property, whether taken from a catalogue or defined using a specialist vocabaulary, is denoted by a URI. This URI can then be used as the value of the sosa:actsOnProperty or sosa:observedProperty of an Execution.
Most commonly an instance of sosa:Property is generic to many
features of interest (e.g., ex:Temperature
, ex:Concentration
, or ex:OnOffStatus
).
These shared properties are then used across executions. For instance, thousands of observations about CO2 concentrations
all share the same ex:Concentration
property, thereby ensuring scalability, indexing, interoperability, reuse,
and a concise semantics. Similarly, one could define ex:CO2Concentration
as a sub-property of
ex:Concentration
using a single axiom. This new property (and resulting hierarchy) can then be used to distinguish
CO2 concentration observations from more general concentration observations without giving up on their commonality
with other types of concentration observations. This improves structure and retrieval. The catalogs listed above support this usage.
Alternatively, an individual property may be made specific to an individual feature of interest using
sosa:isPropertyOf
(e.g., ex:SickChildATemperature
, ex:Room34LightStatus
).
Such specific properties of individual features would not usually appear in a catalogue of reusable properties and can potentially
lead to reduced reuse and performance (due to data size and indexing). However, this pattern has proven useful in some applications.
In that context, a key requirement is to relate the specific property to the general case for the underlying
quantity-kind and -dimension.
The [SAREF] ontologies address this requirement with separate classes:
saref:Property
for the general case, and saref:PropertyOfInterest
for the case where a
property is bound to a single feature of interest.
An instance of the latter may be connected to an instance of the former using the predicate
saref:hasPropertyKind
, as shown in the following example:.
@prefix ex: <https://example.org/data/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix saref: <https://saref.etsi.org/core/> .
qk:Temperature
a saref:Property ;
.
ex:SickChildA
a saref:FeatureOfInterest ;
.
ex:SickChildATemperature
a saref:PropertyOfInterest ;
saref:hasPropertyKind qk:Temperature ;
saref:isPropertyOfInterestOf ex:SickChildA ;
.
[SAREF] is closely aligned with SSN as documented in the alignments chapter so this may be used in SSN applications.
Where a property is defined as applying to a specific feature of interest, it cannot be used for an observation concerning any other feature of interest.
Where sosa:actsOnProperty or sosa:observedProperty of an sosa:Actuation or sosa:Observation refers to a specific property bound to a specific feature of interest, then the sosa:hasFeatureOfInterest is implied and may be omitted in the data.
Sensors and actuators may be packaged with other sensors and actuators in a complex device. For example, the consumer grade Inkbird IBS-TH2-PLUS has a temperature and relative-humidity sensor in a single package. The sosa:System class provides for this using the sosa:hasSubSystem property.
Figure 48 shows how an instance and type of the IBS-TH2-PLUS may be modeled as a complex sensor.
The following code snippet provides an outline of the details:
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@base <https://example.org/data/TH2-PLUS-b/> .
sensor:IBS-TH2-Plus a owl:Class ;
rdfs:subClassOf sosa:System ;
prov:wasDerivedFrom <https://inkbird.com/products/ibs-th2-plus> ;
rdfs:label "IBS-TH2 PLUS Temperature and Humidity Sensor System" ;
.
sensor:IBS-TH2-Plus-H a owl:Class ;
rdfs:subClassOf sosa:Sensor ;
rdfs:label "IBS-TH2 PLUS Humidity Sensor type" ;
.
sensor:IBS-TH2-Plus-T a owl:Class ;
rdfs:subClassOf sosa:Sensor ;
rdfs:label "IBS-TH2 PLUS Temperature Sensor type" ;
.
ex:12gth456a-23190 a sensor:IBS-TH2-Plus ;
sosa:hasSubSystem ex:12gth456a-23190-H ;
sosa:hasSubSystem ex:12gth456a-23190-T ;
.
ex:12gth456a-23190-H a sensor:IBS-TH2-Plus-H ;
sosa:observes qk:RelativeHumidity ;
.
ex:12gth456a-23190-T a sensor:IBS-TH2-Plus-T ;
sosa:observes qk:Temperature ;
.
sosa:System is the class of systems, i.e., devices or entities that implements procedures to make actuations, observations, or samplings. Members of the class are individual systems i.e., system-instances. In the physical world these will typically carry a serial-number (devices) or proper-name (people).
Nevertheless, most individual systems share a primary description with other individuals of the same system type or model number. The characteristics and capabilities of the system type will often provide the key information about a system involved in an execution. Traditionally this information would appear in a specification or data-sheet for a device type.
The SSN Ontology may be used to describe system types as OWL Classes, so that system instances can be typed through them. The recommended pattern is for
Figure 49 illustrates an example of a sensor type and instance modeled this way.
The following code snippet provides an outline of the details:
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
qk:Temperature
a sosa:Property ;
.
sensor:TemperatureSensor
a owl:Class ;
rdfs:label "A generic temperature sensor" ;
rdfs:subClassOf sosa:Sensor ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue qk:Temperature ;
owl:onProperty sosa:observes ;
] ;
.
sensor:Mercury-in-glass-thermometer
a owl:Class ;
rdfs:label "Mercury in glass thermometer" ;
rdfs:comment "Temperature sensor based on the expansion of a column of mercury inside a glass tube" ;
rdfs:subClassOf sensor:TemperatureSensor ;
.
ex:Mums-clinical-thermometer
a sosa:Sensor ;
a sensor:TemperatureSensor ;
a sensor:Mercury-in-glass-thermometer ;
.
ex:SickChildA
a sosa:FeatureOfInterest ;
.
ex:SickChildATempObs
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:SickChildA ;
sosa:hasSimpleResult "38.2 Cel"^^cdt:ucum ;
sosa:madeBySensor ex:Mums-clinical-thermometer ;
sosa:observedProperty qk:Temperature ;
.
This approach is a clarification and adjustment relative to earlier editions of this Ontology, which suggested that instances of sosa:System could represent either generic systems or instances specific to a single execution.
More complex systems can be described using class definitions with OWL Restrictions to fix specific properties of class members. For example, the following code illustrates how a sensor package, such as an Inkbird model IBS-TH2-PLUS, may be described.
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sosa-cap: <http://www.w3.org/ns/sosa/system-capability-properties#> .
@base <https://example.org/data/TH2-PLUS/> .
sensor:IBS-TH2-Plus
a owl:Class ;
rdfs:label "IBS-TH2 PLUS Temperature and Humidity Sensor System" ;
rdfs:subClassOf sosa:System ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue sensor:IBS-TH2-Plus-systemCapability ;
owl:onProperty sosa:hasSystemCapability ;
] ;
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty sosa:hasSubSystem ;
owl:someValuesFrom sensor:IBS-TH2-Plus-H ;
] ;
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty sosa:hasSubSystem ;
owl:someValuesFrom sensor:IBS-TH2-Plus-T ;
] ;
prov:wasDerivedFrom <https://inkbird.com/products/ibs-th2-plus> ;
.
sensor:IBS-TH2-Plus-systemCapability a sosa:ObservationCollection ;
sosa:hasMember [
a sosa:Observation ;
sosa:observedProperty sosa-cap:MaxFrequency ;
sosa:hasSimpleResult "0.1 Hz"^^cdt:ucum ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MinFrequency ;
sosa:hasSimpleResult "5.556e-4 Hz"^^cdt:ucum ;
]
.
sensor:IBS-TH2-Plus-H
a owl:Class ;
rdfs:label "IBS-TH2 PLUS Humidity Sensor type" ;
rdfs:subClassOf sosa:Sensor ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue qk:RelativeHumidity ;
owl:onProperty sosa:observes ;
] ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue sensor:IBS-TH2-Plus-H-systemCapability ;
owl:onProperty sosa:hasSystemCapability ;
] ;
.
sensor:IBS-TH2-Plus-T
a owl:Class ;
rdfs:label "IBS-TH2 PLUS Temperature Sensor type" ;
rdfs:subClassOf sosa:Sensor ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue qk:Temperature ;
owl:onProperty sosa:observes ;
] ;
rdfs:subClassOf [
a owl:Restriction ;
owl:hasValue sensor:IBS-TH2-Plus-T-systemCapability ;
owl:onProperty sosa:hasSystemCapability ;
] ;
.
sensor:IBS-TH2-Plus-H-systemCapability a sosa:ObservationCollection ;
sosa:hasMember [
a sosa:Observation ;
sosa:observedProperty sosa-cap:HumidityAccuracy ;
sosa:hasSimpleResult "4.5 %"^^cdt:ucum ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MaxMeasurableHumidity ;
sosa:hasSimpleResult "99.0 %"^^cdt:ucum ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MinMeasurableHumidity ;
sosa:hasSimpleResult "0.0 %"^^cdt:ucum ;
]
.
sensor:IBS-TH2-Plus-T-systemCapability a sosa:ObservationCollection ;
sosa:hasMember [
a sosa:Observation ;
sosa:observedProperty sosa-cap:TemperatureAccuracy ;
sosa:hasSimpleResult "0.5 Cel"^^cdt:ucum ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MaxMeasurableTemperature ;
sosa:hasSimpleResult "60.0 Cel"^^cdt:ucum ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MinMeasurableTemperature ;
sosa:hasSimpleResult "-40.0 Cel"^^cdt:ucum ;
]
.
sensor:IBS-TH2-Plus
describes the IBS-TH2-PLUS system type.
Every IBS-TH2-PLUS package records at a frequency in the range 5.556e-4 — 0.1 Hertz.
Every IBS-TH2-PLUS has two subsystems, one temperature sensor, and one relative-humidity sensor.
sensor:IBS-TH2-Plus-H
describes the humidity sensor type in the IBS-TH2-PLUS
package.
Every humidity sensor has a range 0—99 % RH with an accuracy of 4.5 %.
sensor:IBS-TH2-Plus-T
describes the temperature sensor type in the
IBS-TH2-PLUS package.
Every temperature sensor has a range -40—60 °C with an accuracy of 4.5 %.
This section is non-normative.
TBC
This section is non-normative.
Inverses are named for all SSN object properties, in order to support interoperability across a range of applications.
Terms added in the 2023 Edition are indicated with an asterisk*.
This section uses a combination of [Description-Logics] notation (see also the [Description-Logics-Home-Page]) and the Manchester Syntax [owl2-manchester-syntax].
The expression OP1 ≡ inverse OP2
indicates that the properties OP1
and OP2
are inverses of each other.
The following properties are datatype properties, and have therefore no inverses.
This section is non-normative.
A set of extended examples of instances using the SSN ontology are available in the examples folder.
This section is non-normative.
Starting in 2002, the OGC's Sensor Web Enablement initiative [SWE] developed a generic framework for delivering sensor data, dealing with remote-sensing, moving platforms, and in-situ monitoring and sensing. In particular, the key standards SensorML and O&M provided complementary viewpoints:
O&M also provided a model for sampling, since almost all scientific observations are made on a subset of, or proxy for, the ultimate feature of interest.
The initial Semantic Sensor Network ontology — now known as SSNX [SSNX] — was developed by the W3C Semantic Sensor Network Incubator Group. SSNX was influenced by SWE, but was primarily built around the Stimulus Sensor Observation (SSO) ontology design pattern ([SSO-Pattern], [SSNX-Paper]). The SSO was also aligned to the Dolce-Ultralite upper ontology [DUL].
The SSN Ontology [vocab-ssn-20171019] combined key elements of SWE and SSNX, and added Actuation and Sampling as additional procedure execution types. The core classes and properties comprised the Sensor, Observation, Sample, and Actuator (SOSA) module. SOSA acts as the central building block for the SSN and is packaged with very lightweight axiomatization so as to support use by web-developers.
For details on the design philosophy and decisions around the SSN Ontology, please consult chapter "3. Origins of SSN and SOSA" in Semantic Sensor Network Ontology.
Following experience with O&M since its publication as an ISO and OGC standard in 2011 [OandM]
[iso-19156-2011], a revised edition Observations, Measurements and Samples (OMS) was developed and
published in 2023 [OMS] [iso-19156-2023].
The new edition notably incorporated the Sampling
class from SSN, as well as some features which had
been proposed in Extensions to the SSN [vocab-ssn-ext], in particular the notion of ultimate
feature of interest, as well as Sample and Observation collections.
Section 7 of [OMS] provides a comprehensive description of the characteristics of observations and samples.
OMS was published as ISO 19156:2023 [iso-19156-2023], but is freely available as OGC Abstract Specification — Topic 20 [OMS].
Production of this new edition of the SSN Ontology has been primarily driven by a desire to align with OMS. SSN provides the official RDF implementation of OMS, as described in the OMS Extension Module. In addition, developments in Internet of Things implementations, in particular [SAREF], [STA] and the OGC Connected Systems project have contributed some ideas particularly around actuation. Finally, direct experience with SSN has uncovered a variety of more minor issues that have been addressed or accommodated.
This section is non-normative.
The System Capabilities Module imports SOSA and adds classes and properties required for the description of the operating conditions and capabilities of systems, in particular Sensors and Actuators.
The complexity of the SSN/SOSA ontologies is directly due to the complexity of the use-cases that they are meant to support. Previous standards and data formats have been limited by the constraints of their underlying technologies often resulting in solutions that were simple to implement but that could only handle real-life exceptions through the use of workarounds. The use of "fill values" or "magic numbers" were a simple and common solution to data quality requirements or to indicate equipment failure. Unfortunately, these could later be inadvertently analyzed as actual instrument readings.
The richness of RDF/S and ontological approaches offer opportunities for the rich and deep recording of system information and results. This perversely creates a new problem in that the ability to handle complexity can make implementation difficult and costly for implementers that are simply trying determine whether their ice cream is about to melt. The very richness of the semantic web ecosystem also makes it tempting to over-specify data structures to an extents that it becomes inflexible.
The authors often wrestled with these issues when designing this standard and attempting to support the complexity of real-life deployments: data quality constraints must ensure that the data is sensical while making allowanced for the storage of out-of-bounds values that may indicate a problem with a deployed sensor.
The System Capabilities module has been downsized in this edition and its vocabulary extensively reworked with a number of classes deleted in favor of external vocabularies and property repositories. The module further suffered from under specification and lacked documentation over its intended use.
The usage of observations and observation collections has been expanded to capabilities and conditions through the enumeration of values and constraints on those values without assigning a reporting sensor or timestamp. This allows to reuse the same structure to report on sensor behavior.
This edition has also removed the notion of "Ranges" within its vocabulary due to the absence of an appropriate datatype or vocabulary to describe numerical ranges. xsd:minInclusive/xsd:maxInclusive are part of OWL reserved vocabulary, and schema:minValue/schema:maxValue created additional problems relating to the property of the feature. Instead, this edition recommends the specification of individual, simple properties such as MinMeasurableTemperature and MaxMeasurableTemperature. Apart from hasValidityContext, this edition does not provide means to relate properties or describe them further. External ontologies are expected to be complementary to this module, such as the I-ADOPT Framework ontology, and the Ontology of Units of Measure.
The namespace for the System Capabilities Module is http://www.w3.org/ns/sosa/
.
The suggested prefix for the System Capabilities Module namespace is sosa
.
The RDF graph containing the definitions from the System Capabilities Module is available at http://www.w3.org/ns/sosa/systems/.
System Capabilities was a module in the 'Horizontal Segmentation' section of the previous edition of the SSN Ontology [vocab-ssn-20171019]. This module has been heavily simplified and moved to Appendix in this edition.
This section is non-normative.
The System Capabilities Module comprises of two primary concepts: the system's capability to sense and the conditions under which it can do so. Both concepts are closely related and are often described as one and the same in industrial literature. The System Capabilities describes the properties of the measurement being performed by the system while the Operating Conditions describe the potentials environments in which the system is deployed. This separation is needed in order to account for the variability in the performance of the system under different environmental or operating parameters. Furthermore:
This information allows designers to communicate complex operating behavior to the consumer of the system results and to simplify procurement and system deployment decision by enabling searches for systems capable of fulfilling a specific requirement.
The reporting of operating conditions and capabilities is done through observation collections that aggregate observations. Each observation gives a value for a system or environment property. The information is typically provided by a system vendor, and in this context sensor, procedure, and timestamp are generally not reported.
Reuse of sosa:Observation in this way ensures consistency in reporting values across the ontology, which is particularly helpful when the same observation can be used for reporting both a capability and operating condition. Note that this is application dependent, and nuances may prevent reuse: for example, a thermometer's capability is based on its ability to measure a medium while its survival conditions are based on its own physical temperature.
This section is non-normative.
A system is linked to its operating conditions through property hasOperatingConditions. The operating conditions themselves are modelled as observations or observation collections, typically about the system environment. Furthermore, operating conditions can be typed by one of the sub-classes of OperatingConditions so as to explicit the desirability of the conditions. Three such sub-classes are provided as a basic classification: NormalOperatingConditions, SuboptimalOperatingConditions, and SurvivableConditions.
For illustration purposes, this specification includes a sample vocabulary consisting of a short list of properties about the system environment.
It is possible with additional ontological statements to create conditions that are "latching", as in the case of damaged sensors with permanently degraded operating characteristics. It is also possible to describe operating modes of systems using all the expressivity of observations and observation collections. Implementers may define additional sub-classes of OperatingConditions to account for such use cases.
The feature of interest of the operating conditions may be the system itself, but this is not mandatory.
The sensor that made the observations can be left unspecified.
The following example describes that sensor ex:InkBird-IBS-TH2-0354313547
can survive from -273.0 °C to 80.0 °C.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix sosa-env: <http://www.w3.org/ns/sosa/system-environment-properties#> .
ex:InkBird-IBS-TH2 a owl:Class;
rdfs:label "Inkbird IBS-TH2"@en ;
.
ex:InkBird-IBS-TH2-0354313547 a ex:InkBird-IBS-TH2 ;
rdfs:label "Inkbird IBS-TH2 instance 0354313547"@en ;
sosa:hasOperatingConditions ex:IBSTH2SurvivalRange ;
.
ex:IBSTH2SurvivalRange a sosa:ObservationCollection , sosa:SurvivableConditions ;
rdfs:label "Inkbird IBS-TH2 Failiure limits"@en ;
sosa:hasMember [
sosa:observedProperty sosa-env:MinAmbientTemperature ;
sosa:hasResult [
qudt:value -273.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
] , [
sosa:observedProperty sosa-env:MaxAmbientTemperature ;
sosa:hasResult [
qudt:value 80.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
]
.
This section is non-normative.
A system is linked to its capabilities through property hasSystemCapability. The system capabilities themselves are modelled as observations or observation collections, that have for observed property a property that qualifies some capability of the system.
For illustration purposes, this specification includes a sample vocabulary consisting of a short list of properties about system capabilities.
Optionally, system capabilities may be linked through property hasValidityContext to some observations or observation collections that model the context under which the system capabilities are valid. These observations are typically about the system environment. Validity contexts are especially useful to describe performance bands of systems. Examples include environmental sensors that present different measurement accuracies in certain concentration ranges or that offer detection-only capabilities at very low concentrations.
For illustration purposes, this specification includes a sample vocabulary consisting of a short list of properties about the system environment.
System Capabilities are properties that are relevant while the system is in operation. Operating Conditions may be relevant irrespective of the operating state; a sensor that exceeds its SurvivableConditions will be rendered inoperable irrespective of whether it was powered on or off at the time, as in the case of a deep water sensor reaching its crush-depth.
The axiomatization of property hasSystemCapability enforces that the feature of interest of the system capability is the system itself.
The following example describes the system capabilities of sensor ex:IBS-TH2-Plus-T-687343
in terms of its accuracy
and measurable temperature range, valid from 0.0 to 99.0 %R.H.
@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> .
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix qudt: <http://qudt.org/schema/qudt/>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix qk: <http://qudt.org/vocab/quantitykind/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sosa-cap: <http://www.w3.org/ns/sosa/system-capability-properties#> .
@prefix sosa-env: <http://www.w3.org/ns/sosa/system-environment-properties#> .
@base <https://example.org/data/TH2-PLUS/> .
sensor:IBS-TH2-Plus-T a owl:Class ;
rdfs:label "IBS-TH2 PLUS Temperature Sensor type" ;
rdfs:subClassOf sosa:Sensor ;
.
ex:IBS-TH2-Plus-T-687343 a sensor:IBS-TH2-Plus-T ;
rdfs:label "IBS-TH2 PLUS Temperature Sensor instance 687343" ;
sosa:observes qk:Temperature ;
sosa:hasSystemCapability sensor:IBS-TH2-Plus-T-systemCapability ;
.
sensor:IBS-TH2-Plus-T-systemCapability a sosa:ObservationCollection ;
sosa:hasMember [
a sosa:Observation ;
sosa:observedProperty sosa-cap:TemperatureAccuracy ;
sosa:hasResult [
qudt:value 0.5 ;
qudt:hasUnit unit:DEG_C ;
] ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MaxMeasurableTemperature ;
sosa:hasResult [
qudt:value 60.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-cap:MinMeasurableTemperature ;
sosa:hasResult [
qudt:value -40.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
] ;
sosa:hasValidityContext sensor:IBS-TH2-Plus-T-normalHumidityConditions ;
.
sensor:IBS-TH2-Plus-T-normalHumidityConditions a sosa:Observation ;
sosa:hasMember [
a sosa:Observation ;
sosa:observedProperty sosa-env:MinAmbientRelativeHumidity ;
sosa:hasResult [
qudt:value 0.0 ;
qudt:hasUnit unit:PERCENT ;
] ;
] ,
[
a sosa:Observation ;
sosa:observedProperty sosa-env:MaxAmbientRelativeHumidity ;
sosa:hasResult [
qudt:value 99.0 ;
qudt:hasUnit unit:PERCENT ;
] ;
] .
This section is non-normative.
The object property hasValidityContext may be used to qualify the context in which a SOSA Property is valid. This context is modelled as individual observations or as grouped observation collections. When the qualified Property represents a system capability, the observed properties in the validity context typically refer to aspects of the system's operating environment. For example, water heaters are characterized by nominal power and efficiency values under specified inlet and outlet temperatures and flow rates, and their energy consumption at steady temperature is typically expressed in kWh/24h in the context where the water temperature is maintained at 65 °C.
Beyond the scope of the System Capabilities module, Properties may also be further described with validity contexts. For example standard meteorological practice defines reference measurement heights, such as 10 m for wind and 2 m for air temperature.
The following example describes the humidity accuracy property ex:IBSTH2HumidityAccuracy
, valid at certain temperatures and relative humidities.
@prefix ex: <https://example.org/data/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix sosa-env: <http://www.w3.org/ns/sosa/system-environment-properties#> .
ex:IBSTH2HumidityAccuracy a sosa:Property ;
rdfs:label "Humidity Accuracy (25°C/77°C, 20%~80%RH)"@en ;
sosa:hasValidityContext [
a sosa:ObservationCollection ;
sosa:hasMember [
sosa:observedProperty sosa-env:AmbientTemperature ;
sosa:hasResult [
qudt:value 25.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
] , [
sosa:observedProperty sosa-env:MinAmbientRelativeHumidity ;
sosa:hasResult [
qudt:value 20.0 ;
qudt:hasUnit unit:PERCENT ;
] ;
] , [
sosa:observedProperty sosa-env:MaxAmbientRelativeHumidity ;
sosa:hasResult [
qudt:value 80.0 ;
qudt:hasUnit unit:PERCENT ;
] ;
]
]
.
The following example demonstrates a possible solution for describing sensor reading limitations using other ontologies such as I-ADOPT:
@prefix ex: <http://example.org/>.
@prefix sosa: <https://www.w3.org/TR/vocab-ssn/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix qudt: <http://qudt.org/schema/qudt/>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix iop: <https://w3id.org/iadopt/ont/>.
@prefix uom: <http://www.opengis.net/def/uom/OGC/1.0/>.
ex:SensorCapabilityObservation a sosa:Observation ;
sosa:hasFeatureOfInterest ex:Sensor ;
sosa:observedProperty ex:SensorMinimumLimit;
sosa:hasResult [
qudt:value -40.0 ;
qudt:hasUnit unit:DEG_C ;
] ;
.
ex:SensorMinimumLimit a iop:Variable, sosa:Property;
iop:hasStatisticalModifier uom:minimum ;
iop:hasObjectOfInterest ex:air ;
iop:hasProperty qudt:Temperature ;
.
The advantage of this approach is that multiple statistical statements can be made about the property beyond that of simple maximum / minimum values, such as nominal or peak values.
The Observation structure can similarly be used to report on the quality of individual results using the Data Quality Vocabulary. In some applications, the properties of individual measurements vary within the operating conditions of the sensor. The values of these properties can then be reported alongside the individual result entries.
@prefix ex: <http://example.org/>.
@prefix sosa: <https://www.w3.org/TR/vocab-ssn/>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix qudt: <http://qudt.org/schema/qudt/>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix sosa-cap: <http://www.w3.org/ns/sosa/system-capability-properties#> .
@prefix sosa-env: <http://www.w3.org/ns/sosa/system-environment-properties#> .
ex:observation_233 a sosa:Observation ;
sosa:hasFeatureOfInterest ex:TheAir;
sosa:observedProperty sosa-env:AmbientTemperature;
sosa:madeBySensor ex:TemperatureSensor ;
sosa:resultQuality ex:observation_233_MeasurementAccuracy ;
sosa:hasResult [
qudt:value 21.4 ;
qudt:hasUnit unit:DEG_C ;
] ;
.
ex:observation_233_MeasurementAccuracy a sosa:Observation ;
sosa:hasFeatureOfInterest ex:observation_233 ;
sosa:observedProperty sosa-cap:TemperatureAccuracy ;
sosa:hasResult [
qudt:value 1.5 ;
qudt:hasUnit unit:DEG_C ;
] ;
.
The System Capabilities Module also introduced a Battery class to represent power supply requirements for mobile sensors.
The illustrative sosa-cap:BatteryLifetime
system capability property allows to record expected battery
utilization either on a nominal basis or within different operating conditions.
@prefix ex: <http://example.org/>.
@prefix sosa: <https://www.w3.org/TR/vocab-ssn/>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix qudt: <http://qudt.org/schema/qudt/>.
@prefix unit: <http://qudt.org/vocab/unit/>.
@prefix iop: <https://w3id.org/iadopt/ont/>.
@prefix uom: <http://www.ontology-of-units-of-measure.org/resource/om-2/> .
@prefix sosa-cap: <http://www.w3.org/ns/sosa/system-capability-properties#> .
ex:AABattery a sosa:Battery ;
rdfs:label "An AA battery." .
ex:sensor a sosa:Sensor;
sosa:hasSubSystem ex:AABattery .
ex:nominalLifetimeRestriction a iop:Variable, sosa:Property;
iop:hasStatisticalModifier uom:average ;
iop:hasObjectOfInterest ex:AABattery ;
iop:hasProperty sosa-cap:BatteryLifetime .
ex:nominalLifetime a sosa:Observation ;
sosa:hasFeatureOfInterest ex:sensor ;
sosa:observedProperty ex:nominalLifetimeRestriction ;
sosa:hasResult [
qudt:value 1.0 ;
qudt:hasUnit unit:YR ;
] ;
.
The following examples illustrate the terms related to System capabilities and operating conditions:
This section introduces the following classes and properties:
sosa:Battery, sosa:hasOperatingConditions, sosa:hasSystemCapability, sosa:hasValidityContext, sosa:NormalOperatingConditions, sosa:OperatingConditions, sosa:SuboptimalOperatingConditions, sosa:SurvivableConditions
IRI: http://www.w3.org/ns/sosa/Battery
an OWL Class
Battery — A Battery powering a System as its primary or secondary power source. As this is a specialization of the System class, modeling of integrated battery management systems is also possible.
IRI: http://www.w3.org/ns/sosa/hasOperatingConditions
an OWL Object Property
has operating conditions — Relation between a System and its Operating Conditions, modelled as ObservationCollection (or Observation) describing conditions under which the System can operate. A short but extensible list of sub-classes of OperatingConditions is provided in SSN-System, such as normal operating conditions, suboptimal conditions, and survivable conditions.
IRI: http://www.w3.org/ns/sosa/hasSystemCapability
an OWL Object Property
has System Capability — Relation between a System and an ObservationCollection (or Observation) describing the capability of the system. A sensor or system may have more than one set of system capabilities with different validity contexts.
IRI: http://www.w3.org/ns/sosa/hasValidityContext
an OWL Object Property
has validity context — Links a an observation collection or observation (typically about the system capabilities) or a property (typically about the system capabilities) to its validity context, described as an observation collection or observation (typically about the system environment)
IRI: http://www.w3.org/ns/sosa/NormalOperatingConditions
an OWL Class
Normal Operating Conditions — Type of observation or observation collection that describe the conditions under which a system is expected to operate normally.
IRI: http://www.w3.org/ns/sosa/OperatingConditions
an OWL Class
Operating Condition — Type of observation or observation collection that describe operating conditions of systems. Sub-classes of this class explicit the desirability of the conditions. Three such sub-classes are provided as a basic classification: NormalOperatingConditions, SuboptimalOperatingConditions, and SurvivableConditions.
IRI: http://www.w3.org/ns/sosa/SuboptimalConditions
an OWL Class
Suboptimal Conditions — Type of observation or observation collection that describe the conditions under which a system is expected to operate sub-optimally. Results will still be reported but the performance of the sensor, in term of precision for example, will be impaired.
IRI: http://www.w3.org/ns/sosa/SurvivableConditions
an OWL Named Individual
Survivable Conditions — Type of observation or observation collection that describe the conditions under which a system is expected to survive, that is to continue to exist in its current form, even if its future operations are impaired. A typical example is the temperature at which a sensor looses physical integrity and looses its shape. A system or sensor exposed to conditions outside of those reported by SurvivableConditions will no longer be serviceable.
For illustration purposes, this section describes sample vocabularies consisting of short lists of properties about system capabilities and the system environment.
These vocabularies have been partially generated by a large language model and are intended for illustrative purposes only. The Spatio-temporal Data on the Web Working Group does not aim to maintain comprehensive or authoritative lists of properties. Users SHOULD instead adopt concepts defined by other organizations and published through appropriate vocabulary portals.
SOSA/SSN includes a sample vocabulary consisting of a short list of properties about system capabilities.
The namespace for this sample vocabulary is
http://www.w3.org/ns/sosa/system-capability-properties#
.
The suggested prefix for this sample vocabulary is sosa-cap
.
The RDF graph containing the definition of terms in this sample vocabulary is available at http://www.w3.org/ns/sosa/system-capability-properties.
The definition of each concept is displayed as a tooltip when hovering over the concept.
sosa-cap:Accuracy
,
sosa-cap:BatteryLifetime
,
sosa-cap:BatteryResolution
,
sosa-cap:Drift
,
sosa-cap:Frequency
,
sosa-cap:HumidityAccuracy
,
sosa-cap:Latency
,
sosa-cap:LowerDetectionLimit
,
sosa-cap:MaintenanceSchedule
,
sosa-cap:MaxFrequency
,
sosa-cap:MaxMeasurableHumidity
,
sosa-cap:MaxMeasurableTemperature
,
sosa-cap:MaxOperatingPower
,
sosa-cap:MinFrequency
,
sosa-cap:MinMeasurableHumidity
,
sosa-cap:MinMeasurableTemperature
,
sosa-cap:MinOperatingPower
,
sosa-cap:Precision
,
sosa-cap:Resolution
,
sosa-cap:ResponseTime
,
sosa-cap:RFSensitivity
,
sosa-cap:Selectivity
,
sosa-cap:Sensitivity
,
sosa-cap:TemperatureAccuracy
,
sosa-cap:TemperaturePrecision
,
sosa-cap:TemperatureResolution
,
sosa-cap:UpperDetectionLimit
,
SOSA/SSN includes a sample vocabulary consisting of a short list of properties about the system environment.
The namespace for this sample vocabulary is
http://www.w3.org/ns/sosa/system-environment-properties#
.
The suggested prefix for this sample vocabulary is sosa-env
.
The RDF graph containing the definition of terms in this sample vocabulary is available at http://www.w3.org/ns/sosa/system-environment-properties.
The definition of each concept is displayed as a tooltip when hovering over the concept.
sosa-env:AmbientTemperature
,
sosa-env:AmbientHumidity
,
sosa-env:AmbientPressure
,
sosa-env:AmbientLightLevel
,
sosa-env:Altitude
,
sosa-env:DeploymentLocation
,
sosa-env:DeploymentEnvironmentType
,
sosa-env:ExposureToVibration
,
sosa-env:MinAmbientRelativeHumidity
,
sosa-env:MinAmbientTemperature
,
sosa-env:MagneticInterferenceLevel
,
sosa-env:MaxAmbientRelativeHumidity
,
sosa-env:MaxAmbientTemperature
,
sosa-env:PollutionLevel
,
sosa-env:Salinity
,
sosa-env:UVExposure
,
sosa-env:WindSpeed
,
sosa-env:WindDirection
This section is non-normative.
The editors recognize the major contribution of the members of the original W3C Semantic Sensor Networks Incubator Group. The editors also gratefully acknowledge the contributions made by all members of the SSN subgroup of the original Spatial Data on the Web working group.
For this new edition of SSN, in addition to the contributors listed at the top of the document, the editors acknowledge the work of the editors of ISO 19156:2023 ([iso-19156-2023], [OMS]). Ted Thibodeau Jr, Openlink Software, made many small grammatical improvements to the text.
This section is non-normative.
A full change-log is available on GitHub.
ssn:Input
, ssn:Output
, sosa:Result
deprecatedExecutionCollection
, ActuationCollection
, ObservationCollection
, SamplingCollection
, SampleCollection
,
hasMember
, isMemberOf
rdfs:range
on resultTime
hasResult, resultTime, phenomenonTime in the context of
Actuations`startTime
propertyforProperty
links from Procedure
, and inverse hasProcedure
madeBySystem
, madeExecution
Sample is subclass of FeatureOfInterest
axiomMaterialSample
, SpatialSample
, StatisticalSample
madeSamplingHasResult
and usedForExecutionHasResult
propertieshasOriginalSample
, isSampleOfUltimateFOI
from SSN-extActuatableProperty
, ObservableProperty
in favour of generic Property
ActuatingProcedure
, ObservingProcedure
, SamplingProcedure
specializations of Procedure
for each execution
typeObservationCollection
, SampleCollection
, hasMember
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: