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= Teenager和B= hasAge [12:19](我自己的符号,但你明白了).
这意味着TeenagerOWL本体中的任何实例都必须具有hasAge该范围内的值的属性[12:19],而不是相反.具体来说,这并不意味着hasAge具有该范围内值的属性的任何实例[12:19]也是一个实例Teenager.为了清楚起见,考虑一个c类的实例(被称为)Car.我们也可以这样说:
c . hasAge 13
这是说实例c的Car是13岁.然而,由于Teenager上面定义的子类公理,推理者不会推断这c也是一个例子Teenager(如果我们想要的话,如果青少年是人,而不是汽车).
使用等价时的区别在于子类关系隐含在 两个方向上.因此,如果我们改为包含第二个公理,该第二个公理Teenager被定义为等同于具有hasAge该范围内值的属性的任何东西[12:19],那么推理者将推断该汽车c也是一个实例Teenager.
小智 5
等效的类可能具有相同的成员,例如,
:USPresident owl:equivalentClass :USCommanderInChief
Run Code Online (Sandbox Code Playgroud)
将有相同的人(所有或部分美国总统)。因此,如果我们断言约翰亚当斯是美国总司令,那么可以推断约翰亚当斯也是美国总统。
对于子类,我们表示一个层次结构。例如,GrannySmithApple 是一种 Apple。
:USPresident owl:equivalentClass :USCommanderInChief .
Run Code Online (Sandbox Code Playgroud)
是相同的
:USPresident rdfs:subClassOf :USCommanderInChief ;
:USCommanderInChief rdfs:subClassOf :USPresident .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |