【问题标题】:How to define composition properties on Protege?如何在 Protege 上定义合成属性?
【发布时间】:2014-06-17 13:12:47
【问题描述】:

我开发了一个包含 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>

【问题讨论】:

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


    【解决方案1】:

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

    partOfhasPart 是否具有传递性实际上是mereology 的问题。在某些领域,它们可能是可传递的,而在其他领域可能不是。您可能对 W3C 的草案 Simple part-whole relations in 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

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

    【讨论】:

    • 谢谢。我已经看过 W3C 的网站,我在这里提问,因为我不明白他们的例子。好的,所以对于传递性和逆,我的例子是正确的。但是我仍然有疑问:要访问我的本体中的所有概念,如果我定义了两个概念之间的 partOf 关系,我是否也必须定义 hasPart ?
    • 您不需要 使用两个属性。您可以定义 partOf 并仅使用它和 inverse(partOf)。不过,有时也有 hasPart 可能会更方便
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多