Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

252 remove propertyofinterest #274

Merged
merged 9 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 2 additions & 77 deletions ssn/chapters/Common.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ <h5>Specification</h5>
<p>
<a href="#SOSAFeatureOfInterest">sosa:FeatureOfInterest</a>
, <a href="#SOSAProperty">sosa:Property</a>
, <a href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a>
, <a href="#SOSAforProperty">sosa:forProperty</a>
, <a href="#SOSAhasProperty">sosa:hasProperty</a>
, <a href="#SOSAisFeatureOfInterestOf">sosa:isFeatureOfInterestOf</a>
Expand Down Expand Up @@ -206,76 +205,6 @@ <h6><a href="#SOSAProperty">sosa:Property</a></h6>
</div>
</section>

<section class="informative specterm sosa" id="SOSAPropertyOfInterest" about="sosa:PropertyOfInterest"
typeof="owl:Class">
<h6><a href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a></h6>
<p class="crossreference"><strong>IRI:</strong> http://www.w3.org/ns/sosa/PropertyOfInterest</p>
<p><strong>an OWL Class</strong></p>
<p class="note">PropertyOfInterest added in the 2024 .
This term is non-normative, pending further implementation experience</p>
<p>
<em property="rdfs:label">Property Of Interest</em> -
<span property="skos:definition">An identifiable quality of a specific
<a href="#SOSAFeatureOfInterest">FeatureOfInterest</a> that can be observed or acted upon.
A property of interest is tied to a specific <a href="#SOSAFeatureOfInterest">FeatureOfInterest</a>.
It is inherent to and cannot exist without that feature of interest.</span>
</p>
<table>
<tbody>
<tr>
<th>Example</th>
<td><span about="sosa:PropertyOfInterest" property="skos:example">Abby's car has the
colour red, where "the colour of Abby's car" is a property of interest.</span></td>
</tr>
<tr>
<th>Note</th>
<td><span about="sosa:PropertyOfInterest" property="skos:note">Properties of interest
need not always be explicitly identified. It depends on the use case.</span></td>
</tr>
<tr class="ssn">
<th class="restrictions">Restrictions:</th>
<td>
<span about="sosa:PropertyOfInterest" rel="rdfs:subClassOf"
resource="[_:SOSAPropertyOfInterest1]"></span>
<span about="[_:SOSAPropertyOfInterest1]" typeof="owl:Restriction"></span>
<span about="[_:SOSAPropertyOfInterest1]" rel="owl:onProperty"
resource="sosa:isPropertyOf"><a href="#SOSAisPropertyOf">sosa:isPropertyOf</a></span>
<span about="[_:SOSAPropertyOfInterest1]" property="owl:allValuesFrom"
resource="sosa:FeatureOfInterest"><em><b>ONLY</b></em> <a
href="#SOSAFeatureOfInterest">sosa:FeatureOfInterest</a></span>
<br>
<span about="sosa:Property" rel="rdfs:subClassOf"
resource="[_:SOSAPropertyOfInterest2]"></span>
<span about="[_:SOSAPropertyOfInterest2]" typeof="owl:Restriction"></span>
<span about="[_:SOSAPropertyOfInterest2]" rel="owl:onProperty"
resource="sosa:isPropertyOf"><a href="#SOSAisPropertyOf">sosa:isPropertyOf</a></span>
<span about="[_:SOSAPropertyOfInterest2]" property="owl:cardinality"
resource="sosa:FeatureOfInterest"><em><b>EXACTLY 1</b></em></span>
</td>
</tr>
<tr>
<th>is Defined By</th>
<td>
<span rel="rdfs:isDefinedBy"><a
href="http://www.w3.org/ns/sosa/common/">http://www.w3.org/ns/sosa/common/</a></span>
</td>
</tr>
</tbody>
</table>
<div class="buttonpanel">
<span>
<span class="sosa" style="display: none;">[<a href="#"
onclick="hide_ssn(false,this.parentElement.parentElement.parentElement.parentElement);return false;">Show
additional SSN axioms</a>]</span>
<span class="ssn">[<a href="#"
onclick="hide_ssn(true,this.parentElement.parentElement.parentElement.parentElement);return false;">Hide
additional SSN axioms</a>]</span>
</span>
<span class="back">[<a href="#Common">Back to module overview</a>]</span>
<span class="back">[<a href="#overview-of-classes-and-properties">Back to top</a>]</span>
</div>
</section>

