最近,我浏览了Markus Stocker的博客,在那里他很好地解释了如何在使用observation Ontology的SSN模块时表示传感器观察。我完全理解他的解释,但有一件事我发现多余的东西代表了两个特征(这里的CO2和H2O浓度如下表所示) 行有两个单独的观察,如link的rdf文件所示。
我试图在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>
这肯定会删除一些冗余的陈述。
答案 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有关。)