OWLAPI 访问超类公理中的对象属性值
OWLAPI access objectProperty value in a superClass axiom
我可以通过以下命令访问 sueprClass 表达式。(运行 OWLAPI v5)
ont.getSubClassAxiomsForSubClass(cls).forEach(x->x.getSuperClass().getSignature()
)
每个循环 returns 如:
[<http://www.co-ode.org/ontologies/pizza/pizza.owl#PizzaBase>, <http://www.co-ode.org/ontologies/pizza/pizza.owl#hasBase>]
结果包含对象属性值 IRI 和对象属性本身 IRI。
现在我需要捕获 http://...#PizzaBase
.
的 objectProperty 值
这意味着获取结果集中的所有值,但不是最后一个 objectProperty IRI。
我可以将命令转换为数组 (...getSignature().toArray())
并访问它的值(除了最后一个值是 objectproperty IRI)。
有没有更好的方法或方法来做到这一点?
编写实现 visit(OWLObjectSomeValuesFrom ce)
的 OWLObjectVisitor
并调用 x.getSuperClass().accept(visitor);
然后就可以在ce
参数上访问对象属性。
对于这种情况,您也可以将 x.getSuperClass()
的结果转换为 OWLObjectSomeValuesFrom
,因为您已经知道要访问的表达式的位置和类型。如果您需要以更通用的方式执行此操作,使用访问者是一种更灵活的方法。
我可以通过以下命令访问 sueprClass 表达式。(运行 OWLAPI v5)
ont.getSubClassAxiomsForSubClass(cls).forEach(x->x.getSuperClass().getSignature()
)
每个循环 returns 如:
[<http://www.co-ode.org/ontologies/pizza/pizza.owl#PizzaBase>, <http://www.co-ode.org/ontologies/pizza/pizza.owl#hasBase>]
结果包含对象属性值 IRI 和对象属性本身 IRI。
现在我需要捕获 http://...#PizzaBase
.
的 objectProperty 值
这意味着获取结果集中的所有值,但不是最后一个 objectProperty IRI。
我可以将命令转换为数组 (...getSignature().toArray())
并访问它的值(除了最后一个值是 objectproperty IRI)。
有没有更好的方法或方法来做到这一点?
编写实现 visit(OWLObjectSomeValuesFrom ce)
的 OWLObjectVisitor
并调用 x.getSuperClass().accept(visitor);
然后就可以在ce
参数上访问对象属性。
对于这种情况,您也可以将 x.getSuperClass()
的结果转换为 OWLObjectSomeValuesFrom
,因为您已经知道要访问的表达式的位置和类型。如果您需要以更通用的方式执行此操作,使用访问者是一种更灵活的方法。