<section class="specterm" id="SOSAforProperty" about="sosa:forProperty" typeof="owl:ObjectProperty">
<h6><a href="#SOSAforProperty">sosa:forProperty</a></h6>
<p class="crossreference"><strong>IRI:</strong> http://www.w3.org/ns/sosa/forProperty</p>
Expand Down Expand Up @@ -359,9 +288,7 @@ <h6><a href="#SOSAhasProperty">sosa:hasProperty</a></h6>
<th>Range Includes</th>
<td>
<span rel="schema:rangeIncludes" resource="sosa:Property"><a
href="#SOSAProperty">sosa:Property</a></span>,
<span rel="schema:rangeIncludes" resource="sosa:PropertyOfInterest"><a
href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a></span>
href="#SOSAProperty">sosa:Property</a></span>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -458,9 +385,7 @@ <h6><a href="#SOSAisPropertyOf">sosa:isPropertyOf</a></h6>
<th>Domain Includes</th>
<td>
<span rel="schema:domainIncludes" resource="sosa:Property"><a
href="#SOSAProperty">sosa:Property</a></span>,
<span rel="schema:rangeIncludes" resource="sosa:PropertyOfInterest"><a
href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a></span>
href="#SOSAProperty">sosa:Property</a></span>
</td>
</tr>
<tr>
Expand Down
1 change: 0 additions & 1 deletion ssn/chapters/Inverse-properties.html
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,6 @@ <h3>Tabulation of properties and their inverses</h3>
<td><a href="#SOSAisPropertyOf">sosa:isPropertyOf</a></td>
<!-- <td>
<a href="#SOSAProperty">sosa:Property</a>
,<br><a href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a>*
</td> -->
</tr>
<tr>
Expand Down
72 changes: 58 additions & 14 deletions ssn/chapters/ModelPropertyInstance.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,61 @@
<h3>Generic or Specific Instances of sosa:Property</h3>
<p>
The previous edition of SSN [[vocab-ssn-20171019]] left an ambiguity on whether an instance of <a
href="#SOSAProperty"><code>sosa:Property</code></a> should be generic to all features of interest (e.g.,
<code>ex:Temperature</code>, <code>ex:OnOffStatus</code>), or specific to a single feature of interest (e.g.,
<code>&lt;myBodyTemperature&gt;</code>, <code>&lt;LightStatus&gt;</code>).
This version solves the ambiguity by differentiating:
The SSN Ontology does not provide a general pattern for describing observable or actuatable properties.
A number of existing catalogues of properties are available,
such as the <a href="https://www.qudt.org/doc/DOC_VOCAB-QUANTITY-KINDS.html">QUDT catalogue of Quantity Kinds</a>,
or the <a href="https://vocab.nerc.ac.uk/search_nvs/S06/">BODC parameter entity names</a>,
or the <a href="https://esipfed.github.io/sweet/">SWEET Ontology</a>,
or <a href="https://github.com/EnvironmentOntology">The Environment Ontology</a>.
Each of these uses a distinct ontology or way of formalizing the definition of a property, which are suitable for
many applications.
Alternatively, the <a href="https://w3id.org/env/puv">Parameter Usage Vocabulary</a> or
<a href="https://doi.org/10.15497/RDA00071">I-ADOPT</a> may be used to define a new observable or actuatable
property.
The key point is that each individual property is denoted by a URI, which can be used as the value of the
<a href="#SOSAactsOnProperty"><code>sosa:actsOnProperty</code></a> or
<a href="#SOSAobservedProperty"><code>sosa:observedProperty</code></a> of an Execution.
</p>
<ul>
<li>
<a href="#SOSAProperty"><code>sosa:Property</code></a> for the former case, where properties are generic
</li>
<li>
<a href="#SOSAPropertyOfInterest"><code>sosa:PropertyOfInterest</code></a> for the latter case, where
properties are tied to a single entity.
</li>
</ul>
<p>
Most commonly an instance of <a href="#SOSAProperty"><code>sosa:Property</code></a> is generic to many
features of interest (e.g. <code>ex:Temperature</code>, <code>ex:OnOffStatus</code>).
The catalogs mentioned above primarily support this use case.
</p>
<p>
A property may be made specific to a single feature of interest using
<a href="#SOSAisPropertyOf"><code>sosa:isPropertyOf</code></a>
(e.g. <code>ex:SickChildATemperature</code>, <code>ex:LightStatus</code>).
Specific properties of individual features would not usually appear in a catalogue of reusable properties,
but this pattern is used 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.
</p>
<p>
The [[SAREF]] ontologies address this requirement with separate classes:
<code>saref:Property</code> for the general case, and <code>saref:PropertyOfInterest</code> 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
<code>saref:hasPropertyKind</code>,
as shown in the following example:.
</p>
<pre class="example" data-include="./rdf/examples/Temperature-of-interest-specialization.ttl"
data-include-format="text"></pre>
<p>
[[SAREF]] is closely aligned with SSN as <a href="#SAREF-alignment">documented in the alignments chapter</a>
so this may be used in SSN applications.
</p>
<p class="note">
For properties described as SKOS Concepts ([[skos-primer]]), such as in the
<a href="https://vocab.nerc.ac.uk/search_nvs/S06/">BODC parameter entity names</a> catalog,
standard SKOS semantic relations may be useful,
e.g. <a href="http://www.w3.org/2004/02/skos/core#broader"><code>skos:broader</code></a> to relate a specialized
property to the general case.
</p>
<p class="note">
Where <a href="#SOSAactsOnProperty"><code>sosa:actsOnProperty</code></a> or
<a href="#SOSAobservedProperty"><code>sosa:observedProperty</code></a> of an
<a href="#SOSAActuation"><code>sosa:Actuation</code></a> or
<a href="#SOSAObservation"><code>sosa:Observation</code></a> refers to a <em>specific</em> property bound to a
specific feature-of-interest, then the
<a href="#SOSAhasFeatureOfInterest"><code>sosa:hasFeatureOfInterest</code></a> is implied and may be omitted in the
data.
</p>
27 changes: 13 additions & 14 deletions ssn/chapters/SAREF-alignment.html
Original file line number Diff line number Diff line change
Expand Up @@ -76,39 +76,38 @@ <h4>Alignment of SOSA-common to SAREF</h4>
href="https://saref.etsi.org/core/isTargetOf">saref:isTargetOf</a> in </td>
</tr>
<tr>
<td> <a href="#SOSAProperty">sosa:Property</a> </td>
<td> equivalent class </td>
<td> <a href="https://saref.etsi.org/core/Property">saref:Property</a> </td>
<td> subclass of </td>
<td> <a href="#SOSAProperty">sosa:Property</a> </td>
</tr>
<tr>
<td> <a href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a> </td>
<td> equivalent class </td>
<td> <a href="https://saref.etsi.org/core/PropertyOfInterest">saref:PropertyOfInterest</a> </td>
<td> subclass of </td>
<td> <a href="#SOSAProperty">sosa:Property</a> </td>
</tr>
<tr>
<td> <a href="#SOSAisPropertyOf">sosa:isPropertyOf</a> </td>
<td> subproperty of </td>
<td> <a href="https://saref.etsi.org/core/isPropertyOf">saref:isPropertyOf</a> </td>
<td rowspan="2"> subproperty of </td>
<td rowspan="2"> <a href="#SOSAisPropertyOf">sosa:isPropertyOf</a> </td>
</tr>
<tr>
<td> <a href="https://saref.etsi.org/core/isPropertyOfInterestOf">saref:isPropertyOfInterestOf</a> </td>
</tr>
<tr>
<td> <a href="#SOSAhasInput">sosa:hasInput</a> </td>
<td> subproperty of </td>
<td> &lt;http://www.w3.org/ns/sosa/saref#hasInput&gt; </td>
<td rowspan="2"> subproperty of </td>
<td rowspan="2"> &lt;http://www.w3.org/ns/sosa/saref#hasInput&gt; </td>
</tr>
<tr>
<td> <a href="https://saref.etsi.org/core/hasInput">saref:hasInput</a> </td>
<td> subproperty of </td>
<td> &lt;http://www.w3.org/ns/sosa/saref#hasInput&gt; </td>
</tr>
<tr>
<td> <a href="#SOSAhasOutput">sosa:hasOutput</a> </td>
<td> subproperty of </td>
<td> &lt;http://www.w3.org/ns/sosa/saref#hasOutput&gt; </td>
<td rowspan="2"> subproperty of </td>
<td rowspan="2"> &lt;http://www.w3.org/ns/sosa/saref#hasOutput&gt; </td>
</tr>
<tr>
<td> <a href="https://saref.etsi.org/core/hasOutput">saref:hasOutput</a> </td>
<td> subproperty of </td>
<td> &lt;ttp://www.w3.org/ns/sosa/saref#hasOutput&gt; </td>
</tr>
<tr>
<td> <a href="#SOSAExecution">sosa:Execution</a> </td>
Expand Down
3 changes: 1 addition & 2 deletions ssn/chapters/Specification.html
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ <h3>Overview of Classes and Properties</h3>
, <a href="#SOSAActuationCollection">sosa:ActuationCollection</a>*
, <a href="#SOSAActuator">sosa:Actuator</a>
, <a href="#SOSADeployment">sosa:Deployment</a>
, <a href="#SOSAExecution">sosa:Execution</a>
, <a href="#SOSAExecution">sosa:Execution</a>*
, <a href="#SOSAExecutionCollection">sosa:ExecutionCollection</a>*
, <a href="#SOSAFeatureOfInterest">sosa:FeatureOfInterest</a>
, <a href="#SOSAMaterialSample">sosa:MaterialSample</a>*
Expand All @@ -169,7 +169,6 @@ <h3>Overview of Classes and Properties</h3>
, <a href="#SOSAPlatform">sosa:Platform</a>
, <a href="#SOSAProcedure">sosa:Procedure</a>
, <a href="#SOSAProperty">sosa:Property</a>
, <a href="#SOSAPropertyOfInterest">sosa:PropertyOfInterest</a>*
, <a href="#SOSASample">sosa:Sample</a>
, <a href="#SOSASampleCollection">sosa:SampleCollection</a>*
, <a href="#SOSASampler">sosa:Sampler</a>
Expand Down
Binary file modified ssn/images/Thermometer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions ssn/rdf/examples/Temperature-of-interest-specialization.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@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 ;
.
24 changes: 24 additions & 0 deletions ssn/rdf/examples/Temperature-of-interest-subclass.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@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/> .
@prefix unit: <http://qudt.org/vocab/unit/> .

