用一个观察值表示两个 properties/features

Representing two properties/features with one observation

最近浏览了Markus Stocker where he explains nicely how to represent sensor observations while using observation module of SSNOntology的博客。我完全理解他的解释,但我发现有一件事多余地代表了一个的两个特征(这里的 CO2 和 H20 浓度如下所示 table) link 处的 rdf 文件中显示的具有两个单独观察值的行。

我试图用 rdf 中的一项观察来表示这两个特征 file.This 将减小 rdf 文件的大小并删除冗余。

换句话说,我该如何替换

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

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

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

这肯定会删除一些多余的语句。

该方法的问题在于您不知道哪个观察结果(和值)与观察中的哪个 属性 相关。有关此问题的更多讨论,您可能需要阅读 public-xg-ssn@w3.org 邮件列表中的 Multiple values in one observation 主题。

如果你这样做(修剪):

<owl:NamedIndividual rdf:about="http://www.exampleMarkusStocker.com#ob1">
  <ssn:observationResult rdf:resource="http://www.exampleMarkusStocker.com#S01"/>
  <ssn:observationResult rdf:resource="http://www.exampleMarkusStocker.com#S012"/>
  <ssn:observedProperty rdf:resource="http://www.exampleMarkusStocker.com#massFractionCo2"/>
  <ssn:observedProperty rdf:resource="http://www.exampleMarkusStocker.com#massFractionH2o"/>
</owl:NamedIndividual>

那么你有四个三元组。你有

:obj1 ssn:observationResult :S01, :S012 ;
      ssn:observedProperty :massFractionC02, :massFractionH2o .

但是你怎么知道 :S01 应该适合 :massFractionCo2 还是 :massFractionH2o?您如何知道 :S012 应该适合 :massFractionCo2 还是 :massFractionH2o?你不能根据任何顺序来做,因为 RDF 图是一个 set 的三元组;没有顺序(即使任何文本表示显然必须按某种顺序编写三元组)。

这样做并不会消除任何冗余,只会引入歧义。

有一个提案 https://w3c.github.io/sdw/proposals/ssn-extensions/ 解决了这个问题:您制作 ssn-ext:ObservationCollection 并修复了一些属性,并保留 ssn:Observation 改变其余属性和结果。

这完全类似于使用 qb:Slice 来减少 CUBE ontology 中的数据。

(我认为上面使用的是 OldSSN,而 ssn-ext 与新的 SSN 相关。)