Semantic Sensor Network Ontology - 2023 Edition

W3C Working Draft

More details about this document
This version:
https://www.w3.org/TR/2026/WD-vocab-ssn-2023-20260909/
Latest published version:
https://www.w3.org/TR/vocab-ssn-2023/
Latest editor's draft:
https://w3c.github.io/sdw-sosa-ssn/ssn/
History:
https://www.w3.org/standards/history/vocab-ssn-2023/
Commit history
Implementation report:
https://w3c.github.io/sdw-sosa-ssn/ssn/usage/
Latest Recommendation:
https://www.w3.org/TR/2017/REC-vocab-ssn-20171019/
Editors:
Simon J D Cox (OGC & Timely Logic, AU)
Maxime Lefrançois (École Nationale Supérieure des Mines de Saint-Étienne, FR)
Rob Warren (Glengarry Agriculture and Forestry, CA)
Rob Atkinson (OGC & Metalinkage, AU)
Luís Moreira de Sousa (Instituto Superior Técnico Lisboa, PT)
Kathi Schleidt (Datacove, AT)
Sylvain Grellet (BRGM, FR)
Krzysztof Janowicz (Universität Wien, AT)
Former editors:
Armin Haller (Australian National University, AU)
Danh Le Phuoc (Technical University of Berlin, DE)
Kerry Taylor (Australian National University, AU)
Feedback:
GitHub w3c/sdw-sosa-ssn (pull requests, new issue, open issues)
public-sdw-comments@w3.org with subject line [vocab-ssn-2023] … message topic … (archives)
Contributors (ordered alphabetically by surname)
Abdelfettah Feliachi, BRGM, FR
Danielle Limbaugh, Summit Knowledge Solutions, US
Barbara Magagna, GO FAIR Foundation, NL
Maja Milicic Brandt, Siemens AG, DE
Alex Robin, Georobotix, FR
Hylke van der Schaaf, Fraunhofer IOSB, DE
Alec Sculley, Summit Knowledge Solutions, US
Previous Contributors (ordered alphabetically by surname)
Raúl García-Castro, Universidad Politécnica de Madrid, ES
Joshua Lieberman, Tumbling Walls, US
Claus Stadler, Universität Leipzig, DE
OGC Document Number
OGC 25-022

Abstract

The Semantic Sensor Network ontology (SSN) describes the arrangement of actuators and their actuations, sensors and their observations, and samplers and their samplings, along with the procedures implemented, the features of interest and samples, and the actuated and observed properties. The core classes and properties are defined using a minimal set of axioms in modules called SOSA (Sensor, Observation, Sample, and Actuator), supplemented with additional axiomatization and terms in further SSN 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 modules contain the core definitions.
The ontology IRI of SOSA is http://www.w3.org/ns/sosa/.
The version IRI of SOSA 2023 edition is http://www.w3.org/ns/sosa/2023/.

The SSN modules contain the full axiomatization of the core terms.
The ontology IRI of SSN is http://www.w3.org/ns/ssn/.
The version IRI of SSN 2023 edition is http://www.w3.org/ns/ssn/2023/.

Status of This Document

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 the OGC community, this document is a Public Draft prepared by the Spatiotemporal 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 Working Draft using the Recommendation track.

Publication as a 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.

1. Introduction

This section is non-normative.

