为了账号安全,请及时绑定邮箱和手机立即绑定

不知道如何使用 Hermit 从 Java 本体中获取对象属性

不知道如何使用 Hermit 从 Java 本体中获取对象属性

米琪卡哇伊 2022-05-21 14:02:35
我试图从一个类中获取一个对象属性,特别是:我试图了解一个类何时是某个其他类的一部分(使用的构造可以在屏幕截图中看到)。我已经尝试在对象上使用OWL-api函数(对象是“e”)。getObjectPropertiesInSignature()OWLClass//display delle object propertySet<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 对象属性。
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您要找出的是一个类是否包含在对象属性的域中(类在 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);


查看完整回答
反对 回复 2022-05-21
  • 1 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信