让我们考虑一下
(1) P Domain CSuper
(2) CSub subClassOf CSuper使用Jena,我试图列出CSub的声明属性。我认为P不能被列为CSub的声明属性。我的理由是:P是CSub的一个声明属性, CSub是P的一个域,因为(1) CSuper是P的域,这并不意味着CSub也是一个域;(1)意味着如果(x, y)是P,那么x是CSuper,明显x可以E 118(不)E 219 be CSub。
令人惊讶的是,当使用P方法甚至使用OntModelSpec.OWL_DL_MEM_RULE_INF或Pellet时,耶拿都将CSub作为一个声明的属性列出!
更新:声明的属性对于某些类意味着什么?它是否意味着该属性是它们的域的类!
发布于 2015-03-04 11:43:08
你想:
theClass.listDeclaredProperties(false);来自文献资料
listDeclaredProperties()等价于调用listDeclaredProperties(布尔值),默认值为direct = false。direct-如果为真,则将返回的属性限制为与该类直接关联的属性。如果为false,该类的超类的属性将不会列在该类的声明属性中。
我想你误解了申报的财产。这将返回类可能(或必须)具有的属性。假设我们有一个类层次结构:
A > B > C还包括:
P domain B所有的Bs和Cs都可能有属性P --没有矛盾。然而,并不是所有的As都有属性P -- not-Bs才是问题所在。
https://stackoverflow.com/questions/28841701
复制相似问题