1.1 Context

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 [SWE] Standards — [SensorML], [OandM], [OMS], and [STA] — provide conceptual models and some encodings for the annotation of sensors and their observations. Observations, Measurements, and Samples ([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 Web of Things (WoT), 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.

1.2 Scope

This document is a W3C Recommendation and OGC Standard that defines the Semantic Sensor Network Ontology (SSN). SSN provides flexible but coherent perspectives for representing the entities, relations, and activities involved in actuation, observation, and sampling, including the procedures executed, and the systems that implement the procedures. Supporting concepts include platforms, deployments, observed or actuated properties, features of interest, and resulting samples, along with collections (sets) of executions and results that are typically involved in analysis and implementation.

A lightweight core module, 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 fallback 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. Basic subclass and subproperty relationships are included.

The full SSN Ontology has additional axioms that may be useful in richer semantic web applications.

1.3 2023 Edition

The previous edition of the SSN Ontology [vocab-ssn-20171019] harmonized prior 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 [OandM] 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 alignment 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. It aligns with designation of the ISO standard that triggered the revision work — ISO 19156:2023 ([OMS]).

Note

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. The Annex describes the changes since the previous edition [vocab-ssn-20171019]. Backward compatibility is maintained since descriptions of Actuations, Observations, Samplings, and Samples using the SSN Ontology from the previous edition are compatible with the SSN Ontology provided by this 2023 Edition.

Note

A brief account of the Origins of SSN and SOSA through various OGC and W3C initiatives is provided in an Appendix to this document.

The RDF files of the 2017 edition remain available at their permanent version IRI, which is obtained by substituting /sosa with /sosa/2017, and /ssn with /ssn/2017. Similarly, the RDF files of the 2023 edition will remain available at their permanent version IRI, which is obtained by substituting /sosa with /sosa/2023, and /ssn with /ssn/2023.

2. Notation

2.1 RDF notation

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 Recommendation. 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]

2.2 Class and property names

This section is non-normative.

The names (IRIs) of classes and properties in the SSN Ontology use English words or phrases, consistent with most other W3C ontologies. This contrasts with the strategy of some other ontology design frameworks, particularly in the BFO family and OBO Foundry, which prefer 'opaque' codes in identifiers.

It is intended that the name for each term be a mnemonic or hint for the concept. Names of some properties are phrases, including the verbs 'had', 'has', 'made', 'makes', 'used', 'uses', etc. Verb tense varies, and sometimes does not match all uses of properties that may be used both retrospectively and prospectively. Do not look for perfect consistency: The name is just a token for identification, while the formal definition for each term is provided using the skos:definition text and through its axiomatization.

2.3 Diagram notation

This section is non-normative.

2.3.1 Module diagrams

Figure 1 Key to notation used in module diagrams.

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.

2.3.2 Class and instance diagrams

Figure 2 Key to notation used in class and property diagrams, and in diagrams showing examples containing individuals.
Unless otherwise stated, unqualified names refer to classes and properties in the sosa: namespace.

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 diagrams showing examples, appear as a box with a dotted-outline. Properties of instances are shown with a dashed connector. 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 colored grey are included in some diagrams for context, but are described in a different section of the document

Connectors with open arrowheads indicate subclass relationships.

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.

2.4 Alignment notation

This section is non-normative.

Alignments of the SSN Ontology to some other ontologies and specifications are provided. The alignments use a combination of [Description-Logics] notation (see also the [Description-Logics-Home-Page]) and the Manchester Syntax [owl2-manchester-syntax].

3. Conformance

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.

3.1 General conformance requirements

Data conforms to SSN if:

SSN-compliant knowledge graphs MAY include additional non-SSN class instances, object and data properties, and additional RDF data.

3.2 Conformance with OGC Standards

OGC Standards are required to follow the OGC Modular Specification policy [ModSpec]. The key provisions of this policy are that:

The SSN Ontology Modularization (Figure 3) is consistent with this policy.

Ten core modules are defined, each module packaged into an RDF file that implements the module. Each module corresponds to an OGC Requirements Class. Dependencies between modules are recorded in the RDF through the owl:imports property. The definition of each term in the SSN Ontology corresponds to a single Requirement.

OGC Requirements Classes for SSN, their dependencies, and their member Requirements are listed in 4. SSN Ontology Modularization.

Note

OGC Conformance Classes and Tests are not provided explicitly at this time. A supplement to this document describing SHACL shapes (Shapes Constraint Language (SHACL)) may be provided in the future. This would provide some testing functionality.

Note

The OGC Policy also specifies that a Target Type be indicated for each Requirements Class. That is not done in this Recommendation. However, the accompanying Usage Report considers Ontologies and Datasets as Target Types.

4. SSN Ontology Modularization

The SSN Ontology is defined and 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.

Note

Higher level here is not to be confused with upper level ontologies or foundational ontologies. Upper level ontologies are general knowledge ontologies that can be directly imported in many domains.

4.1 Core modules

Figure 3 summarizes the modules and dependencies within the core SSN Ontology.

Figure 3 The modular SSN ontology — core packages, showing classes and dependencies.
Explanation of the notation used in module diagrams.

4.1.1 SOSA

The SOSA Module (Sensors, Observations, Samples and Actuations) defines the core classes and properties, and provides textual definitions and other annotations. This module uses the lightweight RDFS-Plus profile [RDFS-Plus]. 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:

4.1.1.1 SOSA Common

SOSA Common defines classes and properties that are shared across Actuation, Observation and Sampling applications, documented in section 5.3 Common terms.

Table 1 OGC Requirements class: ssn2023:sosa-common-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Requirement ssn2023:SOSAFeatureOfInterest
Requirement ssn2023:SOSAProperty
Requirement ssn2023:SOSAforProperty
Requirement ssn2023:SOSAhasProperty
Requirement ssn2023:SOSAisFeatureOfInterestOf
Requirement ssn2023:SOSAisPropertyOf
Requirement ssn2023:SOSAisUltimateFeatureOfInterestOf
Requirement ssn2023:SOSApropertyFor
Requirement ssn2023:SOSAProcedure
Requirement ssn2023:SOSAhasInput
Requirement ssn2023:SOSAhasOutput
Requirement ssn2023:SOSAhasProcedure
Requirement ssn2023:SOSAimplementedBy
Requirement ssn2023:SOSAinputFor
Requirement ssn2023:SOSAisProcedureFor
Requirement ssn2023:SOSAoutputFor
Requirement ssn2023:SOSAusedForExecution
Requirement ssn2023:SOSAExecution
Requirement ssn2023:SOSAExecutionCollection
Requirement ssn2023:SOSAendTime
Requirement ssn2023:SOSAhasFeatureOfInterest
Requirement ssn2023:SOSAhasInputValue
Requirement ssn2023:SOSAhasResult
Requirement ssn2023:SOSAhasSimpleResult
Requirement ssn2023:SOSAhasUltimateFeatureOfInterest
Requirement ssn2023:SOSAinputValueForExecution
Requirement ssn2023:SOSAisResultOf
Requirement ssn2023:SOSAmadeBySystem
Requirement ssn2023:SOSAphenomenonOccurred
Requirement ssn2023:SOSAphenomenonTime
Requirement ssn2023:SOSAresultTime
Requirement ssn2023:SOSAstartTime
Requirement ssn2023:SOSAusedProcedure
Requirement ssn2023:SOSAAsset
Requirement ssn2023:SOSADeployment
Requirement ssn2023:SOSAPlatform
Requirement ssn2023:SOSASystem
Requirement ssn2023:SOSAdeployedAsset
Requirement ssn2023:SOSAdeployedOnPlatform
Requirement ssn2023:SOSAdeployedSystem
Requirement ssn2023:SOSAhasDeployment
Requirement ssn2023:SOSAhasSubSystem
Requirement ssn2023:SOSAhosts
Requirement ssn2023:SOSAimplements
Requirement ssn2023:SOSAinDeployment
Requirement ssn2023:SOSAisHostedBy
Requirement ssn2023:SOSAisSubSystemOf
Requirement ssn2023:SOSAmadeExecution
Requirement ssn2023:SOSAsystemDeployment
Requirement ssn2023:SOSAhasMember
Requirement ssn2023:SOSAisMemberOf
4.1.1.2 SOSA Actuation

SOSA Actuation imports SOSA Common and defines classes and properties used in Actuations, documented in section 5.4 Actuations.

Table 2 OGC Requirements class: ssn2023:sosa-actuation-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-common-module
Requirement ssn2023:SOSAActuatingProcedure
Requirement ssn2023:SOSAActuation
Requirement ssn2023:SOSAActuationCollection
Requirement ssn2023:SOSAActuator
Requirement ssn2023:SOSAactsOn
Requirement ssn2023:SOSAactsOnProperty
Requirement ssn2023:SOSAisActedOnBy
Requirement ssn2023:SOSAmadeActuation
Requirement ssn2023:SOSAmadeByActuator
Requirement ssn2023:SOSAwasActedOnBy
4.1.1.3 SOSA Observation

SOSA Observation imports SOSA Common and defines classes and properties used in Observations, documented in section 5.5 Observations.

Table 3 OGC Requirements class: ssn2023:sosa-observation-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-common-module
Requirement ssn2023:SOSAObservation
Requirement ssn2023:SOSAObservationCollection
Requirement ssn2023:SOSAObservingProcedure
Requirement ssn2023:SOSASensor
Requirement ssn2023:SOSAStimulus
Requirement ssn2023:SOSAdetects
Requirement ssn2023:SOSAhasProxy
Requirement ssn2023:SOSAisDetectedBy
Requirement ssn2023:SOSAisObservedBy
Requirement ssn2023:SOSAisProxyFor
Requirement ssn2023:SOSAmadeBySensor
Requirement ssn2023:SOSAmadeObservation
Requirement ssn2023:SOSAobservationRelatedTo
Requirement ssn2023:SOSAobservedProperty
Requirement ssn2023:SOSAobserves
Requirement ssn2023:SOSAoriginated
Requirement ssn2023:SOSAqualityOf
Requirement ssn2023:SOSArelatedObservation
Requirement ssn2023:SOSAresultQuality
Requirement ssn2023:SOSAwasObservedBy
Requirement ssn2023:SOSAwasOriginatedBy
4.1.1.4 SOSA Sampling

SOSA Sampling imports SOSA Common and defines classes and properties used in Samplings, documented in section 5.6 Sampling.

Table 4 OGC Requirements class: ssn2023:sosa-sampling-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-common-module
Requirement ssn2023:SOSASample
Requirement ssn2023:SOSAMaterialSample
Requirement ssn2023:SOSASpatialSample
Requirement ssn2023:SOSAStatisticalSample
Requirement ssn2023:SOSASampleCollection
Requirement ssn2023:SOSASampling
Requirement ssn2023:SOSASamplingCollection
Requirement ssn2023:SOSASamplingProcedure
Requirement ssn2023:SOSAfeatureHasUltimateSample
Requirement ssn2023:SOSAhasOriginalSample
Requirement ssn2023:SOSAhasSample
Requirement ssn2023:SOSAisOriginalSampleOf
Requirement ssn2023:SOSAisResultOfMadeBySampler
Requirement ssn2023:SOSAisResultOfUsedProcedure
Requirement ssn2023:SOSAisSampleOf
Requirement ssn2023:SOSAisSampleOfUltimateFOI
Requirement ssn2023:SOSAmadeBySampler
Requirement ssn2023:SOSAmadeSampling
Requirement ssn2023:SOSAmadeSamplingHasResult
Requirement ssn2023:SOSAusedForExecutionHasResult
4.1.1.5 SOSA (All)

SOSA imports SOSA Actuation, SOSA Observation and SOSA Sampling.

SOSA does not import any other ontologies, so it is independent of modules that add more expressivity and further ontological commitments to the lightweight semantics of SOSA.

Table 5 OGC Requirements class: ssn2023:sosa-all-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-actuation-module
Dependency ssn2023:sosa-observation-module
Dependency ssn2023:sosa-sampling-module

4.1.2 SSN

The SSN Modules adds OWL axioms that formally indicate how properties relate to classes. SSN may be used in semantic web systems that use inference and reasoning, and check consistency of datasets.

The modularization of SSN mirrors SOSA. SSN is composed of four lower level modules:

4.1.2.1 SSN Common

SSN Common imports SOSA Common and axiomatizes classes and properties that are shared across Actuation, Observation and Sampling applications, as documented in section 5.3 Common terms.

Table 6 OGC Requirements class: ssn2023:ssn-common-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-common-module
Requirement ssn2023:SSNFeatureOfInterest
Requirement ssn2023:SSNProperty
Requirement ssn2023:SSNProcedure
Requirement ssn2023:SSNExecution
Requirement ssn2023:SSNExecutionCollection
Requirement ssn2023:SSNDeployment
Requirement ssn2023:SSNPlatform
Requirement ssn2023:SSNSystem
Requirement ssn2023:SSNhosts
4.1.2.2 SSN Actuation

SSN Actuation imports SSN Common and SOSA Actuation, and axiomatizes classes and properties used in Actuations, as documented in section 5.4 Actuations.

Table 7 OGC Requirements class: ssn2023:ssn-actuation-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:ssn-common-module
Dependency ssn2023:sosa-actuation-module
Requirement ssn2023:SSNActuatingProcedure
Requirement ssn2023:SSNActuation
Requirement ssn2023:SSNActuationCollection
Requirement ssn2023:SSNActuator
4.1.2.3 SSN Observation

SSN Observation imports SSN Common and SOSA Observation, and axiomatizes classes and properties used in Observations, as documented in section 5.5 Observations.

Table 8 OGC Requirements class: ssn2023:ssn-observation-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:ssn-common-module
Dependency ssn2023:sosa-observation-module
Requirement ssn2023:SSNObservation
Requirement ssn2023:SSNObservationCollection
Requirement ssn2023:SSNObservingProcedure
Requirement ssn2023:SSNSensor
Requirement ssn2023:SSNStimulus
4.1.2.4 SSN Sampling

SSN Sampling imports SSN Common and SOSA Sampling, and axiomatizes classes and properties used in Samplings, as documented in section 5.6 Sampling.

Table 9 OGC Requirements class: ssn2023:ssn-sampling-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:ssn-common-module
Dependency ssn2023:sosa-sampling-module
Requirement ssn2023:SSNSample
Requirement ssn2023:SSNSampleCollection
Requirement ssn2023:SSNSampler
Requirement ssn2023:SSNSampling
Requirement ssn2023:SSNSamplingCollection
Requirement ssn2023:SSNSamplingProcedure
Requirement ssn2023:SSNisResultOfMadeBySampler
Requirement ssn2023:SSNisResultOfUsedProcedure
Requirement ssn2023:SSNmadeSamplingHasResult
Requirement ssn2023:SSNusedForExecutionHasResult
4.1.2.5 SSN (All)

SSN imports SSN Actuation, SSN Observation and SSN Sampling.

Table 10 OGC Requirements class: ssn2023:ssn-all-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:ssn-actuation-module
Dependency ssn2023:ssn-observation-module
Dependency ssn2023:ssn-sampling-module

4.2 Extension modules

Figure 4 summarizes the extension modules described in this document and their dependencies on the SSN Ontology.

Figure 4 The modular SSN ontology — extensions.
Explanation of the notation used in module diagrams.

4.2.1 OMS

The SOSA-OMS module and the SSN-OMS module are documented in section 6.1 OMS Extension Module

4.2.1.1 SOSA-OMS

SOSA-OMS 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

Table 11 OGC Requirements class: ssn2023:sosa-oms-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-observation-module
Dependency ssn2023:sosa-sampling-module
Requirement ssn2023:OMSPreparationProcedure
Requirement ssn2023:OMSPreparationStep
Requirement ssn2023:OMSclassification
Requirement ssn2023:OMShasPreparationStep
Requirement ssn2023:OMShorizontalPositionalAccuracy
Requirement ssn2023:OMSmadeOnPlatform
Requirement ssn2023:OMSmakesObservationCollection
Requirement ssn2023:OMSmetadata
Requirement ssn2023:OMSobservationType
Requirement ssn2023:OMSparameter
Requirement ssn2023:OMSpreparedSample
Requirement ssn2023:OMSprocessingDetails
Requirement ssn2023:OMSrelatedSampling
Requirement ssn2023:OMSsamplePreparationStep
Requirement ssn2023:OMSsamplingLocation
Requirement ssn2023:OMSshape
Requirement ssn2023:OMSsize
Requirement ssn2023:OMSsourceLocation
Requirement ssn2023:OMSstorageLocation
Requirement ssn2023:OMStime
Requirement ssn2023:OMSvalidTime
Requirement ssn2023:OMSverticalPositionalAccuracy
4.2.1.2 SSN-OMS

SSN-OMS imports SOSA-OMS, and SSN Observation and SSN Sampling and adds OWL/RDFS axiomatization to the RDF implementation of [OMS].

Note

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.

Table 12 OGC Requirements class: ssn2023:ssn-oms-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-oms-module
Dependency ssn2023:ssn-observation-module
Dependency ssn2023:ssn-sampling-module
Requirement ssn2023:SSN-OMSmadeOnPlatform
Requirement ssn2023:SSN-OMSmakesObservationCollection

4.2.2 Sample Relations

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.

Table 13 OGC Requirements class: ssn2023:sample-relations-module
Prefix ssn2023: stands for https://www.w3.org/TR/vocab-ssn-2023#
Dependency ssn2023:sosa-sampling-module
Requirement ssn2023:SAMRRelationshipNature
Requirement ssn2023:SAMRSampleRelationship
Requirement ssn2023:SAMRhasSampleRelationship
Requirement ssn2023:SAMRnatureOfRelationship
Requirement ssn2023:SAMRrelatedSample

4.2.3 System Capabilities

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 System Capabilities module is documented in appendix D. System Capabilities Module.

4.3 Alignment modules

This section is non-normative.

Figure 5 summarizes alignments of other ontologies and specifications with the SSN Ontology that are described in this document.

Figure 5 The modular SSN ontology — alignments.
Explanation of the notation used in module diagrams.

4.3.1 PROV

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.

4.3.2 SAREF

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.

4.3.3 OBOE

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.

4.3.4 IDO

The SOSA-IDO module imports SOSA and IDO, and describes the alignment of SOSA to the Industrial Data Ontology (IDO). SOSA-IDO may be used to integrate data designed using SOSA with data designed using IDO.

The SOSA-IDO module is documented in section 7.4 IDO Alignment Module.

4.3.5 DUL

The SOSA-DUL module imports SOSA, and adds axioms that position SOSA within DOLCE UltraLite [DUL]. 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.5 DOLCE UltraLite Alignment Module.

4.3.6 DOLCE

The SOSA-DOLCE module imports SOSA, and adds axioms that position SOSA within DOLCE [DOLCE]. SOSA-DOLCE may be used to integrate data designed using SOSA into systems otherwise built in the DOLCE framework.

The SOSA-DOLCE module is documented in section 7.6 DOLCE Alignment Module.

4.3.7 BFO

The SOSA-BFO module imports SOSA, and adds axioms that align SOSA to BFO [BFO] and CCO [CCO]. SOSA-BFO may be used to integrate data designed using SOSA into systems otherwise built in the BFO framework.

The SOSA-BFO module is documented in section 7.7 BFO/CCO Alignment Module.

5. Specification

This section introduces the specifications for the Semantic Sensor Network Ontology and its RDF implementation.

5.1 Overview of the ontology

The SSN Ontology provides a semantic framework for describing certain procedure-executions, including actuations, observations, and samplings, the procedures executed, the systems that implement the procedures, the platforms on which these are mounted, and the deployments of the systems and platforms.

Figure 6, Figure 7, Figure 8, Figure 9, Figure 10, Figure 11, show the key classes and properties in the ontology modules, showing the general pattern for Executions, and specializations from the perspectives of Actuation, Observation, and Sampling, and then the supporting classes and structures for Systems, Platforms and Deployments, and collections.

Figure 6 Overview of the key classes and properties (general execution pattern)
Explanation of the notation used in class diagrams.
Figure 7 Overview of the key classes and properties (actuation perspective)
Explanation of the notation used in class diagrams.
Figure 8 Overview of the key classes and properties (observation perspective)
Explanation of the notation used in class diagrams.
Figure 9 Overview of the key classes and properties (sampling and sample perspective)
Explanation of the notation used in class diagrams.
Figure 10 Overview of the key classes and properties—system deployment
Explanation of the notation used in class diagrams.
Figure 11 Overview of the key classes and properties—collections
Explanation of the notation used in class diagrams.

5.2 RDF implementation

5.2.1 Namespaces

The namespace for the core terms is http://www.w3.org/ns/sosa/
The suggested prefix for the SOSA namespace is sosa:.

Note

5.2.2 Dependencies

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.

5.2.3 Expressivity

The SOSA modules contain the basic definitions of the core terms. SOSA has axiomatization corresponding to the RDFS-Plus profile [RDFS-Plus] — rdf:type (ClassAssertion), and using axioms ObjectInverseOf, SubClassOf, and SubObjectPropertyOf. SOSA includes the key annotations rdfs:label, skos:definition, schema:domainIncludes, and/or schema:rangeIncludes, plus other annotations as required. Inverses are named for all object properties.

Note

RDFS-Plus is supported by major RDF implementations, such as GraphDB and AnzoGraph.

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 ObjectUnionOf, DisjointClasses, ObjectSomeValuesFrom, and ObjectAllValuesFrom.

Note

The generic property constraints rdfs:domain and rdfs:range are not used in the SSN Ontology.

5.2.4 Distribution

5.2.4.1 SOSA

The SOSA graph contains the core definitions.
The ontology IRI of SOSA is http://www.w3.org/ns/sosa/.
The version IRI of SOSA 2023 edition is http://www.w3.org/ns/sosa/2023/.

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/.

5.2.4.2 SSN

The SSN graph contains the full axiomatization of the core terms.
The ontology IRI of SSN is http://www.w3.org/ns/ssn/.
The version IRI of SSN 2023 edition is http://www.w3.org/ns/ssn/2023/.

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/.

Note

The RDF files of the 2017 edition remain available at their permanent version IRI, which is obtained by replacing /sosa with /sosa/2017, and /ssn with /ssn/2017. Similarly, the RDF files of the 2023 edition will remain available at their permanent version IRI, which is obtained by replacing /sosa with /sosa/2023, and /ssn with /ssn/2023.

5.2.5 Index of classes and properties

The following are alphabetical lists of the classes and properties in the SSN Ontology.

Note

Terms added in the 2023 Edition are indicated with an asterisk*.

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:isProcedureFor*, 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:systemDeployment*, sosa:usedForExecution*, sosa:usedForExecutionHasResult*, sosa:usedProcedure, sosa:wasActedOnBy*, sosa:wasObservedBy*, sosa:wasOriginatedBy

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.

5.3 Common terms

5.3.1 Overview

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 (Execution, Procedure, Asset, and System). 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:

5.3.2 Features of Interest and Properties

5.3.2.1 Overview

This section is non-normative.

Figure 12 provides an overview of the classes and properties related to modeling Features of Interest and Properties.

Figure 12 Classes and relationships related to features of interest and properties
Explanation of the notation used in class diagrams.
5.3.2.2 Specification

This section introduces the following classes and properties:

5.3.2.2.1 sosa:FeatureOfInterest

IRI: http://www.w3.org/ns/sosa/FeatureOfInterest

an OWL Class

Feature Of Interest — entity that is the target of an Execution, ExecutionCollection, or Deployment

i.e., the entity whose property is being manipulated by an Actuation or ActuationCollection, or whose property is being estimated by an Observation or ObservationCollection, or which is being sampled or transformed by an act of Sampling or SamplingCollection, or which is the target of Executions planned as part of a Deployment.

Note

The relationship between sosa:FeatureOfInterest, and types or classes defined in a domain model is explained below in Domain types and FeatureOfInterest

Note

A Feature of Interest may have a geographic location. See Location and Geometry for patterns to describe this.

Example
When measuring the height of a tree, the height is the sosa:observedProperty, 20m is the result of the sosa:Observation, and the specific tree is the sosa:FeatureOfInterest.

A specified window is a sosa:FeatureOfInterest for an automatic window control sosa:Actuation.
5.3.2.2.2 sosa:Property

IRI: http://www.w3.org/ns/sosa/Property

an OWL Class

Note

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.

Note

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.

Example
Cars (a feature type) have a property "colour"
Windows have a property "open state".
5.3.2.2.3 sosa:forProperty

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

Example
from a Sensor to the properties it can observe;
from a Actuator to the properties it can act on;
from a Procedure to the properties it can observe or act on.
Domain Includes
sosa:Procedure, sosa:System
Range Includes
sosa:Property
Inverse property of
sosa:propertyFor
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.2.2.4 sosa:hasProperty

IRI: http://www.w3.org/ns/sosa/hasProperty

an OWL Object Property

has property — relation from an entity to a Property of that entity

Domain Includes
sosa:FeatureOfInterest
Range Includes
sosa:Property
Inverse property of
sosa:isPropertyOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.2.2.5 sosa:isFeatureOfInterestOf

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 that FeatureOfInterest

i.e., to an Actuation or ActuationCollection acting on it, to an Observation or ObservationCollection about it, to an act of Sampling or SamplingCollection that sampled it, or to a Deployment for which it is the target.

Domain Includes
sosa:FeatureOfInterest
Range Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:hasFeatureOfInterest
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.2.2.6 sosa:isPropertyOf

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

Domain Includes
sosa:Property
Range Includes
sosa:FeatureOfInterest
Inverse property of
sosa:hasProperty
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.2.2.7 sosa:isUltimateFeatureOfInterestOf

IRI: http://www.w3.org/ns/sosa/isUltimateFeatureOfInterestOf

an OWL Object Property

is ultimate feature of interest of — relation from an ultimate FeatureOfInterest to an Execution, ExecutionCollection, or Deployment, for which that FeatureOfInterest is the ultimate target

Domain Includes
sosa:FeatureOfInterest
Range Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:hasUltimateFeatureOfInterest
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.2.2.8 sosa:propertyFor

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 that Property

Domain Includes
sosa:Property
Range Includes
sosa:Procedure, sosa:System
Inverse property of
sosa:forProperty
is Defined By
http://www.w3.org/ns/sosa/common/

5.3.3 Procedures

5.3.3.1 Overview

This section is non-normative.

Figure 13 provides an overview of the classes and properties related to modeling Procedures.

Figure 13 Classes and relationships related to procedures
Explanation of the notation used in class diagrams.
5.3.3.2 Specification

This section introduces the following classes and properties:

5.3.3.2.1 sosa:Procedure

IRI: http://www.w3.org/ns/sosa/Procedure

an OWL Class

Procedure — workflow, protocol, plan, algorithm, program, or computational method specifying how to make a 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.

Note

A specific model for the description of execution Procedures is outside the scope of the SSN Ontology.

Example
The measured wind speed differs depending on the height of the Sensor above the surface, due to friction. For this reason, procedures for measuring wind speed define a standard height for anemometers above ground, typically 10m for meteorological measures and 2m in Agrometeorology. This definition of height, Sensor placement, etc are defined by the Procedure.
Scope Note
Procedure generalizes the ActuatingProcedure, ObservingProcedure, and SamplingProcedure classes. It is included in the ontology to support the definition of a common pattern for executions and their properties.
5.3.3.2.2 sosa:hasInput

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

Note 1
This property will typically describe the type of the inputs required to execute the Procedure.
Note 2
An input might be a calibration or conditioning parameter, or the output of a previous procedure within an extended processing chain.
Domain Includes
sosa:Procedure
Inverse property of
sosa:inputFor
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.3 sosa:hasOutput

IRI: http://www.w3.org/ns/sosa/hasOutput

an OWL Object Property

has Output — relation from a Procedure to an output of its execution

Note
This property will typically describe the type of the result from executing the Procedure.
Domain Includes
sosa:Procedure
Inverse property of
sosa:outputFor
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.4 sosa:hasProcedure

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/hasProcedure

an OWL Object Property

Warning

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 act on or observe that Property

Subproperty of
sosa:propertyFor
Domain Includes
sosa:Property
Range Includes
sosa:Procedure
Inverse property of
sosa:isProcedureFor
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.5 sosa:implementedBy

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 the Procedure

Domain Includes
sosa:Procedure
Range Includes
sosa:System
Inverse property of
sosa:implements
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.6 sosa:inputFor

IRI: http://www.w3.org/ns/sosa/inputFor

an OWL Object Property

input for — relation from an input to a Procedure that uses it in an Execution

Range Includes
sosa:Procedure
Inverse property of
sosa:hasInput
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.7 sosa:isProcedureFor

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/isProcedureFor

an OWL Object Property

Warning

isProcedureFor added in the 2023 Edition. This term is non-normative, pending further implementation experience

is Procedure for — relation from a Procedure to a Property that it can observe or act on

Subproperty of
sosa:forProperty
Domain Includes
sosa:Procedure
Range Includes
sosa:Property
Inverse property of
sosa:hasProcedure
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.8 sosa:outputFor

IRI: http://www.w3.org/ns/sosa/outputFor

an OWL Object Property

output for — relation from an output to a Procedure that generates that output in an Execution

Range Includes
sosa:Procedure
Inverse property of
sosa:hasOutput
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.3.2.9 sosa:usedForExecution

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 that Procedure

Domain Includes
sosa:Procedure
Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:usedProcedure
is Defined By
http://www.w3.org/ns/sosa/common/

5.3.4 Execution of Procedures

5.3.4.1 Overview

This section is non-normative.

Figure 14 provides an overview of the classes and properties related to modeling Execution of Procedures.

Figure 14 Classes and relationships related to execution of procedures. Note that for each specialized (concrete) Execution type (i.e., Actuation, Observation, Sampling), the matching specialized System and Procedure type shall be used (i.e., Actuator and ActuatingProcedure, Sensor and ObservingProcedure, Sampler and SamplingProcedure, respectively).
Explanation of the notation used in class diagrams.
5.3.4.2 Specification

This section introduces the following classes and properties:

5.3.4.2.1 sosa:Execution

IRI: http://www.w3.org/ns/sosa/Execution

an OWL Class

Execution — act of carrying out a Procedure using a System

Note

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.

Scope note
Execution generalizes the Actuation, Observation, and Sampling classes. It is included in the ontology to support the definition of a common pattern for executions and their properties.

Execution is considered to be abstract. Individual Executions SHOULD be typed with one of the (concrete) subclasses of Execution.
5.3.4.2.2 sosa:ExecutionCollection

IRI: http://www.w3.org/ns/sosa/ExecutionCollection

an OWL Class

Execution Collection — set of one or more Executions or ExecutionCollections; collections may be nested

All Execution properties may appear in a 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:

  1. Where an individual ExecutionCollection omits a property, a member Execution (direct or transitive) MAY have any value for that property.
  2. Where an individual ExecutionCollection has a single value for a property, each member Execution (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 Execution or ExecutionCollection.
  3. Where an individual ExecutionCollection has more than one value for a property, each member Execution (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
  4. Where an individual ExecutionCollection has a value for a property that is a range or interval, each member Execution (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
  5. Where an individual ExecutionCollection has more than one value for a property that is a range or interval, each member Execution (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.

The members of a collection (set) do not necessarily share a common value for any property.

Note

Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.

Scope note
ExecutionCollection generalizes the ActuationCollection, ObservationCollection, and SamplingCollection classes. It is included in the ontology to support the definition of a common pattern for executions and their properties.

ExecutionCollection is considered to be abstract. Individual execution collections SHOULD be typed with one of the (concrete) subclasses of ExecutionCollection.
5.3.4.2.3 sosa:endTime

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/endTime

an OWL Datatype Property

Warning

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.

Example
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
Domain Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.4 sosa:hasFeatureOfInterest

IRI: http://www.w3.org/ns/sosa/hasFeatureOfInterest

an OWL Object Property

has feature of interest — relation from an Execution or Deployment to its target entity

i.e., from an Actuation or ActuationCollection to the entity whose property was modified; from an Observation or ObservationCollection to the entity whose quality was observed; from an act of Sampling or SamplingCollection to the entity that was sampled; or from a Deployment to its target

Example
In a Observation of the weight of a person, the FeatureOfInterest is the person, and the observedProperty is its weight.
Note
This is the proximate feature of interest. It may be a proxy entity such as a sample of the ultimate feature of interest. Use sosa:hasUltimateFeatureOfInterest if the intention is to link to the ultimate feature of interest.
Domain Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
Range Includes
sosa:FeatureOfInterest
Inverse property of
sosa:isFeatureOfInterestOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.5 sosa:hasInputValue

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/hasInputValue

an OWL Object Property

Warning

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

Scope note
The input might be a calibration or conditioning parameter, or the output of a previous procedure within an extended processing chain.
Note
The input value MUST be consistent with a hasInput definition from the corresponding Procedure
Domain Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:inputValueForExecution
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.6 sosa:hasResult

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.

Note

The result of an actuation or observation may be a quantity. See Quantity Values and Units of Measure for patterns to describe this.

Note

The result of an observation may be a geometry. See Location and Geometry for patterns to describe this.

Note
The result value MUST be consistent with the hasOutput definition from the corresponding Procedure
is
Functional
Domain Includes
sosa:Execution, sosa:ExecutionCollection
Range Includes
Any object,
sosa:Sample
Inverse property of
sosa:isResultOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.7 sosa:hasSimpleResult

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.

Note

The result of an actuation or observation may be a quantity. See Quantity Values and Units of Measure for patterns to describe this.

Note

The result of an actuation or observation may be a geometry. See Location and Geometry for patterns to describe this.

Warning

Where a complex value is encoded as a literal, the processing environment must be configured to support the specific literal format. For example, geometries encoded as [GeoSPARQL] literals, or quantities encoded as [CDT] literals, should only be used in cases where such a configuration is available, or where the value is to be passed through unchanged.

Note
This DatatypeProperty provides an alternative to hasResult, to be used only if the execution result can be expressed as a Literal
Example
"89"^^xsd:integer
"true"^^xsd:boolean
"23.5 Cel"^^cdt:ucum
"Point (145.042316 -37.919134)"^^geo:wktLiteral
is
Functional
Domain Includes
sosa:Execution, sosa:ExecutionCollection
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.8 sosa:hasUltimateFeatureOfInterest

IRI: http://www.w3.org/ns/sosa/hasUltimateFeatureOfInterest

an OWL Object Property

has ultimate feature of interest — relation from a Deployment or Execution to its ultimate target entity

i.e., from an Actuation or ActuationCollection to the ultimate entity whose property was modified; from an Observation or ObservationCollection to the ultimate entity whose property was observed; from an act of Sampling or SamplingCollection to the ultimate entity that was sampled; or from a Deployment to its ultimate target

Note
This is useful when the proximate feature of interest is a sample of the ultimate feature of interest, directly or transitively.
Domain Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
Range Includes
sosa:FeatureOfInterest
Inverse property of
sosa:isFeatureOfInterestOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.9 sosa:inputValueForExecution

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/inputValueForExecution

an OWL Object Property

Warning

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 the value

Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:hasInputValue
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.10 sosa:isResultOf

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 that result

Domain Includes
sosa:Sample
Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:hasResult
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.11 sosa:madeBySystem

IRI: http://www.w3.org/ns/sosa/madeBySystem

an OWL Object Property

made by system — relation from an Execution to the System that made that Execution

Scope note
madeBySystem generalizes the sosa:madeByActuator, sosa:madeBySensor, and sosa:madeBySampler properties. It is included in the ontology to support the definition of a common pattern for executions and their properties.

madeBySystem is considered to be abstract. Applications SHOULD use concrete subproperties of madeBySystem.
Domain Includes
sosa:Execution, sosa:ExecutionCollection
Range Includes
sosa:System
Inverse property of
sosa:madeExecution
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.12 sosa:phenomenonOccurred

IRI: http://www.w3.org/ns/sosa/phenomenonOccurred

an OWL Object Property

phenomenon occurred — result of an Execution that this time applies to

Domain Includes
time:TemporalEntity
Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:phenomenonTime
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.13 sosa:phenomenonTime

IRI: http://www.w3.org/ns/sosa/phenomenonTime

an OWL Object Property

phenomenon time — time that the result of an Execution applies to the target entity

This 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.

Note

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.

Example
<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 ;
  ] ;
] ;
Domain Includes
sosa:Execution, sosa:ExecutionCollection
Range Includes
time:TemporalEntity
Inverse property of
sosa:phenomenonOccurred
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.14 sosa:resultTime

IRI: http://www.w3.org/ns/sosa/resultTime

an OWL Datatype Property

result time — instant of time when the result of the Execution became available

The value would usually be encoded using xsd:dateTime, xsd:date, xsd:gYearMonth, and/or xsd:gYear.

Note

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.

Example
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
Domain Includes
sosa:Execution, sosa:ExecutionCollection
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.15 sosa:startTime

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/startTime

an OWL Datatype Property

Warning

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.

Example
"2024-01-23T19:26:00+11:00"^^xsd:dateTime
"2024-01-23"^^xsd:date
"2024-01"^^xsd:gMonth
"2024"^^xsd:gYear
Domain Includes
sosa:Deployment, sosa:Execution, sosa:ExecutionCollection
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.4.2.16 sosa:usedProcedure

IRI: http://www.w3.org/ns/sosa/usedProcedure

an OWL Object Property

used procedure — relation from an Execution or ExecutionCollection to the Procedure used

Domain Includes
sosa:Execution, sosa:ExecutionCollection
Range Includes
sosa:Procedure
Inverse property of
sosa:usedForExecution
is Defined By
http://www.w3.org/ns/sosa/common/

5.3.5 Systems and their Deployment

5.3.5.1 Overview

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.

Figure 15 Classes and relationships related to systems and deployments
Explanation of the notation used in class diagrams.

A sosa:Deployment is an arrangement of Assets (typically 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.

A sosa:Asset is a resource involved in a deployment, such as a system or platform.

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 subsystems.

A sosa:Platform hosts one or more systems in the context of a deployment. Stationary platforms include stations, or fixtures. Mobile platforms include vehicles, watercraft, aircraft, satellites, mobile phones, etc.

5.3.5.2 Specification

This section introduces the following classes and properties:

5.3.5.2.1 sosa:Asset

IRI: http://www.w3.org/ns/sosa/Asset

an OWL Class

Asset — resource involved in a Deployment.

Scope note
Asset generalizes the System and Platform classes, or other resource types that are relevant to deployments. It is included in the ontology to support the definition of a common pattern for deployments.

Asset is considered to be abstract. Individual assets SHOULD be typed with one of the (concrete) subclasses of Asset.
5.3.5.2.2 sosa:Deployment

IRI: http://www.w3.org/ns/sosa/Deployment

an OWL Class

Deployment — arrangement of one or more Assets to execute Procedures with respect to designated features of interest.

Note

A Deployment may have a geographic location. See Location and Geometry for patterns to describe this.

Example
a temperature Sensor deployed on a wall
a network of Sensors deployed for an Observation campaign.
Note
A sosa:Deployment will usually be for a specified time interval. It MAY involve sosa:Platforms, or sosa:Systems, or both. A sosa:Deployment can be used quite flexibly to describe the use of systems, and platforms that host systems, with respect to a feature of interest.
5.3.5.2.3 sosa:Platform

IRI: http://www.w3.org/ns/sosa/Platform

an OWL Class

Platform — An Asset that hosts other Assets, particularly Systems (often Sensors), and other Platforms.

Note

A Platform may have a geographic location. See Location and Geometry for patterns to describe this.

Subclass of
sosa:Asset
Scope note
The INSPIRE 'Environmental Monitoring Facility' may be implemented using SOSA by the OWL/RDFS class 'Platform'.
Example
A post, tree, buoy, vehicle, ship, aircraft, satellite, mobile phone, human, or animal may act as Platforms for (technical or biological) Sensors or Actuators.
An environmental monitoring facility.
Restrictions in SSN
sosa:hosts ONLY sosa:Asset
sosa:inDeployment ONLY sosa:Deployment
5.3.5.2.4 sosa:System

IRI: http://www.w3.org/ns/sosa/System

an OWL Class

System — An Asset 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 subsystems, which are other systems.

Note

See Systems Types and Individuals for guidance on describing types vs. individuals.

Note

A System may have a geographic location. See Location and Geometry for patterns to describe this.

Subclass of
sosa:Asset
Scope note 1
System generalizes the Actuator, Sensor, and Sampler classes. It is included in the ontology to support the definition of a common pattern for executions and their properties.

System is considered to be abstract. Individual systems SHOULD be typed with one of the (concrete) subclasses of System.
Scope note 2
Specific system types may be implemented as subclasses of this class or its subclasses. Their descriptions may capture the properties and characteristics of a whole class of systems, corresponding with the information typically found in a datasheet. Individual system instances are members of this class or its subclasses.
Scope note 3
The association of a System (Actuator, Sensor, or Sampler) with a FeatureOfInterest is usually in the context of an Execution or a Deployment.
A sosa:System can be hosted by a sosa:Platform.
A sosa:System can be deployed for a specified time interval as part of a sosa:Deployment.
5.3.5.2.5 sosa:deployedAsset

IRI: http://www.w3.org/ns/sosa/deployedAsset

an OWL Object Property

deployed asset — relation from a Deployment to an Asset (System or Platform).

Domain Includes
sosa:Deployment
Range Includes
sosa:Asset, sosa:Platform, sosa:System
Inverse property of
sosa:hasDeployment
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.6 sosa:deployedOnPlatform

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

Subproperty of
sosa:deployedAsset
Domain Includes
sosa:Deployment
Range Includes
sosa:Platform
Inverse property of
sosa:inDeployment
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.7 sosa:deployedSystem

IRI: http://www.w3.org/ns/sosa/deployedSystem

an OWL Object Property

deployed system — relation from a Deployment to a deployed System

Subproperty of
sosa:deployedAsset
Domain Includes
sosa:Deployment
Range Includes
sosa:System
Inverse property of
sosa:systemDeployment
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.8 sosa:hasDeployment

IRI: http://www.w3.org/ns/sosa/hasDeployment

an OWL Object Property

has deployment — relation from an Asset (System or Platform) to a Deployment

Domain Includes
sosa:Asset, sosa:Platform, sosa:System
Range Includes
sosa:Deployment
Inverse property of
sosa:deployedAsset
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.9 sosa:hasSubSystem

IRI: http://www.w3.org/ns/sosa/hasSubSystem

an OWL Object Property

Note

See Complex devices for guidance on describing complex systems.

has subsystem — relation from a System to its component parts

Domain Includes
sosa:System
Range Includes
sosa:System
Inverse property of
sosa:isSubSystemOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.10 sosa:hosts

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 that Platform

Domain Includes
sosa:Platform
Inverse property of
sosa:isHostedBy
Super property of chain
sosa:inDeployment o sosa:deployedSystem
5.3.5.2.11 sosa:implements

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

Domain Includes
sosa:System
Range Includes
sosa:Procedure
Inverse property of
sosa:implementedBy
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.12 sosa:inDeployment

IRI: http://www.w3.org/ns/sosa/inDeployment

an OWL Object Property

in deployment — relation from a Platform to a Deployment using that Platform

Example
For example, a relation between a buoy and a Deployment of several Sensors.
Subproperty of
sosa:hasDeployment
Domain Includes
sosa:Platform
Range Includes
sosa:Deployment
Inverse property of
sosa:deployedOnPlatform
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.13 sosa:isHostedBy

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

Domain Includes
sosa:Asset, sosa:Platform, sosa:System
Range Includes
sosa:Platform
Inverse property of
sosa:hosts
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.14 sosa:isSubSystemOf

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

Domain Includes
sosa:System
Range Includes
sosa:System
Inverse property of
sosa:hasSubSystem
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.15 sosa:madeExecution

IRI: http://www.w3.org/ns/sosa/madeExecution

an OWL Object Property

madeExecution — relation from a System to an Execution or ExecutionCollection that it has made

Scope note
madeExecution generalizes the sosa:madeActuation, sosa:madeObservation, and sosa:madeSampling properties. It is included in the ontology to support the definition of a common pattern for executions and their properties.

madeExecution is considered to be abstract. Applications SHOULD use concrete subproperties of madeExecution.
Domain Includes
sosa:System
Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:madeBySystem
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.5.2.16 sosa:systemDeployment

IRI: http://www.w3.org/ns/sosa/systemDeployment

an OWL Object Property

system deployment — relation from a System to a Deployment of that System

Domain Includes
sosa:System
Range Includes
sosa:Deployment
Inverse property of
sosa:deployedSystem
is Defined By
http://www.w3.org/ns/sosa/common/

5.3.6 Collections

Note

Collections added in the 2023 Edition

5.3.6.1 Requirement for collections

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:

  1. a property for membership of a collection, and its inverse, described in this section
  2. the generic class ExecutionCollection and specializations for actuations, observations and samplings
  3. the class SampleCollection

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.

Note

Examples of Collections conforming to the rules are provided in Collections and their members' property values.

5.3.6.2 Overview

This section is non-normative.

Figure 16 provides an overview of the classes and properties that are specifically related to describing collections of executions or of samples.

Figure 16 Classes and relationships related to collections of executions or samples
See explanation of the notation used in class diagrams.
5.3.6.3 Specification

This section introduces the following properties:

5.3.6.3.1 sosa:hasMember

IRI: http://www.w3.org/ns/sosa/hasMember

an OWL Object Property

has member of collection — link from a Collection to an Execution or Sample or Collection of these that is part of that Collection

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 hasMember property. OWL or SHACL constraints may limit the range depending on the context of different collection types.

Note

See Time series and Homogeneous observation collection for examples of use of hasMember.

Domain Includes
sosa:ExecutionCollection, sosa:SampleCollection
Range Includes
sosa:Execution, sosa:Sample, sosa:ExecutionCollection, sosa:SampleCollection
Inverse property of
sosa:isMemberOf
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.6.3.2 sosa:isMemberOf

IRI: http://www.w3.org/ns/sosa/isMemberOf

an OWL Object Property

is member of collection — link from an Execution or Sample or Collection of these, to a collection which that Execution or Sample or Collection 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 isMemberOf property. OWL or SHACL constraints may limit the range depending on the context of different collection types.

Domain Includes
sosa:Execution, sosa:Sample, sosa:ExecutionCollection, sosa:SampleCollection
Range Includes
sosa:ExecutionCollection, sosa:SampleCollection
Inverse property of
sosa:hasMember
is Defined By
http://www.w3.org/ns/sosa/common/
5.3.6.4 Other collections

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.

Note

The PROV Ontology provides a generic framework for describing and relating Activities and Entities [prov-o]. An alignment of SSN with 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.

5.4 Actuations

5.4.1 Overview

This section is non-normative.

Figure 17 provides an overview of the core classes and properties that are specifically related to modeling Actuations.

Figure 17 Classes and relationships involved in Actuation
Explanation of the notation used in class diagrams.

5.4.2 Specification

This section introduces the following classes and properties:

5.4.2.1 sosa:ActuatingProcedure

IRI: http://www.w3.org/ns/sosa/ActuatingProcedure

an OWL Class

Warning

ActuatingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience

Actuating Procedure — workflow, protocol, plan, algorithm, program, 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.

Subclass of
sosa:Procedure
Restrictions in SSN
sosa:implementedBy ONLY sosa:Actuator
5.4.2.2 sosa:Actuation

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 a 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.

Note

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.

Example
The activity of automatically closing a window if the temperature in a room drops below 20 degrees Celsius. The activity is the Actuation and the device that closes the window is the Actuator. The Procedure is the rule, plan, or specification that may define the condition that triggers the Actuation (a drop in temperature).
Subclass of
sosa:Execution
5.4.2.3 sosa:ActuationCollection

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/ActuationCollection

an OWL Class

Warning

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 a sosa:ActuationCollection, including: sosa:hasFeatureOfInterest, sosa:usedProcedure, sosa:madeByActuator, sosa:actsOnProperty, sosa:endTime, sosa:hasResult, sosa:hasSimpleResult. If they are present, the values 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:

  1. Where an individual ActuationCollection omits a property, a member Actuation (direct or transitive) MAY have any value for that property.
  2. Where an individual ActuationCollection has a single value for a property, each member Actuation (direct or transitive) MUST have that same value for that property; i.e., the collection is homogeneous in that property. That property MAY then be omitted in any member Actuation or ActuationCollection.
  3. Where an individual ActuationCollection has more than one value for a property, each member Actuation (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
  4. Where an individual ActuationCollection has a value for a property that is a range or interval, each member Actuation (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
  5. Where an individual ActuationCollection has more than one value for a property that is a range or interval, each member Actuation (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.

The members of a collection do not necessarily share a common value for any property.

Note

Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.

5.4.2.4 sosa:Actuator

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 a software-based system, including systems performing simulations.

Note

An Actuator may have a geographic location. See Location and Geometry for patterns to describe this.

Note

Specific actuator types may be implemented as subclasses of this class or its subclasses. 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 datasheet.
Individual actuator instances are members of this class or its subclasses.
See Systems Types and Individuals for patterns to describe this.

Example
A window actuator for automatic window control, i.e., opening or closing the window.
Subclass of
sosa:System
5.4.2.5 sosa:actsOn

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 that Actuator

Subproperty of
sosa:forProperty
Domain Includes
sosa:Actuator
Range Includes
sosa:Property
Inverse property of
sosa:isActedOnBy
is Defined By
http://www.w3.org/ns/sosa/actuation/
5.4.2.6 sosa:actsOnProperty

IRI: http://www.w3.org/ns/sosa/actsOnProperty

an OWL Object Property

Note

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

Example
In the activity (Actuation) of automatically closing a window if the temperature in a room drops below 20 degrees Celsius, the property upon which the Actuator acts is the state of the window as it changes from being open to being closed.
Domain Includes
sosa:Actuation, sosa:ActuationCollection
Range Includes
sosa:Property
Inverse property of
sosa:wasActedOnBy
is Defined By
http://www.w3.org/ns/sosa/actuation/
5.4.2.7 sosa:isActedOnBy

IRI: http://www.w3.org/ns/sosa/isActedOnBy

an OWL Object Property

Note

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

Domain Includes
sosa:Property
Range Includes
sosa:Actuator
Inverse property of
sosa:actsOn
is Defined By
http://www.w3.org/ns/sosa/actuation/
5.4.2.8 sosa:madeActuation

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

Subproperty of
sosa:madeExecution
Domain Includes
sosa:Actuator
Range Includes
sosa:Actuation, sosa:ActuationCollection
Inverse property of
sosa:madeByActuator
is Defined By
http://www.w3.org/ns/sosa/actuation/
5.4.2.9 sosa:madeByActuator

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 that Actuation or ActuationCollection

Subproperty of
sosa:madeBySystem
Domain Includes
sosa:Actuation, sosa:ActuationCollection
Range Includes
sosa:Actuator
Inverse property of
sosa:madeActuation
is Defined By
http://www.w3.org/ns/sosa/actuation/
5.4.2.10 sosa:wasActedOnBy

IRI: http://www.w3.org/ns/sosa/wasActedOnBy

an OWL Object Property

was acted on by — relation from a Property to an Actuation that changed its state

Domain Includes
sosa:Property
Range Includes
sosa:Actuation, sosa:ActuationCollection
Inverse property of
sosa:actsOnProperty
is Defined By
http://www.w3.org/ns/sosa/actuation/

5.5 Observations

5.5.1 Overview

This section is non-normative.

Figure 18 provides an overview of the core classes and properties that are specifically related to modeling Observations.

Figure 18 Classes and relationships involved in Observation.
The result of an observation should be an information item of a type appropriate for the observed property (e.g., a number, quantity, category, image, vector, array, geometry etc.).
Explanation of the notation used in class diagrams.

5.5.2 Specification

This section introduces the following classes and properties:

5.5.2.1 sosa:Observation

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.

Note

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.

Examples
The activity of
- estimating the magnitude or intensity of an earthquake
- measuring the height of a tree
- determining the color of a leaf
- measuring the CO2 concentration in a gas
- finding the location of a car
- measuring the temperature of a room
- capturing an image of a scene
Subclass of
sosa:Execution
5.5.2.2 sosa:ObservationCollection

IRI: http://www.w3.org/ns/sosa/ObservationCollection

an OWL Class

Observation Collection — set of Observations or ObservationCollections; collections may be nested

Note

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 a 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 values 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:

  1. Where an individual ObservationCollection omits a property, a member Observation (direct or transitive) MAY have any value for that property.
  2. Where an individual ObservationCollection has a single value for a property, each member Observation (direct or transitive) MUST have that same value for that property; i.e., the collection is homogeneous in that property. That property MAY then be omitted in any member Observation or ObservationCollection.
  3. Where an individual ObservationCollection has more than one value for a property, each member Observation (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
  4. Where an individual ObservationCollection has a value for a property that is a range or interval, each member Observation (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
  5. Where an individual ObservationCollection has more than one value for a property that is a range or interval, each member Observation (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.

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.

Note

Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.

5.5.2.3 sosa:ObservingProcedure

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/ObservingProcedure

an OWL Class

Warning

ObservingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience

Observing Procedure — workflow, protocol, plan, algorithm, program, 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.

Subclass of
sosa:Procedure
Restrictions in SSN
sosa:implementedBy ONLY sosa:Sensor
Examples
A workflow, protocol, plan, algorithm, program, or computational method specifying how to make an observation; the description of the process used by an observer. This could be a chemical analysis method, a protocol for measuring an object, or even a checklist used by a human observer during a biodiversity campaign. The Procedure could further describe the algorithms behind simulators or models used to generate a result from other inputs.
Note
[ISO 19156:2023] An ObservingProcedure shall be defined as the description of steps performed in order to determine the value of an observableProperty by an Observer.
5.5.2.4 sosa:Sensor

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 a software-based system (including systems performing simulations).

A Sensor responds to a Stimulus, e.g., a change in the environment, or input data composed from the results of prior Observations.

Note

A Sensor may have a geographic location. See Location and Geometry for patterns to describe this.

Note

Specific sensor types may be implemented as subclasses of this class or its subclasses. 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 datasheet.
Individual sensor instances are members of this class or its subclasses.
See Systems Types and Individuals for patterns to describe this.

Note
The UML class 'Observer' from ISO 19156:2023 is implemented in SOSA by the OWL/RDFS class 'Sensor'. The class name 'Sensor' is preferred for backward compatibility with existing SOSA deployments.
Examples
Accelerometers, gyroscopes, barometers, magnetometers, etc are Sensors that are typically mounted on a modern smart phone (which acts as Platform). Other examples of Sensors include the human eyes.
Subclass of
sosa:System
5.5.2.5 sosa:Stimulus

IRI: http://www.w3.org/ns/sosa/Stimulus

an OWL Class

Stimulus — event in the real world that triggers a Sensor

The Properties associated with the Stimulus may differ from those eventually observed. It is the event, not the object, that triggers the Sensor.

5.5.2.6 sosa:detects

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.

Domain Includes
sosa:Sensor
Range Includes
sosa:Stimulus
Inverse property of
sosa:isDetectedBy
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.7 sosa:hasProxy

IRI: http://www.w3.org/ns/sosa/hasProxy

an OWL Object Property

has proxy — relation from a Property to a Stimulus that serves as its proxy

Examples
The expansion of mercury is a Stimulus that serves as a proxy for some temperature Property.
An increase or decrease in the velocity of spinning cups on a wind Sensor is serving as a proxy for the wind speed.
Domain Includes
sosa:Property
Range Includes
sosa:Stimulus
Inverse property of
sosa:isProxyFor
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.8 sosa:isDetectedBy

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 that Stimulus

The Stimulus itself will be serving as a proxy (sosa:isProxyFor) for some Property.

Domain Includes
sosa:Stimulus
Range Includes
sosa:Sensor
Inverse property of
sosa:detects
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.9 sosa:isObservedBy

IRI: http://www.w3.org/ns/sosa/isObservedBy

an OWL Object Property

Note

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 that Property

Domain Includes
sosa:Property
Range Includes
sosa:Sensor
Inverse property of
sosa:observes
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.10 sosa:isProxyFor

IRI: http://www.w3.org/ns/sosa/isProxyFor

an OWL Object Property

Note

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

Example
For example, the expansion of quicksilver is a Stimulus that serves as a proxy for some temperature Property. An increase or decrease in the velocity of spinning cups on a wind Sensor is serving as a proxy for the wind speed.
Domain Includes
sosa:Stimulus
Range Includes
sosa:Property
Inverse property of
sosa:hasProxy
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.11 sosa:madeBySensor

IRI: http://www.w3.org/ns/sosa/madeBySensor

an OWL Object Property

made by Sensor — relation from an Observation or ObservationCollection to the Sensor which made that Observation or ObservationCollection

Subproperty of
sosa:madeBySystem
Domain Includes
sosa:Observation, sosa:ObservationCollection
Range Includes
sosa:Sensor
Inverse property of
sosa:madeObservation
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.12 sosa:madeObservation

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

Subproperty of
sosa:madeExecution
Domain Includes
sosa:Sensor
Range Includes
sosa:Observation, sosa:ObservationCollection
Inverse property of
sosa:madeBySensor
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.13 sosa:observationRelatedTo

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/observationRelatedTo

an OWL Object Property

Warning

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

Note

This general relationship complements the specific predicates outbound from Observation. It is particularly useful to relate Observations (and collections) to other Executions (and collections)

Domain Includes
sosa:Observation, sosa:ObservationCollection
Range Includes
sosa:Execution, sosa:ExecutionCollection
Inverse property of
sosa:relatedObservation
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.14 sosa:observedProperty

IRI: http://www.w3.org/ns/sosa/observedProperty

an OWL Object Property

Note

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 observed in that Observation or ObservationCollection

Note

'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.

Domain Includes
sosa:Observation, sosa:ObservationCollection
Range Includes
sosa:Property
Inverse property of
sosa:wasObservedBy
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.15 sosa:observes

IRI: http://www.w3.org/ns/sosa/observes

an OWL Object Property

Note

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

Domain Includes
sosa:Sensor
Range Includes
sosa:Property
Inverse property of
sosa:isObservedBy
Subproperty of
sosa:forProperty
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.16 sosa:originated

IRI: http://www.w3.org/ns/sosa/originated

an OWL Object Property

originated — relation from a Stimulus to an Observation that was originated by that Stimulus

Domain Includes
sosa:Stimulus
Range Includes
sosa:Observation
Inverse property of
sosa:wasOriginatedBy
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.17 sosa:qualityOf

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/qualityOf

an OWL Object Property

Warning

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 which that quality description relates to

Range Includes
sosa:Observation, sosa:ObservationCollection
Inverse property of
sosa:resultQuality
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.18 sosa:relatedObservation

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/relatedObservation

an OWL Object Property

Warning

relatedObservation added in 2023 Edition. This term is non-normative, pending further implementation experience

related observation — relation from an Execution or ExecutionCollection to an Observation or ObservationCollection

Note

This general relationship complements the specific predicates inbound to Observation. It is particularly useful to relate Observations (and collections) to other Executions (and collections)

Domain Includes
sosa:Execution, sosa:ExecutionCollection
Range Includes
sosa:Observation, sosa:ObservationCollection
Inverse property of
sosa:observationRelatedTo
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.19 sosa:resultQuality

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/resultQuality

an OWL Object Property

Warning

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 that result

Note
This instance-specific description complements the description of the observation Procedure, which provides information concerning the quality of all observations using this procedure. Multiple measures can be provided.

The quality of a result can be assessed following the procedures in the ISO 19157 series [iso-19157-1].

dqv:hasQualityMeasurement from the Data Quality Vocabulary [vocab-dqv] is equivalent
Domain Includes
sosa:Observation, sosa:ObservationCollection
Inverse property of
sosa:qualityOf
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.20 sosa:wasObservedBy

IRI: http://www.w3.org/ns/sosa/wasObservedBy

an OWL Object Property

was observed by — relation from a Property to an Observation that observed that Property

Domain Includes
sosa:Property
Range Includes
sosa:Observation, sosa:ObservationCollection
Inverse property of
sosa:observedProperty
is Defined By
http://www.w3.org/ns/sosa/observation/
5.5.2.21 sosa:wasOriginatedBy

IRI: http://www.w3.org/ns/sosa/wasOriginatedBy

an OWL Object Property

was originated by — relation from an Observation to the Stimulus that originated that Observation

Domain Includes
sosa:Observation, sosa:ObservationCollection
Range Includes
sosa:Stimulus
Inverse property of
sosa:originated
is Defined By
http://www.w3.org/ns/sosa/observation/

5.6 Sampling

5.6.1 Overview

This section is non-normative.

Figure 19 provides an overview of the core classes and properties that are specifically related to modeling Samplings.

Figure 19 Classes and relationships involved in Sampling
Explanation of the notation used in class diagrams.

5.6.2 Specification

This section introduces the following classes and properties:

5.6.2.1 sosa:Sample

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:

Figure 20 Specialized sample types: MaterialSample, SpatialSample, StatisticalSample
Explanation of the notation used in class diagrams.
Note

A Sample may have a geographic location. See Location and Geometry for patterns to describe this.

Note

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.

Comment
Samples are typically subsets or extracts from an entity or feature. Every sample is expected to (eventually) be the feature of interest of an Observation.

Samples are used in situations where observations cannot be made directly on the ultimate feature of interest, either because the entire feature cannot be observed, or because it is more convenient to use a proxy. Samples are thus artifacts of an observational strategy, and have no significant function outside of their role in the observation process. The characteristics of the samples themselves are of little interest, except perhaps to the manager of a sampling campaign.

A Sample is intended to represent some FeatureOfInterest, so there is an expectation of at least one isSampleOf property. However, in some cases the identity, and even the exact type, of the sampled feature may not be known when observations are made using the sample.

Physical samples are sometimes known as 'specimens'. A transient sample, such as a ships-track or flight-line, might be identified and described, but is unlikely to be revisited exactly.
Examples
A 'station' is a spatial sample, in the form of an identifiable locality where a Sensor system or procedure may be deployed and an observation made. In the context of the observation model, it connotes the 'world in the vicinity of the station', so the observed properties relate to the physical medium at the station, and not to any physical artifact such as a mooring, buoy, benchmark, monument, well, etc.

A statistical sample is often designed to be characteristic of an entire population, so that Observations can be made regarding the sample that provide a good estimate of the properties of the population.
5.6.2.2 sosa:MaterialSample

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/MaterialSample

an OWL Class

Warning

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)

Subclass of
sosa:Sample
Examples
A piece of rock, a blood sample, a water sample
Note
MaterialSamples that are curated and preserved are sometimes known as 'specimens'.
MaterialSamples may be destroyed in connexion with the observation act or a subsequent preparation step.
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.3 sosa:SpatialSample

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/SpatialSample

an OWL Class

Warning

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.

Subclass of
sosa:Sample
Examples
borehole, interval, flightline, lidar cloud, map horizon, microscope slide, mine level, mine, observation well, profile, quadrat, scene, section, spot, station, swath, trajectory, traverse
Note
Depending on accessibility and on the nature of the expected property variation, a SpatialSample may extend in one, two or three spatial dimensions.
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.4 sosa:StatisticalSample

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/StatisticalSample

an OWL Class

Warning

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

Subclass of
sosa:Sample
Examples
The male or female subset of a population.
Note
StatisticalSamples usually apply to populations or other sets, of which a certain subset may be of specific interest.
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.5 sosa:SampleCollection

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/SampleCollection

an OWL Class

Warning

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:

  1. Where an individual SampleCollection omits a property, a member Sample (direct or transitive) MAY have any value for that property.
  2. Where an individual SampleCollection has a single value for a property, each ember Sample (direct or transitive) MUST have that same value for that property; i.e., the collection is homogeneous in that property. That property MAY be omitted in any member Sample or SampleCollection.
  3. Where an individual SampleCollection has more than one value for a property, each member Sample (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
  4. Where an individual SampleCollection has a value for a property that is a range or interval, each member Sample (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
  5. Where an individual SampleCollection has more than one value for a property that is a range or interval, each member Sample (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.

The members of a collection do not necessarily share a common value for any property.

Note

Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.

Note
The members of a collection do not necessarily share a common value for any property.
5.6.2.6 sosa:Sampler

IRI: http://www.w3.org/ns/sosa/Sampler

an OWL Class

Sampler — System that implements a SamplingProcedure to generate a Sample

Note

A Sampler may have a geographic location. See Location and Geometry for patterns to describe this.

Examples
A ball mill, diamond drill, hammer, hypodermic syringe and needle, image Sensor or a soil auger can all act as Samplers. Sometimes the distinction between the Sampler and the Sensor is not evident, if they are packaged as a unit.
Note
A Sampler need not be a physical device.
Subclass of
sosa:System
5.6.2.7 sosa:Sampling

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

Note

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.

Examples
Drawing blood from a patient
Drilling a core from an ice sheet
Digging a pit through a soil sequence
Dividing a field site into quadrants
Drilling an observation well
Establishing a station for environmental monitoring
Registering an image of the landscape
Sieving a powder to separate the subset finer than 100-mesh
Selecting a subset of a population
Splitting a piece of drill-core to create two new samples
Taking a diamond-drill core from a rock outcrop
Subclass of
sosa:Execution
5.6.2.8 sosa:SamplingCollection

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/SamplingCollection

an OWL Class

Warning

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:

  1. Where an individual SamplingCollection omits a property, a member Sampling (direct or transitive) MAY have any value for that property.
  2. Where an individual SamplingCollection has a single value for a property, each member Sampling (direct or transitive) MUST have that same value for that property; i.e., the collection is homogeneous in that property. That property MAY then be omitted in any member Sampling or SamplingCollection.
  3. Where an individual SamplingCollection has more than one value for a property, each member Sampling (direct or transitive) MUST have a value for that property that matches one of the values for the property in the collection.
  4. Where an individual SamplingCollection has a value for a property that is a range or interval, each member Sampling (direct or transitive) MUST have a value for that property that matches or falls within that range or interval.
  5. Where an individual SamplingCollection has more than one value for a property that is a range or interval, each member Sampling (direct or transitive) MUST have a value for that property that matches or falls within one of those ranges or intervals.

The members of a collection do not necessarily share a common value for any property.

Note

Examples of Collections conforming to the rules are provided in and Collections and their members' property values. These illustrate all the cases described above.

5.6.2.9 sosa:SamplingProcedure

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/SamplingProcedure

an OWL Class

Warning

SamplingProcedure added in the 2023 Edition This term is non-normative, pending further implementation experience

Sampling Procedure — workflow, protocol, plan, algorithm, program, 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.

Subclass of
sosa:Procedure
Restrictions in SSN
sosa:implementedBy ONLY sosa:Sampler
Examples
spatial distribution of locations where to collect a sample (e.g., river segment)
instrument (or mode of use thereof) required to collect a sample (e.g., fish net, electric stunner)
field work instructions (e.g., dig four boreholes in each cardinal direction 2 metre way from the centre of the site; collect soil material from the 15-30 cm depth and mix it in a single bag)
Note
[ISO 19156:2023] A SamplingProcedure shall be defined as the description of steps performed by a Sampler in order to extract a Sample from its sampledFeature in the frame of a Sampling.
5.6.2.10 sosa:featureHasUltimateSample

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/featureHasUltimateSample

an OWL Object Property

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

Note

Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.

Domain Includes
sosa:FeatureOfInterest
Range Includes
sosa:Sample, sosa:SampleCollection
Inverse property of
sosa:isSampleOfUltimateFOI
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.11 sosa:hasOriginalSample

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/hasOriginalSample

an OWL Object Property

Warning

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

Note

Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.

Domain Includes
sosa:Sample, sosa:SampleCollection
Range Includes
sosa:Sample
Inverse property of
sosa:isOriginalSampleOf
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.12 sosa:hasSample

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

Domain Includes
sosa:FeatureOfInterest
Range Includes
sosa:Sample
Inverse property of
sosa:isSampleOf
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.13 sosa:isOriginalSampleOf

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/isOriginalSampleOf

an OWL Object Property

Warning

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

Note

Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.

Domain Includes
sosa:Sample
Range Includes
sosa:Sample, sosa:SampleCollection
Inverse property of
sosa:hasOriginalSample
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.14 sosa:isResultOfMadeBySampler

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/isResultOfMadeBySampler

an OWL Object Property

Warning

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

Range Includes
sosa:Sampler
Inverse property of
sosa:madeSamplingHasResult
Super property of chain
sosa:isResultOf o sosa:madeBySampler
5.6.2.15 sosa:isResultOfUsedProcedure

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/isResultOfUsedProcedure

an OWL Object Property

Warning

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

Range Includes
sosa:SamplingProcedure
Inverse property of
sosa:usedForExecutionHasResult
Super property of chain
sosa:isResultOf o sosa:usedProcedure
5.6.2.16 sosa:isSampleOf

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

Note

Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.

Domain Includes
sosa:Sample, sosa:SampleCollection
Range Includes
sosa:FeatureOfInterest
Inverse property of
sosa:hasSample
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.17 sosa:isSampleOfUltimateFOI

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/isSampleOfUltimateFOI

an OWL Object Property

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

Note

Some examples of relationships between samples and features of interest within chains are illustrated in Sample chains.

Note

isSampleOfUltimateFOI renames the property that was called hasSampledFeature in Extensions to the Semantic Sensor Network Ontology [vocab-ssn-ext]

Domain Includes
sosa:Sample, sosa:SampleCollection
Range Includes
sosa:FeatureOfInterest
Inverse property of
sosa:featureHasUltimateSample
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.18 sosa:madeBySampler

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

Subproperty of
sosa:madeBySystem
Domain Includes
sosa:Sampling, sosa:SamplingCollection
Range Includes
sosa:Sampler
Inverse property of
sosa:madeSampling
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.19 sosa:madeSampling

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

Subproperty of
sosa:madeExecution
Domain Includes
sosa:Sampler
Range Includes
sosa:Sampling, sosa:SamplingCollection
Inverse property of
sosa:madeBySampler
is Defined By
http://www.w3.org/ns/sosa/sampling/
5.6.2.20 sosa:madeSamplingHasResult

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/madeSamplingHasResult

an OWL Object Property

Warning

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

Domain Includes
sosa:Sampler
Inverse property of
sosa:isResultOfMadeBySampler
Super property of chain
sosa:madeSampling o sosa:hasResult
5.6.2.21 sosa:usedForExecutionHasResult

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/usedForExecutionHasResult

an OWL Object Property

Warning

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

Domain Includes
sosa:SamplingProcedure
Inverse property of
sosa:isResultOfUsedProcedure
Super property of chain
sosa:usedForExecution o sosa:hasResult

6. SSN Extensions

This section provides the specifications for modules that extend the scope and capabilities of SSN.

6.1 OMS Extension Module

6.1.1 OMS Requirement

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.

Note

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 and its inverse ogc-ms:implementedBy link a SOSA term to the corresponding OMS class or property, 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 .
Note

The OMS Extension Module implements most, but not all, of the classes and properties defined in [OMS]. Furthermore, the axioms in this module do not capture the details of the ranges of all properties. Future editions of SSN may provide a more complete implementation.

6.1.2 OMS modules

6.1.2.1 SOSA-OMS

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 ontology IRI of the SOSA-OMS Alignment module is http://www.w3.org/ns/sosa/oms/
The version IRI of the SOSA-OMS Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/oms/

6.1.2.2 SSN-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 ontology IRI of the OMS Extension module is http://www.w3.org/ns/ssn/oms/
The version IRI of the OMS Extension module 2023 edition is http://www.w3.org/ns/ssn/2023/oms/

6.1.2.3 Namespaces

The following namespace prefixes are used in the RDF implementation of OMS:

sosa:
http://www.w3.org/ns/sosa/
sosa-oms:
http://www.w3.org/ns/sosa/oms/
ogc-ms:
http://www.opengis.net/def/ont/modspec/
obs-cpt:
http://www.opengis.net/spec/om/3.0/req/obs-cpt/
obs-core:
http://www.opengis.net/spec/om/3.0/req/obs-core/
obs-basic:
http://www.opengis.net/spec/om/3.0/req/obs-basic/
sam-cpt:
http://www.opengis.net/spec/om/3.0/req/sam-cpt/
sam-core:
http://www.opengis.net/spec/om/3.0/req/sam-core/
sam-basic:
http://www.opengis.net/spec/om/3.0/req/sam-basic/

6.1.3 New terms

A number of terms in OMS do not have matches in the SSN Ontology.

This section introduces the following classes and properties:

Warning

Terms in the sosa-oms: namespace were added in the 2023 edition. These are non-normative, pending further implementation experience.

6.1.3.1 sosa-oms:PreparationProcedure

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

Subclass of
sosa:Procedure
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.2 sosa-oms:PreparationStep

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

is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.3 sosa-oms:classification

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/classification

an OWL Object Property

classification — a criterion by which the subset was defined

Domain Includes
sosa:StatisticalSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.4 sosa-oms:hasPreparationStep

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/hasPreparationStep

an OWL Object Property

has preparation step — relation from a Sample to a PreparationStep used to prepare the Sample

Domain Includes
sosa:Sample
Range Includes
sosa-oms:PreparationStep
Inverse property of
sosa-oms:preparedSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.5 sosa-oms:horizontalPositionalAccuracy

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/horizontalPositionalAccuracy

an OWL Object Property

horizontal positional accuracy — positional accuracy of the horizontal component of the Geometry of the SpatialSample

Domain Includes
sosa:SpatialSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.6 sosa-oms:madeOnPlatform

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/madeOnPlatform

an OWL Object Property

made on platform — relation from an ObservationCollection to the associated Platform.

Domain Includes
sosa:ObservationCollection
Range Includes
sosa:Platform
6.1.3.7 sosa-oms:makesObservationCollection

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/makesObservationCollection

an OWL Object Property

makes observation collection — relation from a Platform to an ObservationCollection arising from a Deployment on the Platform

Note

In order to indicate potential Observations at a Platform, an empty ObservationCollection can be provided. This mimics the semantics of the OMS ObservingCapability class. The underlying property chain is represented in Figure 21.

Figure 21 osa-oms:makesObservationCollection and sosa-oms:madeOnPlatform property chains explained
Domain Includes
sosa:Platform
Inverse property of
sosa-oms:madeOnPlatform
6.1.3.8 sosa-oms:metadata

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

Domain Includes
sosa:FeatureOfInterest, sosa:Property, sosa:Observation, sosa:ObservationCollection, sosa:Sample, sosa:SampleCollection, sosa:Sampling, sosa-oms:PreparationStep, sosa:Procedure, sosa:Sensor, sosa:Platform, sosa:Deployment
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.9 sosa-oms:observationType

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.

Domain Includes
sosa:Observation
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.10 sosa-oms:parameter

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/parameter

an OWL Object Property

parameter — Arbitrary event-specific parameter relevant to the Sampling

Domain Includes
sosa:Sampling
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.11 sosa-oms:preparedSample

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

Domain Includes
sosa-oms:PreparationStep
Range Includes
sosa:Sample
Inverse property of
sosa-oms:hasPreparationStep
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.12 sosa-oms:processingDetails

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

Domain Includes
sosa-oms:PreparationStep
Range Includes
sosa-oms:PreparationProcedure
Inverse property of
sosa-oms:samplePreparationStep
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.13 sosa-oms:relatedSampling

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/relatedSampling

an OWL Object Property

related sampling — relation from a Sampling to another Sampling

Domain Includes
sosa:Sampling
Range Includes
sosa:Sampling
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.14 sosa-oms:samplePreparationStep

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 the PreparationProcedure

Domain Includes
sosa-oms:PreparationProcedure
Range Includes
sosa-oms:PreparationStep
Inverse property of
sosa-oms:processingDetails
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.15 sosa-oms:samplingLocation

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/samplingLocation

an OWL Object Property

sampling location — If location information pertaining to the Sampling is provided, the attribute samplingLocation:Geometry shall be used

Subproperty of
geosparql:hasGeometry
Domain Includes
sosa:Sampling
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.16 sosa-oms:shape

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/shape

an OWL Object Property

shape — the Geometry of the SpatialSample

Subproperty of
geosparql:hasGeometry
Domain Includes
sosa:SpatialSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.17 sosa-oms:size

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/size

an OWL Object Property

size — a physical extent of the MaterialSample

Subproperty of
qudt:quantity
Domain Includes
sosa:MaterialSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.18 sosa-oms:sourceLocation

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/sourceLocation

an OWL Object Property

source location — the location from where the MaterialSample was obtained

Subproperty of
geosparql:hasGeometry
Domain Includes
sosa:MaterialSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.19 sosa-oms:storageLocation

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/storageLocation

an OWL Object Property

storage location — the location of a MaterialSample

Domain Includes
sosa:MaterialSample
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.20 sosa-oms:time

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/time

an OWL Object Property

time — If information on the time of the Sampling is provided, the attribute time:TM_Object shall be used

Subproperty of
time:hasTime
Domain Includes
sosa:Sampling
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.21 sosa-oms:validTime

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.

Domain Includes
sosa:Observation, sosa:ObservationCollection, sosa:Sampling, sosa:SamplingCollection
Range Includes
time:Interval, dcterms:PeriodOfTime
is Defined By
http://www.w3.org/ns/sosa/oms/
6.1.3.22 sosa-oms:verticalPositionalAccuracy

This section is non-normative.

IRI: http://www.w3.org/ns/sosa/oms/verticalPositionalAccuracy

an OWL Object Property

vertical positional accuracy — positional accuracy of the vertical component of the Geometry of the SpatialSample.

Domain Includes
sosa:SpatialSample
is Defined By
http://www.w3.org/ns/sosa/oms/

6.1.4 Class Alignments — SOSA focus

The following classes from the SSN Ontology and this extension implement UML classes from OMS as indicated:

6.1.5 Class Alignments — OMS focus

The following UML classes in OMS are implemented by classes from the SSN Ontology and this extension as indicated:

6.1.6 Property Alignments — SOSA focus

The following properties from the SSN Ontology and this extension implement attributes and association roles from OMS as indicated:

6.1.7 Property Alignments — OMS focus

The following attributes and association roles from OMS are implemented by properties from the SSN Ontology and this extension as indicated:

6.2 Sample Relations Module

This section is non-normative.

6.2.1 Sample Relations requirement

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

The ontology IRI of the Sample-Relations module is http://www.w3.org/ns/sosa/sampling/
The version IRI of the Sample-Relations module 2023 edition is http://www.w3.org/ns/sosa/2023/sampling/

Figure 22 provides an overview on the classes and properties that are specifically related to modeling Sample relationships.

Figure 22 Model of sample relationships
In this diagram, unqualified names refer to classes and properties in the sosa-rel: namespace.
Explanation of the notation used in class diagrams.

6.2.2 Sample Relationships Specification

This section introduces the following classes and properties:

6.2.2.1 sosa-rel:RelationshipNature

IRI: http://www.w3.org/ns/sosa/sampling/RelationshipNature

an OWL Class

Nature of relationship — the nature of a relationship between two Samples

Subclass of
skos:Concept
Examples
Adjacent flight-line
Females
Juveniles
Pixel within image or scene
Probe spot on polished specimen
Specimen taken from borehole
Split of core sample
Station along a traverse
Sub-sample with grain size smaller than specified seive mesh
is Defined By
http://www.w3.org/ns/sosa/sampling/
6.2.2.2 sosa-rel:SampleRelationship

IRI: http://www.w3.org/ns/sosa/sampling/SampleRelationship

an OWL Class

Sample relationship — relationship from one Sample to another Sample

is Defined By
http://www.w3.org/ns/sosa/sampling/
6.2.2.3 sosa-rel:hasSampleRelationship

IRI: http://www.w3.org/ns/sosa/sampling/hasSampleRelationship

an OWL Object Property

has sample relationship — links a Sample to a SampleRelationship

Domain Includes
sosa:Sample
Range Includes
sosa-rel:SampleRelationship
is Defined By
http://www.w3.org/ns/sosa/sampling/
6.2.2.4 sosa-rel:natureOfRelationship

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

Domain Includes
sosa-rel:SampleRelationship
Range Includes
sosa-rel:RelationshipNature
is Defined By
http://www.w3.org/ns/sosa/sampling/
6.2.2.5 sosa-rel:relatedSample

IRI: http://www.w3.org/ns/sosa/sampling/relatedSample

an OWL Object Property

related sample — links a SampleRelationship to the related Sample

Domain Includes
sosa-rel:SampleRelationship
Range Includes
sosa:Sample
is Defined By
http://www.w3.org/ns/sosa/sampling/

7. Alignments

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.

7.1 PROV Alignment Module

This section introduces the alignment of SSN with W3C PROV ([prov-overview], [prov-dm], [prov-o]).

The underlying structure of PROV is based around a process-flow model, with three base classes:

Figure 23 Core PROV classes and some of the properties that relate them, alongside the core SOSA structure for execution (actuation, observation, and sampling).
Explanation of the notation used in class diagrams.

The SSN ontology conceives executions (acts of actuation, observation, and 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. Alignment of SSN with 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 described below (see Figure 23) is based on that work, and also extended to consider actuation and sampling.

The ontology IRI of the PROV Alignment module is http://www.w3.org/ns/sosa/prov
The version IRI of the PROV Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/prov

7.1.1 Namespaces

The following namespace prefixes are used in the alignment of SSN with PROV.

sosa:
http://www.w3.org/ns/sosa/
prov:
http://www.w3.org/ns/prov
sp:
http://www.w3.org/ns/sosa/prov/

7.1.2 Class Alignments

The primary classes from SSN are aligned with the PROV classes as follows.

Note

The notation used in this section is described in 2.4 Alignment notation.

1. Execution (acts of Observation, Actuation and Sampling) and Deployment are kinds of Activity, thus:

2. Assets, including Systems (Sensors, Actuators and Samplers) and Platforms 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 SSN ontology represent either real or information resources, so are interpreted as kinds of prov:Entity, thus:

7.1.3 Property Alignments

The following properties from SSN have simple alignments with PROV properties:

The final property alignment first requires some subproperties of PROV properties to be defined:

Then sosa:usedProcedure is given a property chain axiom:

7.2 SAREF Alignment Module

This section introduces the alignment of SSN with 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.

The ontology IRI of the SAREF Alignment module is http://www.w3.org/ns/sosa/saref
The version IRI of the SAREF Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/saref. This file additionally contains justifications for the alignment.

7.2.1 Namespaces

The following namespace prefixes are used in the alignment of SSN with SAREF.

sosa:
http://www.w3.org/ns/sosa/
saref:
https://saref.etsi.org/core/
s4syst:
https://saref.etsi.org/saref4syst/

7.2.2 Alignment of SOSA-common to SAREF

The classes and properties from SOSA-common are aligned with the SAREF classes and properties as follows.

Note

The notation used in this section is described in 2.4 Alignment notation.

7.2.3 Alignment of SOSA-observation to SAREF

The classes and properties from SOSA-observation are aligned with the SAREF classes and properties as follows.

7.2.4 Alignment of SOSA-actuation to SAREF

The classes and properties from SOSA-actuation are aligned with the SAREF classes and properties as follows.

7.2.5 Alignment of SOSA-sampling to SAREF

The classes and properties from SOSA-sampling are aligned with the SAREF classes and properties as follows.

7.3 OBOE Alignment Module

This section introduces the alignment of SSN with the Extensible Observation Ontology [OBOE].

OBOE 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.

The ontology IRI of the OBOE Alignment module is http://www.w3.org/ns/sosa/oboe
The version IRI of the OBOE Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/oboe. This file additionally contains justifications for the alignment.

7.3.1 Namespaces

The following namespace prefixes are used in the alignment to SOSA.

sosa:
http://www.w3.org/ns/sosa/
oboe:
http://ecoinformatics.org/oboe/oboe.1.1/oboe-core.owl#

7.3.2 Class Alignments

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 24.

Figure 24 The OBOE core model (left), shown alongside the SSN model including two levels of sosa:ObservationCollection (right) with matching classes and properties aligned visually.
Explanation of the notation used in class diagrams.

The primary classes from [OBOE] are aligned with SSN classes as follows.

Note

The notation used in this section is described in 2.4 Alignment notation.

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.

7.3.3 Property Alignments

The following properties from [OBOE] may be directly aligned with SSN properties.

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.

7.4 IDO Alignment Module

This section introduces the alignment of SSN with the Industrial Data Ontology (IDO), which is standardized as [ISO23726-3-DIS]. This serves to axiomatically clarify the intended meaning of SSN terms in terms of IDO and enable usage of SSN and SOSA with IDO-aligned ontologies.

An RDF file containing a graph corresponding to this alignment is available.

7.4.1 Namespaces

The following namespace prefixes are used in the alignment of SOSA to IDO.

sosa:
http://www.w3.org/ns/sosa/
lis:
http://rds.posccaesar.org/ontology/lis14/rdl/

7.4.2 Class Alignments

The upper-level classes from SSN are aligned with the IDO classes as follows. The alignment of subclasses of these upper-level classes follows logically from these correspondences.

Note

The notation used in this section is described in 2.4 Alignment notation.

Note

The definition of each IDO concept is displayed as a tooltip when hovering over the concept.

7.4.3 Property Alignments

The upper-level object properties from SSN are aligned with the IDO properties as follows. The alignment of subproperties of these upper-level properties follows logically from these correspondences.

Note

The definition of each IDO property is displayed as a tooltip when hovering over the concept.

7.5 DOLCE UltraLite Alignment Module

This section introduces the alignment of SSN with the DOLCE UltraLite upper ontology [DUL] which was the core dependency of the original version of SSN. This serves to axiomatically clarify the intended meaning of SSN terms and will assist SSN and SOSA users wishing to interoperate with other DUL-aligned ontologies. Note, however, that the DUL alignment can be used independently to align SSN with more generic concepts/properties of DUL.

Note

DUL is no longer maintained, since DOLCE was issued as an ISO Standard [DOLCE]. An alignment of SSN with DOLCE is provided in this edition of the SSN Ontology.

Note

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.

The ontology IRI of the DUL Alignment module is http://www.w3.org/ns/sosa/dul
The version IRI of the DUL Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/dul

7.5.1 Namespaces

The following namespace prefixes are used in the alignment of SSN with DUL.

sosa:
http://www.w3.org/ns/sosa/
dul:
http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#

7.5.2 Class Alignments

The upper-level classes from SSN are aligned with the DUL classes as follows. The alignment of subclasses of these upper-level classes follows logically from these correspondences.

Note

The notation used in this section is described in 2.4 Alignment notation.

Note

The definition of each DUL concept is displayed as a tooltip when hovering over the concept.

7.5.3 Property Alignments

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.

Note

The definition of dul:associatedWith is displayed as a tooltip when hovering over the concept.

7.6 DOLCE Alignment Module

This section introduces the alignment of the SOSA subset of SSN with the DOLCE upper ontology [DOLCE]. This serves to axiomatically clarify the intended meaning of SSN terms and will assist SSN and SOSA users wishing to interoperate with other DOLCE-aligned ontologies. The DOLCE alignment can be used independently to align SOSA with more generic concepts/properties of DOLCE.

The ontology IRI of the DOLCE Alignment module is http://www.w3.org/ns/sosa/dolce
The version IRI of the DOLCE Alignment module 2023 edition is http://www.w3.org/ns/sosa/2023/dolce

7.6.1 Namespaces

The following namespace prefixes are used in the alignment of SSN with DOLCE.

sosa:
http://www.w3.org/ns/sosa/
db:
https://w3id.org/DOLCE/OWL/DOLCEbasic#

7.6.2 Class Alignments

The upper-level classes from SSN are aligned with the DOLCE classes as follows. The alignment of subclasses of these upper-level classes follows logically from these correspondences.

Note

The notation used in this section is described in 2.4 Alignment notation.

Note

The definition of each DOLCE concept is displayed as a tooltip when hovering over the concept.

7.7 BFO/CCO Alignment Module

This section introduces the alignment of SSN with the Basic Formal Ontology ([BFO]) and Common Core Ontologies ([CCO]).

BFO is a 'top level ontology', which makes a basic distinction between Continuants and Occurrents. This allows a primary alignment of sosa:Execution and sosa:Deployment with classes in the BFO Occurrent hierarchy, and of sosa:Asset, sosa:System, and sosa:Sample with classes in the BFO Continuant hierarchy.

CCO is a 'mid level ontology', based on BFO. CCO provides modules for several sets of common concepts that may then be used in many application domains. This includes specializations of the BFO classes that align with classes from SSN.

7.7.1 Namespaces

The following namespace prefixes are used in the alignment of SSN with BFO and CCO.

sosa:
http://www.w3.org/ns/sosa/
obo:
http://purl.obolibrary.org/obo/
cco:
https://www.commoncoreontologies.org/

7.7.2 Notation

Note

The notation used in this section is described in 2.4 Alignment notation.

Note

The definition of each BFO/CCO concept is displayed as a tooltip when hovering over the concept.

7.7.3 Class Alignments

The primary classes from SSN are aligned with the BFO and CCO classes as follows.

7.7.4 Property Alignments

The following properties from SSN have simple alignments with BFO or CCO properties:

7.7.5 Explanations

Most of these alignments are straightforward, but a few merit some explanation.

  1. sosa:Observation is a subclass of cco:Sensing Process, which is "A Process that realizes a Sensor Function or Sensor Role" but does not require a procedure to be followed.
  2. A sosa:Procedure is a re-usable recipe or protocol or system datasheet, thus it is purely information content. In particular it describes the actions and settings that a system must implement.
  3. A sosa:Property may be generic, so that it applies to many entities. Or it may be specific to a particular individual. See 8.11.3 Feature-specific properties for further discussion.
  4. cco:Sensor is a subclass of cco:Material Entity, while sosa:Sensor may be non-material - e.g. a software agent.
  5. A sosa:Stimulus is an interaction of an observable proxy for the desired property with the sensor. See [SSO-Pattern] for further discussion.
  6. The range of sosa:hasResult is not specified in SSN. However, following its definition we can infer that

8. Common Patterns

This section is non-normative.

This section discusses how to handle some common modeling questions.

8.1 Quantity Values and Units of Measure

The result of a sosa:Observation or a sosa:Actuation can be a quantity value with a numeric value and a unit of measure.

Recommending a single way of representing quantitative results is is out of scope for this Recommendation. Several options from external vocabularies are available for expressing quantities as OWL individuals, or as datatypes. The examples in this section are based on the use of qudt:QuantityValue from the Quantities, Units, Dimensions, and Data Types ontologies [QUDT]. Another option is cdt:ucum from Custom Datatypes [CDT], but use of custom datatypes requires an extension to standard RDF and OWL processors.

8.1.1 Single values

The following examples show an encoding of a single observation with a scalar result, as shown in Figure 25.

Figure 25 A simple Observation with a scaled number (Quantity) as its result.
Explanation of the notation used in class diagrams.

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 ;
.

8.1.2 Collections

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 ;
.

8.2 Domain types and FeatureOfInterest

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. As an example, applications in hydrology might refer to types such as watercourse, 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 subclasses of sosa:FeatureOfInterest? No, absolutely not. RDF and OWL entailments do not work that way.

The way the SSN Ontology addresses this issue is described in the following subsections. There are different implications depending on whether you are using the simple SOSA module, or the more expressive SSN module.

8.2.1 FeatureOfInterest in SOSA

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:

  1. These have no formal entailments, they are just hints
  2. 'Includes' means these types are non-exclusive, so any other type is acceptable, including types from application-domains

Therefore, the 'domain and range' indications in SOSA are functionally harmless. The fact that SOSA says

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.

8.2.2 FeatureOfInterest in SSN

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 the object of the statement must be declared to have rdf:type sosa:FeatureOfInterest in advance, nor that 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 the derivation of domain types as subclasses of sosa:FeatureOfInterest. It merely means that when a domain individual participates in an Execution (e.g., an Observation), the individual 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 subclasses) or sosa:Deployment.

Consider the following scenario (Figure 26, Figure 27). There is an entity typed with a class from a domain model:

Figure 26 A feature classified using a domain ontology.
Explanation of the notation used in class diagrams.
ex:YarraAboveDightsFalls rdf:type hydro:RiverReach .

An observation is made concerning a property of this entity:

Figure 27 An observation on a feature previously classified using a domain ontology.
Explanation of the notation used in class diagrams.
ex:o345 rdf:type sosa:Observation ;
    sosa:hasFeatureOfInterest ex:YarraAboveDightsFalls ;
    sosa:observedProperty hydro:elevation ;
    sosa:hasResult [
        a qudt:QuantityValue ;
        qudt:hasUnit unit:M ;
        qudt:value 30 ;
        ] ;
    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 a 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.

8.3 Proximate and Ultimate feature of interest

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 28 shows a description of a simple actuation to open a window.

Figure 28 Simple Actuation to open a window.
Explanation of the notation used in class diagrams.
@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 29.

Figure 29 The observation is on a sample of the ultimate feature of interest.
Explanation of the notation used in class diagrams.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix qudt: <http://qudt.org/schema/qudt/>.
@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/> .
@prefix unit: <http://qudt.org/vocab/unit/>.

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:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:PPM ;
      qudt:value 240.0 ;
  ] ;
.
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" ;
.

8.4 Sample chains

Many observation workflows rely on a chain of samples. For such scenarios, understanding the provenance of the sample which is the (proximate) feature of interest for observations is important. 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 30). 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.

Figure 30 Sequence of two acts of sampling to recover a gas bubble from an ice sheet.
Explanation of the notation used in class diagrams.
@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 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 unit: <http://qudt.org/vocab/unit/>.
@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 [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:M ;
      qudt:value 15.202 ;
    ] ;
  ] ;
  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 31 shows a more complex scenario. This involves many samples derived from an initial one, with some relationships that may be useful in processing and discovery of subsequent observations. The intention of most of the observations is to characterize various aspects of the original sample, which is representative of an ultimate feature of interest. This is supported by two additional properties for relationships between samples and features of interest at specific points in the chain: hasOriginalSample and isSampleOfUltimateFOI.

Figure 31 It is common to generate a chain of samples in a geology exploration scenario. An initial sample is retrieved from the field, and followed by a sequence of sampling steps (pink) to generate a series of subsamples (light green).

For clarity the diagram shows only a subset of the full set of potential resources and relationships.
Explanation of the notation used in class diagrams.

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, and the observations on them.

Note that the scenario in Figure 31 is simplified from real-life scenarios, and also that the diagram only shows a subset of the full set of resources and relationships.

8.5 Time series

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 32 shows a Collection of Observations that has a member for each time-step in the series.

Figure 32 Collection of observations of the same property on the same feature of interest, with each member representing a step in the time-series.
Explanation of the notation used in class diagrams.
@prefix ex: <https://example.org/data/> .
@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#> .
@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 ;
  qudt:hasUnit unit:M-PER-SEC ;
.
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 ;
.
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 ;
.
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 ;
.
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 ;
.
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, such as OGC Coverages [CoverageJSON]. In such cases, it is no longer necessary to provide a paired Observation.

8.6 Location and Geometry

8.6.1 Location

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.

8.6.1.1 Systems, Platforms, Deployments

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:

Figure 33 System location — direct description
Explanation of the notation used in class diagrams.
@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:

Figure 34 System location — on Platform
Explanation of the notation used in class diagrams.
@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:

Figure 35 System location — in a Deployment
Explanation of the notation used in class diagrams.
@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 ;
.
8.6.1.2 Samples, Features

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:

Figure 36 Sample location — direct descriptions
Explanation of the notation used in class diagrams.
@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 sf: <http://www.opengis.net/ont/sf#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix sosa-oms: <http://www.w3.org/ns/sosa/oms/> .

ex:EarthAtmosphere_StE a sosa:MaterialSample ;
  sosa:isSampleOf ex:EarthAtmosphere ;
  sosa-oms:sourceLocation [ 
    a sf: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:

Figure 37 Sample location — indirect descriptions
Explanation of the notation used in class diagrams.
@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 sf: <http://www.opengis.net/ont/sf#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix sosa-oms: <http://www.w3.org/ns/sosa/oms/> .

ex:EarthAtmosphere_StE a sosa:MaterialSample ;
  sosa:isSampleOf ex:EarthAtmosphere ;
  sosa:isResultOf ex:AirSampling_StE ; 
.
ex:AirSampling_StE a sosa:Sampling ;
  sosa:hasFeatureOfInterest ex:EarthAtmosphere ;
  sosa-oms:samplingLocation [ 
    a sf:Point ;
    geo:asWKT "POINT (4.387611 45.437772)"^^geo:WktLiteral ;
  ] ;
.
ex:EarthAtmosphere a sosa:FeatureOfInterest ;
  skos:exactMatch <https://www.wikidata.org/wiki/Q3230> ;
.

8.6.2 Relative location patterns

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:

in situ monitoring
location of sensor and feature of interest are the same
remote sensing
location of sensor is remote from the feature of interest
ex situ observation (e.g., lab measurements)
location of sensor and location of the ultimate feature of interest are different; result-time later than phenomenon-time

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.

8.6.3 Geometry results

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:

Figure 38 Geometry as the result of an observation
Explanation of the notation used in class diagrams.
@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 (Well Known Text) 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 ;
.

8.7 Temporal properties

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.

8.7.1 Forecasts

A forecast may be represented as an observation where the value of sosa:phenomenonTime is later in time than the sosa:resultTime (Figure 39). The time when the observation execution was completed is before the time that the result of the observation applies to the FeatureOfInterest.

Figure 39 Temperature grid forecast, modeled as an Observation in which the result time is before the phenomenon time, which is when the result applies to the feature of interest.
Explanation of the notation used in class diagrams.
8.7.1.1 Serialised in Turtle
@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" ;
.
8.7.1.2 Serialised in JSON-LD
{
  "@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/"
  }
}
Note

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.

Note

Describing a plan for some actuation or observation in the future is not covered by this specification.

8.7.2 Historical observations

Observations in historical sciences, including geology and archeology, may be made to determine the state of the world in the past.

8.7.2.1 Historical observations — simple cases

Consider a determination of the diet of past communities by examination of middens and other archaeological features (Figure 40)

Figure 40 Observation with phenomemon-time in the deep past.
Explanation of the notation used in class diagrams.
@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:

Figure 41 Observation with phenomenon-time in the past.
Explanation of the notation used in class diagrams.
@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 ;
.
8.7.2.2 Historical observation — from combination of separate observation of time and property

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 42). These provide input values to the final observation (at the bottom of Figure 42).

Figure 42 Observation with phenomenon-time in the deep past, constructed from the output of two primitive observations.
Explanation of the notation used in class diagrams.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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#> .

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:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:YR ;
      qudt:value 7530.0 ;
  ] ;
  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:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:PPM ;
      qudt:value 240.0 ;
  ] ;
  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:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:PPM ;
      qudt:value 240.0 ;
  ] ;
  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.

8.8 Collections and their members' property values

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 a sosa:ObservationCollection. The patterns shown also apply to the other collection types.

8.8.1 Rule 1 — absent property on the collection

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 ;
.

8.8.2 Rule 2 — single property value on the collection

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 ;
.

8.8.3 Rule 3 — multiple property values on the collection

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 ;
.

8.8.4 Rule 4 — range property value on the collection

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 ;
.

8.8.5 Rule 5 — multiple ranges property value on the collection

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 ;
.

8.9 Homogeneous collection of observations

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. The value of the property(ies) of the collection that are present 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 43 describes a collection of remote sensing observations using the same sensor on different scenes, while Figure 44 is a series of the same scene on different days.

Collections of observations 3
Figure 43 A set of remote sensing observations of different scenes on the same day
Collections of observations 4
Figure 44 A series of remote sensing observations of the same scene on the 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 45).

Nested collections of observations 1
Figure 45 Example of a set of nested collections of four observations of the same property of two features-of-interest at two different times.

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 46).

Nested collections of observations 2
Figure 46 Alternative set of nested collections with the same results of the same property of two features-of-interest at two different times.

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.

Note

This feature might also apply to collections of Actuations but this application has not yet been explored.

8.10 Planning executions and collections

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.

8.10.1 Planned System Deployment

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 47 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.

Figure 47 Deployment of a Sampler. ex:SC-LaJ1 denotes the set of Samples that will be the result of this deployment.
Explanation of the notation used in class diagrams.
@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 ;
.

8.10.2 Planned Collection using generic system

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 48 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.

Figure 48 A planned SampleCollection. _:b1 is a "blank node" denoting some Sampler that implements ex:Sp-A56 and is deployed on ex:LOIRE_A_JARGEAU_WQ_Station.
Explanation of the notation used in class diagrams.
@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 49 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.

Figure 49 A planned ObservationCollection. _:b3 is a "blank node" denoting a sosa:Sensor that is implied by the presence of the sosa:usedProcedure value.
Explanation of the notation used in class diagrams.
@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" ;    
.

8.11 Property definitions

The SSN Ontology does not provide a general pattern for describing observable or actuatable properties.

8.11.1 Catalogues of 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.

8.11.2 New property definitions

Alternatively, the Parameter Usage Vocabulary or I-ADOPT [I-ADOPT] may be used to define a new sosa:Property. For example, integrating I-ADOPT Variables may resolve legacy inconsistencies by decomposing complex properties into explicit, interoperable atomic components. This may enrich SOSA observables with reusable, machine-actionable semantics, lowering barriers to cross-system data comparison and sharing. Figure 50 and Figure 51 show the application of the I-ADOPT ontology for the properties used in two initial observations to provide input-values for the final observation (cmp. Example 20).

Figure 50 Definition of an observation with an I-ADOPT Variable: The age of air in ice core, determined by radiocarbon dating, expressed relative to a datum of AD 1950.
Explanation of the notation used in class diagrams.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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#> .
@prefix iop: <https://w3id.org/iadopt/ont/> .
@prefix sweet: <http://sweetontology.net/realmCryo/> .
@prefix et: <http://vocabs.lter-europe.net/EnvThes/> .
@prefix P21: <http://vocab.nerc.ac.uk/collection/P21/current/> .

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:AgeOfAir ;
  sosa:hasFeatureOfInterest ex:Bubble873 ;
  sosa:hasUltimateFeatureOfInterest ex:EarthAtmosphere ;
  sosa:usedProcedure ex:C14 ;
  sosa:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:YR ;
      qudt:value 7530.0 ;
  ] ;
  sosa:resultTime "2018-01-09T14:15:00+00:00"^^xsd:dateTime 
.
ex:Antarctic_ice_sheet a sosa:FeatureOfInterest, <https://www.wikidata.org/wiki/Q571430> 
.   
ex:EarthAtmosphere a sosa:FeatureOfInterest, P21:MS292 
. 
ex:AgeOfAir a sosa:Property, iop:Variable ;
  skos:broadMatch <http://vocab.nerc.ac.uk/collection/S06/current/S0600001/> ;
  skos:definition "The age of air gas in ice core." ;
  skos:prefLabel "AgeOfAir" ;
  iop:hasObjectOfInterest et:23 ;
  iop:hasMatrix sweet:IceCore ;
  iop:hasProperty et:21590 
.
et:23
    a iop:Entity ;
    rdfs:label "air" 
.
sweet:IceCore
    a iop:Entity ;
    rdfs:label "ice core" 
.
et:21590
    a iop:Property ;
    rdfs:label "age" 
.
As demonstrated, the I-ADOPT Variable remains strictly decoupled from procedural metadata and value expressions. Methodological details, such as Radiocarbon (C-14) dating, are explicitly captured via the observation's measurement procedure (sosa:usedProcedure), preserving the reusable, context-independent structure of the variable itself.
Figure 51 Definition of an observation with an I-ADOPT Variable: Concentration of carbon dioxide in air.
Explanation of the notation used in class diagrams.
@prefix ex: <https://example.org/data/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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#> .
@prefix iop: <https://w3id.org/iadopt/ont/> .
@prefix P21: <http://vocab.nerc.ac.uk/collection/P21/current/> .
@prefix S27: <http://vocab.nerc.ac.uk/collection/S27/current/> .
@prefix qk: <http://qudt.org/vocab/quantitykind/>.
@prefix et: <http://vocabs.lter-europe.net/EnvThes/> .

ex:Bubble873 a sosa:Sample , sosa:MaterialSample ;
  sosa:isSampleOf ex:IceCore12 , ex:EarthAtmosphere;
  sosa:isSampleOfUltimateFOI ex:Antarctic_ice_sheet ;
  sosa:isResultOf ex:CoreEx1923 
.
ex:Ob873c4 a sosa:Observation ;
  sosa:observedProperty ex:CO2-Concentration ;
  sosa:hasFeatureOfInterest ex:Bubble873 ;
  sosa:hasUltimateFeatureOfInterest ex:EarthAtmosphere ;
  sosa:usedProcedure ex:CO2 ; 
  sosa:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:PPM ;
      qudt:value 240.0 ;
  ] ;
  sosa:resultTime "2018-01-09T14:16:00+00:00"^^xsd:dateTime 
.
ex:Antarctic_ice_sheet a sosa:FeatureOfInterest, <https://www.wikidata.org/wiki/Q571430> 
. 
ex:EarthAtmosphere a sosa:FeatureOfInterest, P21:MS292 
.  
ex:CO2-Concentration a sosa:Property, iop:Variable ;
    rdfs:label "Concentration of carbon dioxide in air" ;
    rdfs:comment """Concentration of carbon dioxide in air""" ;
    iop:hasObjectOfInterest _:b0 ;
    iop:hasMatrix P21:MS292 ;
    iop:hasProperty qk:AmountOfSubstanceConcentration 
.
_:b0
    a iop:Entity, iop:AsymmetricSystem ;
    iop:hasNumerator S27:CS003089 ;
    iop:hasDenominator et:23
.
P21:MS292
    a   iop:Entity ;
    rdfs:label "earth atmosphere" 
.
qk:AmountOfSubstanceConcentration a iop:Property ;
    rdfs:label "amount of substance concentration" 
.
S27:CS003089
    a iop:Entity ;
    rdfs:label "carbon dioxide" 
.		
et:23
    a iop:Entity ;
    rdfs:label "air"
.

The primary objective of the I-ADOPT framework is to represent a variable as an identifiable and reusable concept that is decomposed into its atomic components. By assigning specific descriptive roles, such as Object of Interest, Matrix, or Context Object, and mapping each component to URIs from domain-specific vocabularies, I-ADOPT ensures full semantic clarity. The variable URI can then be used as the value of the sosa:actsOnProperty or sosa:observedProperty of an Execution.

8.11.3 Feature-specific properties

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 subproperty 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.

Note

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.

Note

Where sosa:actsOnProperty or sosa:observedProperty of a 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.

8.12 Complex devices

Multiple sensors and actuators may be packaged 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 52 shows how an instance and type of the IBS-TH2-PLUS may be modeled as a complex sensor.

Figure 52 Inkbird model IBS-TH2-PLUS temperature and humidity sensor package, with the individual sensors represented as instances of subclasses of sosa:Sensor, and the overall package represented as an instance of a subclasss of sosa:System.
Explanation of the notation used in class diagrams.

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 ;
.

8.13 Systems Types and Individuals

sosa:System is the class of systems, 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 datasheet 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 53 illustrates an example of a sensor type and instance modeled this way.

Figure 53 Mum's clinical thermometer represented as an instance of a specific sensor type.
Explanation of the notation used in class diagrams.

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 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 sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix unit: <http://qudt.org/vocab/unit/>.

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:hasResult [
      a qudt:QuantityValue ;
      qudt:hasUnit unit:DEG_C ;
      qudt:value 38.2 ;
  ] ;
  sosa:madeBySensor ex:Mums-clinical-thermometer ;
  sosa:observedProperty qk:Temperature ;
.
Note

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 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 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 sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix unit: <http://qudt.org/vocab/unit/>.
@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 ;
  qudt:hasUnit unit:HZ ;
  sosa:hasMember [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MaxFrequency ;
      sosa:hasSimpleResult 0.1 ;
  ] ,
  [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MinFrequency ;
      sosa:hasSimpleResult ".0005556"^^xsd:decimal ;
  ]
.
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 ;
  qudt:hasUnit unit:PERCENT ;
  sosa:hasMember [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:HumidityAccuracy ;
      sosa:hasSimpleResult 4.5 ;
  ] ,
  [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MaxMeasurableHumidity ;
      sosa:hasSimpleResult 99.0 ;
  ] ,
  [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MinMeasurableHumidity ;
      sosa:hasSimpleResult 0.0 ;
  ]
.
sensor:IBS-TH2-Plus-T-systemCapability a sosa:ObservationCollection ;
  qudt:hasUnit unit:DEG_C ;
  sosa:hasMember [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:TemperatureAccuracy ;
      sosa:hasSimpleResult 0.5 ;
  ] ,
  [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MaxMeasurableTemperature ;
      sosa:hasSimpleResult 60.0 ;
  ] ,
  [
      a sosa:Observation ;
      sosa:observedProperty sosa-cap:MinMeasurableTemperature ;
      sosa:hasSimpleResult -40.0 ;
  ]
.

A. Wide review

This section is non-normative.

TBC

B. Tabulation of properties and their inverses

This section is non-normative.

To support interoperability across a range of applications, inverses are named for all SSN object properties.

Note

Terms added in the 2023 Edition are indicated with an asterisk*.

Note

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.

C. Extended Examples

This section is non-normative.

A set of extended examples of instances using the SSN ontology are available in the examples folder.

D. System Capabilities Module

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 ontology IRI of the System Capabilities Module is http://www.w3.org/ns/sosa/systems/.
The version IRI of the System Capabilities Module 2023 edition is http://www.w3.org/ns/sosa/2023/systems/.

Note

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.

D.1 Overview

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.

Figure 54 Classes and relationships involved in the description of the operating conditions and capabilities of a system. In this diagram, unqualified names refer to classes and properties in the sosa: namespace.
Explanation of the notation used in class diagrams.

D.1.1 Operating Conditions

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.

Note

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.

Figure 55 Classes and relationships involved in the description of the operating conditions of a system (typically an observation collection about the system environment).
In this diagram, unqualified names refer to classes and properties in the sosa: namespace.
Explanation of the notation used in class diagrams.
Note

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 ;
      ] ;
    ]
