15

EquivalentClass 和 SubClass 有什么区别?在阅读 OWL 入门时,我发现教程使用 SubClassOf 来声明一个新类,如下

SubClassOf(
  :Teenager
  DataSomeValuesFrom( :hasAge
    DatatypeRestriction( xsd:integer
      xsd:minExclusive "12"^^xsd:integer
      xsd:maxInclusive "19"^^xsd:integer
    )
  )
)

我可以写吗

EquivalentClass(
  :Teenager
  DataSomeValuesFrom( :hasAge
    DatatypeRestriction( xsd:integer
      xsd:minExclusive "12"^^xsd:integer
      xsd:maxInclusive "19"^^xsd:integer
    )
  )
)

反而?

4

3 回答 3

26

当声明它A是 的子类时 B,这限制A了必须继承的所有特性B而不是相反。在您的示例中,A=TeenagerB= hasAge [12:19](我自己的符号,但您明白了)。

这意味着TeenagerOWL 本体中的任何实例都必须还必须hasAge具有值在范围内的属性[12:19],但反之不然。具体来说,这并不意味着任何具有属性hasAge值在范围内的东西[12:19]的实例也是Teenager. 为了清楚起见,请考虑cclass 的一个实例(称为 )Car。我们也可以这样说:

c . hasAge 13

这表示该实例cCar13 岁。然而,根据Teenager上面定义的子类公理,推理器不会推断出它也是cTeenager也许我们想要的,如果青少年是,而不是汽车)的一个实例。

使用等价的区别在于子类关系隐含在 两个方向上。因此,如果我们改为包含第二个公理,该公理定义Teenager等同于任何具有hasAge值在 range 中的属性[12:19],那么推理器会推断出 carc也是 的一个实例Teenager

于 2010-11-17T05:43:35.880 回答
5

等效类可能具有相同的成员,例如,

:USPresident owl:equivalentClass :USCommanderInChief

都将拥有相同的个人(所有或部分美国总统)。因此,如果我们断言约翰亚当斯是美国总司令,那么可以推断约翰亚当斯也是美国总统。

使用子类,我们表示层次结构。例如,GrannySmithApple 是 Apple 的一种。

于 2012-04-25T18:43:07.567 回答
5
:USPresident owl:equivalentClass :USCommanderInChief .

是相同的

:USPresident rdfs:subClassOf :USCommanderInChief ;
:USCommanderInChief rdfs:subClassOf :USPresident .
于 2018-07-29T19:24:19.050 回答