我想使用owl api检索为任何类的个人设置的所有数据属性。我使用的代码是
OWLNamedIndividual inputNoun = df.getOWLNamedIndividual(IRI.create(prefix + "Cow"));
for (OWLDataProperty prop: inputNoun.getDataPropertiesInSignature())
{
System.out.println("the properties for Cow are " + prop); //line 1
}
此代码编译成功但第1行根本没有打印。什么应该是正确的语法。彻底google了,找不到任何有价值的东西。
答案 0 :(得分:2)
OWLNamedIndividual::getDataPropertiesInSignature()
不返回个人具有填充符的属性,它返回对象本身中显示的属性。对于个人而言,这通常是空的。该方法位于OWLObject
接口上,该接口涵盖类和属性表达式和本体之类的内容,它具有更有用的输出。
如果您希望数据属性包含个人的实际填充,请使用OWLOntology::getDataPropertyAssertionAxioms(OWLIndividual)
,如下所示:
OWLNamedIndividual input = ...
Set<OWLDataPropertyAssertionAxiom> properties=ontology.getDataPropertyAssertionAxioms(input);
for (OWLDataPropertyAssertionAxiom ax: properties) {
System.out.println(ax.getProperty());
}