完整本体论:
Prefix: : <http://www.semanticweb.org/l.smolaga/ontologies/2018/0/untitled-ontology-14#>
Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Ontology: <http://www.semanticweb.org/l.smolaga/ontologies/2018/0/untitled-ontology-14>
Datatype: xsd:int
DataProperty: hasAge
Characteristics:
Functional
Domain:
Person
Range:
xsd:int
Class: Person
Class: Student
EquivalentTo:
Person
and (hasAge some xsd:int[>= "18"^^xsd:int , <= "26"^^xsd:int])
Class: Teenager
EquivalentTo:
Person
and (hasAge some xsd:int[>= "11"^^xsd:int , <= "19"^^xsd:int])
我试图找到一种方法来检查两个类是否重叠。
例如,我们假设我们有一个包含3个类(人,青少年和学生)的本体
少年相当于人,并且有一些xsd:int[>= 11, <=19 ]
学生相当于人,并且有一些xsd:int[>= 18, <=26 ]
我想检查哪个班级与学生重叠。我怎么能用owlapi / jena做到这一点?
答案 0 :(得分:2)
最简单的方法是创建一个个人,例如x
,其类型为(Person and Student and Teenager
)。调用推理器,如果您的本体是一致的,则意味着个人可以属于所有类。如果本体不一致,则意味着个人不能同时属于所有类。
您应该可以在本体编辑器中执行此操作,或通过owl-api或jena以编程方式执行此操作。