![](/img/trans.png)
[英]OWLAPI : Want to get inferred axioms from ontology using HermiT reasoner
[英]don't know how to get object property from ontology in java with Hermit
我正在尝试从类中获取对象属性,特别是:我正在尝试理解何时类是其他类的一部分(使用的构造可以在屏幕截图中看到)。
我已经尝试在OWLClass
对象上使用OWL-api函数getObjectPropertiesInSignature()
(对象是“e”)。
//display delle object property
Set<OWLObjectProperty> proprietà = e.getObjectPropertiesInSignature();
System.out.println("Object Property:");
if(proprietà.isEmpty()) {
System.out.println("\tQuesta classe non ha object property");
}
else {
for(OWLObjectProperty prop : proprietà) {
System.out.println("\t"+ prop);
}
}
片段的输出是Questa classe non ha object property
,因此该函数返回一个空Set,但在这种情况下,它应该返回一个具有一个对象属性的Set: part-Of对象属性 。
您要弄清楚的是一个类是否包含在对象属性的域中(类不具有OWL中的对象属性),或者该类是否是限制的子类。 只有当类表达式提到属性时,类对象的签名才包含对象属性,例如合格的基数限制或存在性限制,如示例所示。
为了查看某个类是否具有使用partOf
的超类,您可以创建一个表示子类公理右侧的类表达式并请求其子类。
OWLDataFactory df = ...
OWLClassExpression c = df.getOWLObjectSomeValuesFrom(partOf, car);
NodeSet subClasses = hermit.getSubClasses(c, false);
对于partOf域中的类,您必须查找域表达式交集的子类:
OWLClassExpression domain = df.getOWLObjectIntersectionOf(ontology.objectPropertyDomainAxioms(partOf));
NodeSet subClassesInDomain = hermit.getSubClasses(domain, false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.