如何在Protege上定义组合属性?

时间:2014-06-17 13:12:48

标签: rdf semantic-web owl protege description-logic

我开发了一个带有hasPart和partOf的组合的本体。 我必须将这些属性用于多个类。 所以,我创建了没有域或范围的theses属性,我通过owl对类的限制来使用它们。这是正确的 ? 而且,我读到partOf是传递性的。 我也应该为hasPart添加传递吗?

然后,我将hasPart定义为partOf的反转。 我应该在hasPart中定义逆吗?

示例:

    <owl:ObjectProperty rdf:about="&myontology;hasPart">
       <rdfs:label xml:lang="en">hasPart</rdfs:label>
       <rdfs:label xml:lang="fr">aCommePartie</rdfs:label>
     </owl:ObjectProperty>

    <owl:ObjectProperty rdf:about="&myontology;partOf">
       <rdf:type rdf:resource="&owl;TransitiveProperty"/>
       <rdfs:label xml:lang="en">partOf</rdfs:label>
       <rdfs:label xml:lang="fr">estPartieDe</rdfs:label>
       <owl:inverseOf rdf:resource="&excelfile;hasPart"/>
    </owl:ObjectProperty>

    <owl:Class rdf:about="&myontology;A">
       <rdfs:subClassOf>
           <owl:Restriction>
               <owl:onProperty rdf:resource="&myontology;hasPart"/>
               <owl:someValuesFrom rdf:resource="&myontology;B"/>
           </owl:Restriction>
       </rdfs:subClassOf>
    </owl:Class>

    <owl:Class rdf:about="&myontology;B">
       <rdfs:subClassOf>
           <owl:Restriction>
               <owl:onProperty rdf:resource="&myontology;partOf"/>
               <owl:someValuesFrom rdf:resource="&myontology;A"/>
           </owl:Restriction>
       </rdfs:subClassOf>
    </owl:Class>

1 个答案:

答案 0 :(得分:1)

  

我开发了一个带有hasPart和partOf的组合的本体。我必须   将这些属性用于多个类。所以,我创造了论文   没有域名和范围的属性我通过猫头鹰限制使用它们   在课堂上。这是正确的 ?而且,我读到partOf是传递性的。   我也应该为hasPart添加传递吗?

partOf hasPart 是否具有传递性,实际上是mereology的问题。在某些领域,它们可能具有传递性,而在其他领域则可能不具有传递性。您可能对W3C的草案Simple part-whole relations in OWL Ontologies感兴趣,关于代表这些类型的关系。

在任何情况下,如果您使用推理器,仅在一个地方声明反向关系就足够了。当你说p是q的倒数时,你说p(x,y)当且仅当 q(y,x),并且因为它是if和only if关系,你只需要说一次。

对于传递性,它可能不那么清楚,但你可以推断,如果属性p是可传递的,那么它的反函数也是如此。因此,如果q是p的倒数,并且p是可传递的,那么q是:

q(y,x)  q = inverse(p)  q(z,y)  q = inverse(p)
----------------------  -----------------------
      p(x,y)                  p(y,z)             transitive(p)
      --------------------------------------------------------
                   p(x,z)                                       q = inverse(p)
                   -----------------------------------------------------------
                                       q(z,x)

顺便说一下,你在问题中提到了“组成”一词。据我所知,你的意思是这些属性表明某些东西是由其他东西组成的。术语组合在处理属性时也有另一种含义。例如,hasGrandparent属性是hasParent属性的组合及其自身

  

hasGrandparent≡hasParent∘hasParent

同样,hasUncle属性是hasParent和hasBrother的组合

  

hasUncle≡hasParent∘hasBrother

(请注意,这种组合符号与典型的function composition符号相反,但它是Protégé和OWL的标准。)