.

D.1.2 System Capabilities

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.

Note

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.

Note

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.

Figure 56 Detailed classes and relationships involved in the description of the context (typically an observation collection about the system environment) under which an observation (typically about the system capabilities) is valid.
In this diagram, unqualified names refer to classes and properties in the sosa: namespace.
Explanation of the notation used in class diagrams.
Warning

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 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 ;
      ] ;
  ] .

D.1.3 Property Validity Context

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.

Figure 57 Detailed classes and relationships involved in the description of the context (typically an observation collection about the system environment) in which a property (typically about the system capabilities) is valid.
In this diagram, unqualified names refer to classes and properties in the sosa: namespace.
Explanation of the notation used in class diagrams.
Note

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 ;
        ] ;
      ]
    ]
.

D.1.4 Guidance on System Capability properties and ranges

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.ontology-of-units-of-measure.org/resource/om-2/>.
@prefix qk: <http://qudt.org/vocab/quantitykind/>.
@prefix et: <http://vocabs.lter-europe.net/EnvThes/>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.


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 et:23 ;
  iop:hasProperty qk:ThermodynamicTemperature ;
.
qk:ThermodynamicTemperature
    a iop:Property ;
    rdfs:label "thermodynamic temperature" 
.		
et:23
    a iop:Entity ;
    rdfs:label "air" 
