Warning:
This wiki has been archived and is now read-only.
Property and Observable Property
PLEASE NOTE THAT WE HAVE AGREED ON OPTION 6 DURING CALL 21/02
- Resolution 1. Observable Property in sosa, Property in ssn, old SSN Property equivalent with ssn:Property as of Option 6 (a derivation of Option 5 several people have already indicated their +1) on wiki: https://www.w3.org/2015/spatial/wiki/Property_and_Observable_Property
- ACTION-269 consists in implementing this resolution on GitHub
- Pull request https://github.com/w3c/sdw/pull/572 implements ACTION-269
Contents
- 1 Requirements, questions
- 2 votes and options
- 3 Contributions
- 4 Option 1: Observable Property defined in sosa, no new term in SSN, old SSN Property equivalent with sosa:ObservableProperty
- 5 Option 2: Property defined in sosa, no new term in SSN, old SSN Property subclass of sosa:Property
- 6 Option 3: Observable Property and Property both defined in sosa, old SSN Property equivalent with sosa:ObservableProperty
- 7 Option 4: Observable Property and Property both defined in sosa, old SSN Property equivalent with sosa:ObservableProperty
- 8 Option 5: Observable Property in sosa, Property in ssn, old SSN Property equivalent with sosa:ObservableProperty
- 9 Winning: Option 6: Observable Property in sosa, Property in ssn, old SSN Property equivalent with ssn:Property
Requirements, questions
- Backward compatibility: valid old SSN data must become valid sosa data
- should we keep the old SSN definition
- given old SSN data, `SELECT * WHERE {?x a sosa:ObservableProperty }` should return all of the instances of `oldssn:Property` ?
- Old SSN users have used `oldssn:Property` knowing it's just for properties that are observable?
- sosa takes into account Actuators
- should we stick to only properties that are observable?
- ssn takes into account other properties (in particular of sensors) that are not necessarily observable
- ssn:MeasurementProeprty ssn:OperatingProperty, ssn:SurvivalProperty
- a FeatureOfInterest may have properties may have non-observable properties
- name, owner, scheduled-service-date, catalogue-number, lot-number
- definitions of sosa are imported in ssn
- should we avoid adding a new definition in snn for a term that is already defined in sosa?
- should we avoid having definitions in sosa that become too specific or false in ssn?
votes and options
- one or two concepts in the new namespace(s) ?
- if one concept, "ObservableProperty" or "Property" ?
- what is the alignment for the old term ?
Contributions
It would be good that the definitions are frozen after the votes. Please contribute to them here.
Option 1: Observable Property defined in sosa, no new term in SSN, old SSN Property equivalent with sosa:ObservableProperty
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; owl:equivalentClass sosa:ObservableProperty ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:ObservableProperty a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An observable quality of a FeatureOfInterest."""@en ; rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:ObservableProperty skos:definition """A Quality of a FeatureOfInterest that is observable, actuable, or ... That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] .
Pro
- given old SSN data, `SELECT * WHERE {?x a sosa:ObservableProperty }` does return all of the instances of `oldssn:Property`
Cons
- `sosa:ObservableProperty` does not take into account properties that are not observable, and does not appear to be a valid super-class for all of the current ssn:*Property classes
- ssn imports sosa, hence two contradictory definitions of sosa:ObservableProperty
Option 2: Property defined in sosa, no new term in SSN, old SSN Property subclass of sosa:Property
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; rdfs:subClassOf sosa:Property ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:Property a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An aspect of an entity that is intrinsic to and cannot exist without the entity. It may be observable, actionable, forecasted, ..."""@en ; rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:Property rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] .
Pro
- given old SSN data, `SELECT * WHERE {?x a sosa:Property }` does return all of the instances of `oldssn:Property`
- `sosa:Property` takes into account properties that are not observable, hence those that are actuable but not observable, and does not appear to be a valid super-class for all of the current ssn:*Property classes.
Cons
- no specific concept for properties that are observable, mismatch with O&M ?
Option 3: Observable Property and Property both defined in sosa, old SSN Property equivalent with sosa:ObservableProperty
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; owl:equivalentClass sosa:ObservableProperty ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:ObservableProperty a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An observable quality of a FeatureOfInterest."""@en ; rdfs:isDefinedBy sosa: . sosa:Property a owl:Class ; rdfs:label "Property"@en ; skos:definition """A Quality of a FeatureOfInterest that is observable, actuable, or ... That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; # TODO: check, this is a proposal. rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:ObservableProperty rdfs:subClassOf sosa:Property . sosa:Property rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] .
Pro
- `sosa:Property` now takes into account properties that are not observable, hence those that are actuable but not observable.
- given old SSN data, `SELECT * WHERE {?x a sosa:ObservableProperty }` does return all of the instances of `oldssn:Property`
Cons
- given old SSN data and SOSA entailment regime, `SELECT * WHERE {?x a sosa:Property }` *does not* return the instances of `oldssn:Property`
- given old SSN data and SSN entailment regime, `SELECT * WHERE {?x a sosa:Property }` does return the instances of `oldssn:Property`
Option 4: Observable Property and Property both defined in sosa, old SSN Property equivalent with sosa:ObservableProperty
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; owl:equivalentClass sosa:ObservableProperty ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:ObservableProperty a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An observable quality of a FeatureOfInterest."""@en ; sosa:ObservableProperty rdfs:subClassOf sosa:Property . rdfs:isDefinedBy sosa: . sosa:Property a owl:Class ; rdfs:label "Property"@en ; skos:definition """A Quality of a FeatureOfInterest that is observable, actuable, or ... That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; # TODO: check, this is a proposal. rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:Property rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] .
Pro
- `sosa:Property` now takes into account properties that are not observable, hence those that are actuable but not observable.
- given old SSN data, `SELECT * WHERE {?x a sosa:ObservableProperty }` does return all of the instances of `oldssn:Property`
- given old SSN data and SOSA entailment regime, `SELECT * WHERE {?x a sosa:Property }` does return the instances of `oldssn:Property`
- given old SSN data and SSN entailment regime, `SELECT * WHERE {?x a sosa:Property }` does return the instances of `oldssn:Property`
Cons
Option 5: Observable Property in sosa, Property in ssn, old SSN Property equivalent with sosa:ObservableProperty
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; owl:equivalentClass sosa:ObservableProperty ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:ObservableProperty a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An observable quality of a FeatureOfInterest."""@en ; rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:ObservableProperty rdfs:subClassOf ssn:Property . ssn:Property a owl:Class ; rdfs:label "Property"@en ; skos:definition """A Quality of a FeatureOfInterest that is observable, actuable, or ... That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; # TODO: check, this is a proposal. skos:definition """A Quality of a FeatureOfInterest. An aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; # TODO: check, this is a proposal, modified by Simon Cox (talk) 23:05, 12 February 2017 (UTC) . rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] ; rdfs:isDefinedBy ssn: .
Pro
- still a concept called `ssn:Property`
- `ssn:Property` now takes into account properties that are not observable, including those that are actuable but not observable. # minor tweak by Simon Cox (talk) 23:05, 12 February 2017 (UTC)
- given old SSN data, `SELECT * WHERE {?x a sosa:ObservableProperty }` does return all of the instances of `oldssn:Property`
- given old SSN data, `SELECT * WHERE {?x a ssn:Property }` does return all of the instances of `oldssn:Property`
Cons
- this solution makes oldssn:MeasurementProperty, oldssn:OperatingProperty, oldssn:SurvivalProperty observable, among other.
Question
Did the old SSN also include the ssnx:*Property classes? Are they all valid subclasses of sosa:ObservableProperty?
- In Option 5 they would all be subclasses of ssn:Property. If they are all valid subclasses of ObservableProperty we can remove ssn:Property altogether. Maybe that is where you were going with, with your question?
Simon Cox (talk) 03:52, 10 February 2017 (UTC)
Kerry: I am worried about this. This makes all instances of (e.g. oldssn:MeasurementProperty)s become sosa:ObservableProperty, when they were only oldssn:Property before. And also when we have that newssn:MeasurementProperty is not necessarily sosa:ObservableProperty. If "observationProperty" means anything at all (and I am totally unconvinced that it does), then this must be wrong? e.g. any oldssn:Accuracy instance becomes a sosa:ObservableProperty. Having said that, by definition any newssn:Property, including Accuracy and SurvivalRange and BatteryPower has to be a proporty of a FeatureofInterest....(and the FoI would often be a sensor or a system).
Kerry: Is there something we can do in ssnx to say that instances of oldssn:Property only become instances of sosa:ObservableProperty when they are the oldssn:observedProperty of an oldssn:Observation? Can we be more careful in ssnx, say, "sosa:ObservableProperty \sqsubseteq \exists oldssn:observedProperty \union \exists observes" ? Does that work?
Kerry: Doesn't the ssn:observation and ssn:Sensor definitions have to be rewritten to account for observableproperties too? not sure whether this might mess up hasMeasurementCapability and forProperty too.....
Kerry: the rdfs:comment for ssn:Property need to broaden to recognise all the other uses of Property. Arguably it was already too narrow in ssn as it seeed to describe only the observable subcase. How about "An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity."
Kerry: what is this doing in ssn.ttl here?: "sosa:Property rdfs:subClassOf ..." does sosa have a Property?
- Maxime: this was an error, I updated this.
Winning: Option 6: Observable Property in sosa, Property in ssn, old SSN Property equivalent with ssn:Property
ssnx.ttl
oldssn:Property a owl:Class ; rdfs:label "Property"@en ; # added @en skos:definition """An observable Quality of an Event or Object. That is, not a Quality of an abstract entity, but rather an aspect of an entity that is intrinsic to and cannot exist without the entity and that is observable by a sensor."""@en ; # changed for skos:definition, added @en, kept the content of old SSN dcterms:source """skos:exactMatch 'property' [O&M] http://www.opengeospatial.org/standards/om""" ; # kept the same as in old SSN rdfs:seeAlso "http://www.w3.org/2005/Incubator/ssn/wiki/SSN_Skeleton#Skeleton" ; # kept the same as in old SSN owl:deprecated true ; owl:equivalentClass ssn:Property ; rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn> . # kept the same as in old SSN
sosa.ttl
sosa:ObservableProperty a rdfs:Class , owl:Class ; rdfs:label "Observable Property"@en ; skos:definition """An observable quality of a FeatureOfInterest."""@en ; rdfs:isDefinedBy sosa: .
ssn.ttl
sosa:ObservableProperty rdfs:subClassOf ssn:Property . ssn:Property a owl:Class ; rdfs:label "Property"@en ; skos:definition """A Quality of a FeatureOfInterest. An aspect of an entity that is intrinsic to and cannot exist without the entity."""@en ; rdfs:subClassOf [ owl:onProperty sosa:isPropertyOf ; owl:someValuesFrom sosa:FeatureOfInterest ] ; rdfs:isDefinedBy ssn: .
Pro
- still a concept called `ssn:Property`
- `ssn:Property` now takes into account properties that are not observable, including those that are actuable but not observable.
- given old SSN data, `SELECT * WHERE {?x a ssn:Property }` does return all of the instances of `oldssn:Property`
- this solution does not make oldssn:MeasurementProperty, oldssn:OperatingProperty, oldssn:SurvivalProperty observable.
- given old SSN data and the SSN semantics, `SELECT * WHERE {?x a ssn:Property }` returns all of the instances of `oldssn:Property`
Cons
- given old SSN data and the SOSA semantics, `SELECT * WHERE {?x a ssn:Property }` does not return all of the instances of `oldssn:Property`