OWL的EquivalentClass与SubClassOf

Jef*_*y04 10 owl

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

SubClassOf(
  :Teenager
  DataSomeValuesFrom( :hasAge
    DatatypeRestriction( xsd:integer
      xsd:minExclusive "12"^^xsd:integer
      xsd:maxInclusive "19"^^xsd:integer
    )
  )
)
Run Code Online (Sandbox Code Playgroud)

我能写吗?

EquivalentClass(
  :Teenager
  DataSomeValuesFrom( :hasAge
    DatatypeRestriction( xsd:integer
      xsd:minExclusive "12"^^xsd:integer
      xsd:maxInclusive "19"^^xsd:integer
    )
  )
)
Run Code Online (Sandbox Code Playgroud)

代替?

sha*_*rky 21

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

这意味着TeenagerOWL本体中的任何实例都必须具有hasAge该范围内的值的属性[12:19],而不是相反.具体来说,这并不意味着hasAge具有该范围内值的属性的任何实例[12:19]也是一个实例Teenager.为了清楚起见,考虑一个c类的实例(被称为)Car.我们也可以这样说:

c . hasAge 13

这是说实例cCar是13岁.然而,由于Teenager上面定义的子类公理,推理不会推断这c也是一个例子Teenager(如果我们想要的话,如果青少年是,而不是汽车).

使用等价时的区别在于子类关系隐含在 两个方向上.因此,如果我们改为包含第二个公理,该第二个公理Teenager被定义为等同于具有hasAge该范围内值的属性的任何东西[12:19],那么推理者将推断该汽车c也是一个实例Teenager.


小智 5

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

:USPresident owl:equivalentClass :USCommanderInChief
Run Code Online (Sandbox Code Playgroud)

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

对于子类,我们表示一个层次结构。例如,GrannySmithApple 是一种 Apple。


Pau*_*aul 5

:USPresident owl:equivalentClass :USCommanderInChief .
Run Code Online (Sandbox Code Playgroud)

是相同的

:USPresident rdfs:subClassOf :USCommanderInChief ;
:USCommanderInChief rdfs:subClassOf :USPresident .
Run Code Online (Sandbox Code Playgroud)