.
uom:minimum
    a iop:StatisticalModifier ;
    rdfs:label "minimum" 
.

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#> .
@prefix gemet: <https://www.eionet.europa.eu/gemet/concept/> .

ex:sensor a sosa:Sensor;
  sosa:hasSubSystem ex:AABattery .
  
ex:nominalLifetime a sosa:Observation ;
  sosa:hasFeatureOfInterest ex:sensor ;
  sosa:observedProperty ex:nominalLifetimeRestriction ;
  sosa:hasResult [ 
    qudt:value 1.0 ;
    qudt:hasUnit unit:YR ;
  ] ;
.
ex:nominalLifetimeRestriction
    a iop:Variable, sosa:Property;
    rdfs:label "Nominal Lifetime Restriction of a AA Battery" ;
    rdfs:comment """Nominal lifetime restriction of a AA battery""" ;
    iop:hasObjectOfInterest ex:AABattery ;
    iop:hasStatisticalModifier uom:average ;
    iop:hasContextObject gemet:1170 ;
    iop:hasProperty sosa-cap:BatteryLifetime .
	
ex:AABattery
    a iop:Entity ;
    rdfs:label "AABattery" .
	
uom:average
    a iop:StatisticalModifier ;
    rdfs:label "average" .
	
sosa-cap:BatteryLifetime
    a iop:Property ;
    rdfs:label "Battery Lifetime" .
		
