Recently, I went through the blog of Markus Stocker where he explains nicely how to represent sensor observations while using observation module of SSN Ontology. I understood his explanations fully but one thing I found redundant to represent two features (here CO2 and H20 concentrations as shown in below table) of a row with two separate observations as shown in rdf file at link.
I am trying to represent these two features with one observation within rdf file.This will reduce the size of rdf file and remove redundancy.
In other words how can I replace
<owl:NamedIndividual rdf:about="http://envi.uef.fi/saicos#o1">
<rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Observation"/>
<ssn:featureOfInterest rdf:resource="http://envi.uef.fi/saicos#ambientAir"/>
<ssn:observedPropertyrdf:resource="http://envi.uef.fi/saicos#massFractionCO2"/>
<ssn:observationResultTime rdf:resource="http://envi.uef.fi/saicos#rt1"/>
<ssn:observationResult rdf:resource="http://envi.uef.fi/saicos#so1"/>
<ssn:observedBy rdf:resource="http://envi.uef.fi/saicos#theLinnansuoLI-7500"/>
</owl:NamedIndividual>
and
<owl:NamedIndividual rdf:about="http://envi.uef.fi/saicos#o2">
<rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Observation"/>
<ssn:featureOfInterest rdf:resource="http://envi.uef.fi/saicos#ambientAir"/>
<ssn:observedProperty rdf:resource="http://envi.uef.fi/saicos#massFractionH2O"/>
<ssn:observationResultTime rdf:resource="http://envi.uef.fi/saicos#rt2"/>
<ssn:observationResult rdf:resource="http://envi.uef.fi/saicos#so2"/>
<ssn:observedBy rdf:resource="http://envi.uef.fi/saicos#theLinnansuoLI-7500"/>
</owl:NamedIndividual>
with
<owl:NamedIndividual rdf:about="http://www.exampleMarkusStocker.com#ob1">
<rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Observation"/>
<ssn:observationResult rdf:resource="http://www.exampleMarkusStocker.com#S01"/>
<ssn:observationResult rdf:resource="http://www.exampleMarkusStocker.com#S012"/>
<ssn:featureOfInterest rdf:resource="http://www.exampleMarkusStocker.com#ambientAir"/>
<ssn:observedProperty rdf:resource="http://www.exampleMarkusStocker.com#massFractionCo2"/>
<ssn:observedProperty rdf:resource="http://www.exampleMarkusStocker.com#massFractionH2o"/>
<ssn:observationResultTime rdf:resource="http://www.exampleMarkusStocker.com#rt1"/>
<ssn:observedBy rdf:resource="http://www.exampleMarkusStocker.com#theLinnansuoLI-7500"/>
</owl:NamedIndividual>
This will definitely remove some redundant statements.
The problem with the approach is that you don't know which observation result (and value) relates to which property in the observation. For more discussion about this issue, you may want to read the Multiple values in one observation thread from the public-xg-ssn@w3.org mailing list.