qk:Temperature
rdfs:subClassOf sosa:Property ;
.
ex:SickChildA
a sosa:FeatureOfInterest ;
.
ex:SickChildATemperature
a sosa:Property ;
a qk:Temperature ;
sosa:isPropertyOf ex:SickChildA ;
.
ex:SickChildATempObs
a sosa:Observation ;
sosa:hasSimpleResult "38.2"^^unit:DEG_C ;
sosa:madeBySensor ex:Mums-clinical-thermometer ;
sosa:observedProperty ex:SickChildATemperature ;
.
45 changes: 21 additions & 24 deletions ssn/rdf/examples/Thermometer.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,13 @@
@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 schema: <http://schema.org/> .
@prefix sensor: <https://example.org/sensor/> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix system: <http://www.w3.org/ns/ssn/systems/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ex:SickChildATemperature
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:SickChildA ;
sosa:hasSimpleResult "38.2"^^unit:DEG_C ;
sosa:madeBySensor ex:Mums-clinical-thermometer ;
sosa:observedProperty qk:Temperature ;
.
ex:SickChildA
a sosa:FeatureOfInterest ;
.
ex:Mums-clinical-thermometer
a sosa:Sensor ;
a sensor:Mercury-in-glass-thermometer ;
a sensor:TemperatureSensor ;
.
qk:Temperature
a sosa:Property ;
.
sensor:Mercury-in-glass-thermometer
a owl:Class ;
rdfs:comment "Temperature sensor based on observing the the expansion of a column of mercury inside a glass tube" ;
rdfs:label "A specific type of temperature sensor" ;
rdfs:subClassOf sensor:TemperatureSensor ;
.
sensor:TemperatureSensor
a owl:Class ;
rdfs:label "A generic temperature sensor" ;
Expand All @@ -44,3 +20,24 @@ sensor:TemperatureSensor
owl:onProperty sosa:observes ;
] ;
.
sensor:Mercury-in-glass-thermometer
a owl:Class ;
rdfs:label "Mercury in glass thermometer" ;
rdfs:comment "Temperature sensor based on the expansion of a column of mercury inside a glass tube" ;
rdfs:subClassOf sensor:TemperatureSensor ;
.
ex:Mums-clinical-thermometer
a sosa:Sensor ;
a sensor:TemperatureSensor ;
a sensor:Mercury-in-glass-thermometer ;
.
ex:SickChildA
a sosa:FeatureOfInterest ;
.
ex:SickChildATempObs
a sosa:Observation ;
sosa:hasFeatureOfInterest ex:SickChildA ;
sosa:hasSimpleResult "38.2"^^unit:DEG_C ;
sosa:madeBySensor ex:Mums-clinical-thermometer ;
sosa:observedProperty qk:Temperature ;
.
18 changes: 12 additions & 6 deletions ssn/rdf/ontology/alignments/sosa-saref.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,20 @@ sosa:hasProperty
sosa:isFeatureOfInterestOf
rdfs:subPropertyOf saref:isActedUponBy . # may be renamed saref:isTargetOf in V4.1.1

sosa:Property
owl:equivalentClass saref:Property .
saref:Property
rdfs:subClassOf sosa:Property .

saref:PropertyOfInterest
rdfs:subClassOf sosa:Property ;
rdfs:subClassOf [ a owl:Restriction ; owl:onProperty sosa:isPropertyOf ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ;
rdfs:subClassOf [ a owl:Restriction ; owl:onProperty sosa:isPropertyOf ; owl:allValuesFrom sosa:FeatureOfInterest ] ;
.

sosa:PropertyOfInterest
owl:equivalentClass saref:PropertyOfInterest .
saref:isPropertyOf
rdfs:subPropertyOf sosa:isPropertyOf .

sosa:isPropertyOf
rdfs:subPropertyOf saref:isPropertyOf .
saref:isPropertyOfInterestOf
rdfs:subPropertyOf sosa:isPropertyOf .

<http://www.w3.org/ns/sosa/saref#hasInput> a owl:ObjectProperty ;
rdfs:label "has input"@en ;
Expand Down
Loading