gemet:1170
    a iop:Entity ;
	rdfs:label "sensor" .

D.1.5 Complete examples

The following examples illustrate the terms related to System capabilities and operating conditions:

D.2 Specification

This section introduces the following classes and properties:

D.2.1 sosa:Battery

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.

Subclass of
sosa:System
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.2 sosa:hasOperatingConditions

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 operating conditions, and survivable conditions.

Domain Includes
sosa:System, sosa:Sensor, sosa:Actuator, sosa:Sampler
Range Includes
sosa:Observation, sosa:ObservationCollection sosa:OperatingConditions,
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.3 sosa:hasSystemCapability

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.

Domain Includes
sosa:System, sosa:Sensor, sosa:Actuator, sosa:Sampler
Range Includes
sosa:Observation, sosa:ObservationCollection
Subproperty of
sosa:isFeatureOfInterestOf
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.4 sosa:hasValidityContext

IRI: http://www.w3.org/ns/sosa/hasValidityContext

an OWL Object Property

has validity context — Links 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)

Domain Includes
sosa:Observation, sosa:ObservationCollection sosa:Property
Range Includes
sosa:Observation, sosa:ObservationCollection
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.5 sosa:NormalOperatingConditions

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.

Subclass of
sosa:OperatingConditions
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.6 sosa:OperatingConditions

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.

