用一个观察表示两个属性/特征

时间:2015-03-20 06:42:16

标签: rdf owl ontology protege

最近,我浏览了Markus Stocker的博客,在那里他很好地解释了如何在使用observation Ontology的SSN模块时表示传感器观察。我完全理解他的解释,但有一件事我发现多余的东西代表了两个特征(这里的CO2和H2O浓度如下表所示) 行有两个单独的观察,如link的rdf文件所示。

img

我试图在rdf文件中用一个观察来表示这两个特征。这将减小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>

这肯定会删除一些冗余的陈述。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

如果你这样做(修剪):

<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图是三元组的;没有顺序(即使任何文字表示显然必须以某种顺序写三元组)。

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

答案 2 :(得分:0)

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

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

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