1

我开发了一个本体,其组成为 hasPart 和 partOf。我必须将这些属性用于多个类。因此,我创建了没有域和范围的这些属性,并通过 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>
4

1 回答 1

2

我开发了一个本体,其组成为 hasPart 和 partOf。我必须将这些属性用于多个类。因此,我创建了没有域和范围的这些属性,并通过 owl 对类的限制来使用它们。这是正确的 ?此外,我读到 partOf 是可传递的。我也应该为 hasPart 添加传递吗?

partOfhasPart是否具有传递性实际上是一个分问题。在某些领域,它们可能是可传递的,而在其他领域可能不是。您可能对 W3C 的草案“OWL Ontologies 中的简单部分-整体关系”很感兴趣,关于表示这些类型的关系。

无论如何,如果您使用推理器,只需在一个地方声明反向关系就足够了。当你说 p 是 q 的逆时,你是在说 p(x,y)当且仅当q(y,x),因为它是一个当且仅当的关系,你只需要说一次.

对于传递性,它可能不那么清楚,但你可以推断,如果一个属性 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

(请注意,这种组合表示法与典型的函数组合表示法相反,但它是 Protégé 和 OWL 的标准。)

于 2014-06-17T14:46:47.837 回答