is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.7 sosa:SuboptimalOperatingConditions

IRI: http://www.w3.org/ns/sosa/SuboptimalOperatingConditions

an OWL Class

Suboptimal Operating 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.

Subclass of
sosa:OperatingConditions
is Defined By
http://www.w3.org/ns/sosa/systems/

D.2.8 sosa:SurvivableConditions

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 loses physical integrity and loses its shape. A system or sensor exposed to conditions outside of those reported by SurvivableConditions will no longer be serviceable.

Subclass of
sosa:OperatingConditions
is Defined By
http://www.w3.org/ns/sosa/systems/

D.3 Sample vocabularies of properties

For illustration purposes, this section describes sample vocabularies consisting of short lists of properties about system capabilities and the system environment.

Warning

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.

D.3.1 Sample vocabulary of properties about system capabilities

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,
with permanent IRI http://www.w3.org/ns/sosa/2023/system-capability-properties.

Note

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,

D.3.2 Sample vocabulary of properties about the system environment

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.
with permanent IRI http://www.w3.org/ns/sosa/2023/system-environment-properties.

Note

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

E. Origins of SSN and SOSA

This section is non-normative.

E.1 OGC Sensor Web Enablement

Beginning 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:

  1. SensorML [SensorML] is 'provider-centric' and encodes details of the sensor along with raw observation data
  2. Observations and Measurements (O&M) [OandM] [iso-19156-2011] was designed to be more 'user-centric', with the target of the observation and the observed property as first-class objects.

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.

E.2 W3C Semantic Sensor Network Incubator

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].

E.3 SSN Ontology, including SOSA

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.

E.4 New editions

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.

Note

OMS was published as ISO 19156:2023 [iso-19156-2023] but is freely available as OGC Abstract Specification — Topic 20 [OMS].

Production of the 2023 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 [ConnectedSystems] 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.

F. Acknowledgments

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.

G. Change History

This section is non-normative.

A full change-log is available on GitHub.

G.1 Changes since W3C Recommendation 19 October 2017 (https://www.w3.org/TR/2017/REC-vocab-ssn-20171019/)

  1. Updated Abstract to reflect the revised graph and axiomatization design
  2. Updated and streamlined Introduction; moved Origins section to an Annex.
  3. Add conformance clause Chapter 3
  4. Updated Chapter 4 and Chapter 5.1 to explain modularization and RDF implementation
  5. OGC ModSpec explanation in Chapter 3. Conformance, and tabulations in Chapter 4 - Modularization
  6. Refactored SOSA and SSN into modules - sosa-common sosa-actuation sosa-observation sosa-sampling sosa (all), and matching ssn-* files (also ssn-deprecated). Refactored HTML sources to match.
  7. Moved basic rdfs:sub*Of axioms to the SOSA modules, reference RDFS-Plus
  8. re-drafted all figures as SVG; added a clause on notation
  9. Mark ssn:Input, ssn:Output, sosa:Result deprecated
  10. Add 'abstract' superclasses Execution (superclass of Actuation, Observation and Sampling), Asset (superclass of Platform and System)
  11. Add ExecutionCollection, ActuationCollection, ObservationCollection, SamplingCollection, SampleCollection, hasMember, isMemberOf
  12. remove rdfs:range on resultTime
  13. Clarify meaning of hasResult, resultTime, phenomenonTime in the context of Actuations
  14. Add startTime property
  15. Add forProperty links from Procedure, and inverse hasProcedure
  16. add inverses for all object-properties, add tabulation of all properties
  17. Add madeBySystem, madeExecution
  18. Remove Sample is subclass of FeatureOfInterest axiom
  19. Add Sample subclasses - MaterialSample, SpatialSample, StatisticalSample
  20. Add madeSamplingHasResult and usedForExecutionHasResult properties
  21. Add hasOriginalSample, isSampleOfUltimateFOI (from SSN-ext)
  22. Deprecate ActuatableProperty, ObservableProperty in favour of generic Property
  23. Add ActuatingProcedure, ObservingProcedure, SamplingProcedure specializations of Procedure for each execution type
  24. Add hasFeatureOfInterest support to Deployment
  25. Remove Functional and InverseFunctional axioms except on hasResult
  26. Simplify the System Capabilities Module
  27. Move System Capabilities module to Appendix
  28. Add SAREF alignment
  29. Update OBOE alignment - using ObservationCollection, SampleCollection, hasMember
  30. Add detailed OMS Extension module
  31. Retire O&Mv2 alignment - superseded by OMS extension
  32. Retire SSNX alignment - incubator version is now two generations back
  33. Added IDO alignment.
  34. Add BFO alignment
  35. Relaxed and simplified DUL alignment
  36. Add DOLCE alignment
  37. Fully revise Common Modeling patterns, also with diagrams
  38. Make patterns for Location, UoM more prescriptive
  39. Move extended examples out of the document into an online repository
  40. Remove Warnings for terms that have 2 evidences of implementation

H. References

H.1 Normative references

[CDT]
Custom Datatypes - Towards a web of Linked Datatypes. Maxime Lefrançois; Antoine Zimmermann. 19 July 2021. URL: https://w3id.org/lindt/v4/custom_datatypes
[GeoSPARQL]
OGC GeoSPARQL - A Geographic Query Language for RDF Data. Nicholas J. Car; Timo Homburg; Matthew Perry; Frans Knibbe; Simon J.D. Cox; Joseph Abhayaratna; Mathias Bonduel; Paul J. Cripps; Krzysztof Janowicz. OGC. 29 January 2024. OGC Standard. URL: https://docs.ogc.org/is/22-047r1/22-047r1.html
[json-ld11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11/
[ModSpec]
The ModSpec Model - Part 1: Core - A Standard for Designing and Writing Modular Standards. Carl Reed; Charles Heazel; John Herring. Open Geospatial Consortium. 2026. URL: https://docs.ogc.org/pol/08-131r7/08-131r7.html
[OandM]
Observations and Measurements (O&M) v2. Simon Cox. OGC. 2011. OGC Abstract Specification Topic 20. URL: https://portal.ogc.org/files/?artifact_id=41579
[OMS]
Observations, measurements and samples (OMS). Katharina Schleidt; Ilkka Rinne. OGC. 2023. OGC Abstract Specification Topic 20. URL: https://docs.ogc.org/as/20-082r4/20-082r4.html
[owl-time]
Time Ontology in OWL. Simon Cox; Chris Little. W3C. 15 November 2022. CRD. URL: https://www.w3.org/TR/owl-time/
[owl2-manchester-syntax]
OWL 2 Web Ontology Language Manchester Syntax (Second Edition). Matthew Horridge; Peter Patel-Schneider. W3C. 11 December 2012. W3C Working Group Note. URL: https://www.w3.org/TR/owl2-manchester-syntax/
[owl2-overview]
OWL 2 Web Ontology Language Document Overview (Second Edition). W3C OWL Working Group. W3C. 11 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/owl2-overview/
[owl2-rdf-based-semantics]
OWL 2 Web Ontology Language RDF-Based Semantics (Second Edition). Michael Schneider. W3C. 11 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/owl2-rdf-based-semantics/
[rdf-schema]
RDF Schema 1.1. Dan Brickley; Ramanathan Guha. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-schema/
[rdf12-turtle]
RDF 1.2 Turtle. Gregg Kellogg; Andy Seaborne; Dominik Tomaszuk. W3C. 12 August 2026. W3C Working Draft. URL: https://www.w3.org/TR/rdf12-turtle/
[RDFS-Plus]
Chapter 8 - RDFS-Plus. Dean Allemang; Jim Hendler. Semantic Web for the Working Ontologist (Second Edition), Morgan Kaufmann. 2011. URL: https://doi.org/10.1016/B978-0-12-385965-5.10008-1
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc2119/
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/info/rfc8174/

H.2 Informative references

[BFO]
Information technology — Top-level ontologies (TLO) — Part 2: Basic Formal Ontology (BFO). International Organization for Standardization (ISO). ISO/IEC 21838-2:2021. URL: https://www.iso.org/standard/74572.html
[CCO]
The Common Core Ontologies (CCO). URL: https://github.com/CommonCoreOntology/CommonCoreOntologies
[ConnectedSystems]
OGC API - Connected Systems - Part 1: Feature Resources. Alexandre Robin. Open Geospatial Consortium. 2025. URL: https://docs.ogc.org/is/23-001/23-001.html
[CoverageJSON]
OGC CoverageJSON Community Standard. Chris Little; Jon Blower; Maik Reichert. Open Geospatial Consortium. August 2023. URL: https://docs.ogc.org/cs/21-069r2/21-069r2.html
[Description-Logics]
The Description Logic Handbook: Theory, Implementation, and Applications, 2nd Edition. Franz Baader; Diego Calvanese; Deborah L. McGuinness; Daniele Nardi; Peter F. Patel-Schneider. Cambridge University Press. 2007. URL: http://www.cambridge.org/9780521150118
[Description-Logics-Home-Page]
Description Logics Home Page. URL: https://dl.kr.org/
[DOLCE]
Information technology — Top-level ontologies (TLO) — Part 3: Descriptive ontology for linguistic and cognitive engineering (DOLCE). International Organization for Standardization (ISO). September 2023. ISO/IEC 21838-3:2023. URL: https://www.iso.org/standard/78927.html
[DUL]
Dolce+ D&S Ultralite and its main ontology design patterns. Presutti, V.; Gangemi, A. Ontology Engineering with Ontology Design Patterns, Ed. Pascal Hitzler, Aldo Gangemi, Krzysztof Janowicz, Adila Krisnadhi, Valentina Presutti. IOS Press. 2016. URL: https://www.iospress.com/catalog/books/ontology-engineering-with-ontology-design-patterns-foundations-and-applications
[I-ADOPT]
InteroperAble Descriptions of Observable Property Terminologies (I-ADOPT) WG Outputs and Recommendations. Barbara Magagna; Gwenaëlle Moncoiffé; Anusuriya Devaraju; Maria Stoica; Sirko Schindler; Alison Pamment; RDA I-ADOPT WG. RDA Recommendations. 2022. URL: https://doi.org/10.15497/RDA00071
[iso-19156-2011]
Geographic information -- Observations and measurements. ISO/TC 211. ISO. 2011. International Standard. URL: https://www.iso.org/standard/32574.html
[iso-19156-2023]
Geographic information -- Observations, measurements and samples. ISO/TC 211. ISO. 2023. International Standard. URL: https://www.iso.org/standard/82463.html
[iso-19157-1]
Geographic information -- Data quality -- Part 1: General requirements. ISO/TC 211. ISO. 2023. International Standard. URL: https://www.iso.org/standard/78900.html
[ISO23726-3-DIS]
ISO/DIS 23726-3 Automation systems and integration — Ontology based interoperability - Part 3: Industrial data ontology. International Organization for Standardization (ISO). September 2025. Published. URL: https://www.iso.org/standard/87560.html
[Lefrancois-et-al-2017]
The SEAS Knowledge Model. Maxime Lefrançois; Jarmo Kalaoja; Takoua Ghariani; Antoine Zimmermann. ITEA2 12004 Smart Energy Aware Systems. 2017. Deliverable 2.2. URL: https://w3id.org/seas/SEAS-D2_2-SEAS-Knowledge-Model.pdf
[OBOE]
OBOE: the Extensible Observation Ontology, version 1.1. Mark Schildhauer; Matthew B. Jones; Shawn Bowers; Joshua Madin; Sergeui Krivov; Deana Pennington; Ferdinando Villa; Benjamin Leinfelder; Christopher Jones; Margaret O'Brien. 2016. URL: http://dx.doi.org/10.5063/F11C1TTM
[OM-Lite]
Ontology for observations and sampling features, with alignments to existing models. S.J.D. Cox. Semantic Web. 2017. URL: http://content.iospress.com/articles/semantic-web/sw214
[Project-PROV]
A Project Ontology. Simon J D Cox. 2017. URL: https://linked.data.gov.au/def/project/
[prov-dm]
PROV-DM: The PROV Data Model. Luc Moreau; Paolo Missier. W3C. 30 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/prov-dm/
[prov-o]
PROV-O: The PROV Ontology. Timothy Lebo; Satya Sahoo; Deborah McGuinness. W3C. 30 April 2013. W3C Recommendation. URL: https://www.w3.org/TR/prov-o/
[prov-overview]
PROV-Overview. Paul Groth; Luc Moreau. W3C. 30 April 2013. W3C Working Group Note. URL: https://www.w3.org/TR/prov-overview/
[QUDT]
Quantities, Units, Dimensions and Types (QUDT). 2011. URL: https://doi.org/10.25504/FAIRsharing.d3pqw7
[SAREF]
ETSI TS 103 264 V4.1.1 (2025-03): SmartM2M; Smart Applications; Reference Ontology and oneM2M Mapping. ETSI. March 2025. Published. URL: http://www.etsi.org/deliver/etsi_ts/103200_103299/103264/04.01.01_60/ts_103264v040101p.pdf
[SAREF_Patterns]
SmartM2M; SAREF reference ontology patterns. ETSI. January 2024. Published. URL: http://www.etsi.org/deliver/etsi_ts/103500_103599/103548/01.02.01_60/ts_103548v010201p.pdf
[schema-org]
Schema.org. W3C Schema.org Community Group. W3C. 6.0. URL: https://schema.org/
[SDW-BP]
Spatial Data on the Web Best Practices. Payam Barnaghi; Jeremy Tandy; Linda van den Brink; Timo Homburg. W3C. 19 September 2023. DNOTE. URL: https://www.w3.org/TR/sdw-bp/
[SensorML]
SensorML: Model and XML Encoding Standard 2.0. Mike Botts; Alex Robin. OGC. 2014. OGC Encoding Standard. URL: http://portal.opengeospatial.org/files/55939
[shacl]
Shapes Constraint Language (SHACL). Holger Knublauch; Dimitris Kontokostas. W3C. 20 July 2017. W3C Recommendation. URL: https://www.w3.org/TR/shacl/
[SSN-PROV]
Sensor Data Provenance: SSNO and PROV-O Together at Last. Michael Compton; David Corsar; Kerry Taylor. CEUR: 7th International Conference on Semantic Sensor Networks. 2014. URL: http://ceur-ws.org/Vol-1401/paper-05.pdf
[SSNX]
Semantic Sensor Network Ontology. W3C Semantic Sensor Network Incubator Group. W3C. 2011. URL: https://www.w3.org/2005/Incubator/ssn/ssnx/ssn
[SSNX-Paper]
The SSN ontology of the W3C semantic sensor network incubator group. Michael Compton; Payam Barnaghi; Luis Bermudez; Raúl García-Castro; Oscar Corcho; Simon Cox; John Graybeal; Manfred Hauswirth; Cory Henson; Arthur Herzog; Vincent Huang; Krzysztof Janowicz; W. David Kelsey; Danh Le Phuoc; Laurent Lefort; Myriam Leggieri; Holger Neuhaus; Andriy Nikolov; Kevin Page; Alexandre Passant; Amit Sheth; Kerry Taylor. Web Semantics: Science, Services and Agents on the World Wide Web, 17:25-32. December 2012. URL: http://www.sciencedirect.com/science/article/pii/S1570826812000571
[SSO-Pattern]
The Stimulus-Sensor-Observation Ontology Design Pattern and its Integration into the Semantic Sensor Network Ontology. Krzysztof Janowicz; Michael Compton. CEUR: Proceedings of the 3rd International Workshop on Semantic Sensor Networks (SSN10). 2010. URL: http://ceur-ws.org/Vol-668/paper12.pdf
[STA]
OGC SensorThings API (STA). Open Geospatial Consortium. URL: https://www.ogc.org/standard/sensorthings/
[SWE]
Sensor Web Enablement (SWE). Open Geospatial Consortium. URL: https://www.ogc.org/about-ogc/domains/swe/
[SWE-Common]
OGC® SWE Common Data Model Encoding Standard. Alex Robin. Open Geospatial Consortium. January 2011. URL: https://portal.ogc.org/files/?artifact_id=41157
[SWE-Common-JSON]
JSON Encoding Rules SWE Common / SensorML. Alex Robin. Open Geospatial Consortium. January 2018. URL: https://docs.ogc.org/bp/17-011r2/17-011r2.html
[uml]
OMG Unified Modeling Language. Open Management Group. OMG. 1 March 2015. Normative. URL: http://www.omg.org/spec/UML/
[VIM]
International vocabulary of metrology – Basic and general concepts and associated terms (VIM). BIPM. 2012. 3rd Edition. URL: https://www.bipm.org/documents/20126/2071204/JCGM_200_2012.pdf
[VIM4]
International Vocabulary of Metrology Fourth edition – Second Committee Draft (VIM4 2CD) . BIPM. 31 July 2023. 4th Edition - 2nd Committee Draft. URL: https://www.bipm.org/documents/20126/115700832/VIM4_2CD_clean/c6d0dfb2-ddbf-059e-1f74-9b025c9c59d8
[vocab-dcat-3]
Data Catalog Vocabulary (DCAT) - Version 3. Simon Cox; Andrea Perego; Alejandra Gonzalez Beltran; Peter Winstanley; Riccardo Albertoni; David Browning. W3C. 22 August 2024. W3C Recommendation. URL: https://www.w3.org/TR/vocab-dcat-3/
[vocab-dqv]
Data on the Web Best Practices: Data Quality Vocabulary. Riccardo Albertoni; Antoine Isaac. W3C. 15 December 2016. W3C Working Group Note. URL: https://www.w3.org/TR/vocab-dqv/
[vocab-ssn-20171019]
Semantic Sensor Network Ontology. Armin Haller; Krzysztof Janowicz; Simon Cox; Danh Le Phuoc; Kerry Taylor; Maxime Lefrançois. W3C. 19 October 2017. W3C Recommendation. URL: https://www.w3.org/TR/2017/REC-vocab-ssn-20171019/
[vocab-ssn-ext]
Extensions to the Semantic Sensor Network Ontology. Simon Cox. W3C. 16 January 2020. W3C Working Draft. URL: https://www.w3.org/TR/vocab-ssn-ext/