【问题标题】:Representing two properties/features with one observation用一个观察表示两个属性/特征
【发布时间】:2015-03-20 06:42:15
【问题描述】:

最近,我浏览了Markus Stocker 的博客,其中他很好地解释了如何在使用SSN Ontology 的observation 模块时表示传感器观察结果。我完全理解他的解释,但我发现有一个多余的东西代表了一个 有两个单独观察的行,如 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>

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

【问题讨论】:

    标签: rdf owl ontology protege


    【解决方案1】:

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

    【讨论】:

    • 感谢您指向线程。我明白没有必要引入歧义。
    【解决方案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 图是一个 set 三元组;没有顺序(即使任何文本表示显然都必须以某种顺序编写三元组)。

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

    【讨论】:

    • 谢谢Joshua,我明白了。
    【解决方案3】:

    有一个提案https://w3c.github.io/sdw/proposals/ssn-extensions/ 解决了这个问题:你创建ssn-ext:ObservationCollection 并修复一些属性,并持有ssn:Observations 来改变其余属性和结果。

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多