繁体   English   中英

如何在OWL类中添加2个subclassof?

[英]How do you add 2 subclassof's in an OWL class?

在此处输入图片说明

我正在尝试为佳能相机做课堂陈述。 但是我不知道佳能相机类中是否允许2个subclassOf语句同时指向“相机”和“佳能产品”。

这是我到目前为止的内容:

<owl:Class rdf:ID=”product”>
    <rdfs:comment>Products form a class. </rdfs:comment>
</owl:Class>

<owl:Class rdf:ID=”Camera”>
    <rdfs:comment>Photography device</rdfs:comment>
    <rdfs:label>Device</rdfs:label>
    <rdfs:subClassOf rdf:resource=”#product”/>
</owl:Class>

<owl:Class rdf:ID=”Canon Product”>
    <rdfs:comment>A canon device</rdfs:comment>
    <rdfs:label>Device</rdfs:label>
    <rdfs:subClassOf rdf:resource=”#product”/>
</owl:Class>

我需要知道这是否可行并且正确:

<owl:Class rdf:ID="Canon Camera">
    <rdfs:comment>A canon camera</rdfs:comment>
    <rdfs:subClassOf rdf:resource="#Canon Product"/>
    <rdfs:subClassOf rdf:resource="#Camera"/>
</owl:Class>

谢谢 :)

除了在IRI中空格不是合法字符(因此#Canon ProductCanon Camera在语法上不是合法标识符)这一事实之外,您的示例很好。 您已经表达了一个本体,在该本体中, Canon Camera每个实例都被推断为Canon ProductCamera的实例。

但是请注意, 尚未捕获的是相反的推论:您的模型并不表示“相机”和“佳能产品”两者始终都是“佳能相机”。

如果还想捕获这种逆关系,则需要使用特定于OWL的构造,而不仅仅是添加rdfs:subClassOf关系。 一种简单的表达方式是使用owl:intersectionOf ,如下所示:

<owl:Class rdf:ID="CanonCamera">
    <rdfs:comment>A canon camera</rdfs:comment>
    <owl:intersectionOf rdf:parseType="Collection">
      <owl:Class rdf:about="#CanonProduct"/>
      <owl:Class rdf:about="#Camera"/>
    </owl:intersectionOf>
</owl:Class>

或使用Turtle语法(比RDF / XML更容易阅读):

  :CanonCamera a owl:Class ;
      owl:intersectionOf ( :CanonProduct :Camera ) .

这是说的类扩展:CanonCamera 正好等于的类外延的交集:CanonProduct:Camera 换一种说法:

  1. 两者都是一个万物:CanonProduct:Camera被推断为一个:CanonCamera
  2. :CanonCamera所有事物都推断为:CanonProduct:Camera

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM