OWL 等同于 类 作为兄弟子类的补充
OWL Equivalent Classes as complement of Sibling SubClass
我有以下组成的示例 class 层次结构来消除我的疑问。
Dog
和 Human
的 class 是 Animal
的子class。还有 class Leash
.
我已将狗 class 建模为已定义 Class,对对象 属性 wearsLeash
具有 属性 限制,如图所示。
我已将人 class 建模为狗 class 的补充,如图所示
我为这些 classes 找了三个人,如下所示。 Leo
应该是 Dog
而 David
应该是 Human
我已经断言 Leo wearsLeash RedLeash
如图所示。
在 运行 内置推理器上,Leo
得到 classified
作为 Dog
但 David
没有得到 class化为 Human
。我的问题是,为什么 David
不能被推断为 Human
的个体,因为 class 不是狗的动物?是由于开放世界假设吗?我还有哪些其他方法可以使用此逻辑自动将 David
推断为 Human
?
谢谢!
编辑:OWL 文件
@prefix : <http://www.semanticweb.org/university/untitled-ontology-107#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.semanticweb.org/university/untitled-ontology-107> .
<http://www.semanticweb.org/university/untitled-ontology-107> rdf:type owl:Ontology .
#################################################################
# Object Properties
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#wearsLeash
:wearsLeash rdf:type owl:ObjectProperty .
#################################################################
# Classes
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#Animal
:Animal rdf:type owl:Class .
### http://www.semanticweb.org/university/untitled-ontology-107#Dog
:Dog rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Animal
[ rdf:type owl:Restriction ;
owl:onProperty :wearsLeash ;
owl:someValuesFrom :Leash
]
) ;
rdf:type owl:Class
] ;
rdfs:subClassOf :Animal ;
owl:disjointWith :Human .
### http://www.semanticweb.org/university/untitled-ontology-107#Human
:Human rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Animal
[ rdf:type owl:Class ;
owl:complementOf :Dog
]
) ;
rdf:type owl:Class
] .
### http://www.semanticweb.org/university/untitled-ontology-107#Leash
:Leash rdf:type owl:Class .
#################################################################
# Individuals
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#David
:David rdf:type owl:NamedIndividual ,
:Animal .
### http://www.semanticweb.org/university/untitled-ontology-107#Leo
:Leo rdf:type owl:NamedIndividual ,
:Animal ;
:wearsLeash :RedLeash .
### http://www.semanticweb.org/university/untitled-ontology-107#RedLeash
:RedLeash rdf:type owl:NamedIndividual ,
:Leash .
#################################################################
# General axioms
#################################################################
[ rdf:type owl:AllDifferent ;
owl:distinctMembers ( :David
:Leo
)
] .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
在ontology中定义Human
为Animal
与Dog
的补集的交集,为了class化Human
个实例,相当于将 Animal
定义为 Dog
和 Human
.
的不相交并集
这意味着任何定义为 Animal
的东西都将是 Dog
或 Human
;一个实例可以 class 化为 Dog
如果已知它系着皮带。
这里的问题是David
不知道系皮带,不知道不系皮带;开放世界假设意味着推理者不能选择任何一种可能性,因此不能决定 David
是 Dog
还是 Human
。要获得您想要的内容,有必要向 ontology 添加更多信息,例如 David
属于 wearsLeash
.[=27 域之外的 class =]
我有以下组成的示例 class 层次结构来消除我的疑问。
Dog
和 Human
的 class 是 Animal
的子class。还有 class Leash
.
我已将狗 class 建模为已定义 Class,对对象 属性 wearsLeash
具有 属性 限制,如图所示。
我已将人 class 建模为狗 class 的补充,如图所示
我为这些 classes 找了三个人,如下所示。 Leo
应该是 Dog
而 David
应该是 Human
我已经断言 Leo wearsLeash RedLeash
如图所示。
在 运行 内置推理器上,Leo
得到 classified
作为 Dog
但 David
没有得到 class化为 Human
。我的问题是,为什么 David
不能被推断为 Human
的个体,因为 class 不是狗的动物?是由于开放世界假设吗?我还有哪些其他方法可以使用此逻辑自动将 David
推断为 Human
?
谢谢!
编辑:OWL 文件
@prefix : <http://www.semanticweb.org/university/untitled-ontology-107#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.semanticweb.org/university/untitled-ontology-107> .
<http://www.semanticweb.org/university/untitled-ontology-107> rdf:type owl:Ontology .
#################################################################
# Object Properties
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#wearsLeash
:wearsLeash rdf:type owl:ObjectProperty .
#################################################################
# Classes
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#Animal
:Animal rdf:type owl:Class .
### http://www.semanticweb.org/university/untitled-ontology-107#Dog
:Dog rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Animal
[ rdf:type owl:Restriction ;
owl:onProperty :wearsLeash ;
owl:someValuesFrom :Leash
]
) ;
rdf:type owl:Class
] ;
rdfs:subClassOf :Animal ;
owl:disjointWith :Human .
### http://www.semanticweb.org/university/untitled-ontology-107#Human
:Human rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( :Animal
[ rdf:type owl:Class ;
owl:complementOf :Dog
]
) ;
rdf:type owl:Class
] .
### http://www.semanticweb.org/university/untitled-ontology-107#Leash
:Leash rdf:type owl:Class .
#################################################################
# Individuals
#################################################################
### http://www.semanticweb.org/university/untitled-ontology-107#David
:David rdf:type owl:NamedIndividual ,
:Animal .
### http://www.semanticweb.org/university/untitled-ontology-107#Leo
:Leo rdf:type owl:NamedIndividual ,
:Animal ;
:wearsLeash :RedLeash .
### http://www.semanticweb.org/university/untitled-ontology-107#RedLeash
:RedLeash rdf:type owl:NamedIndividual ,
:Leash .
#################################################################
# General axioms
#################################################################
[ rdf:type owl:AllDifferent ;
owl:distinctMembers ( :David
:Leo
)
] .
### Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi
在ontology中定义Human
为Animal
与Dog
的补集的交集,为了class化Human
个实例,相当于将 Animal
定义为 Dog
和 Human
.
这意味着任何定义为 Animal
的东西都将是 Dog
或 Human
;一个实例可以 class 化为 Dog
如果已知它系着皮带。
这里的问题是David
不知道系皮带,不知道不系皮带;开放世界假设意味着推理者不能选择任何一种可能性,因此不能决定 David
是 Dog
还是 Human
。要获得您想要的内容,有必要向 ontology 添加更多信息,例如 David
属于 wearsLeash
.[=27 域之外的 class =]