在eclipse中使用OWL API检索个人的数据属性

时间:2014-09-20 14:25:20

标签: java eclipse api owl ontology

我想使用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了,找不到任何有价值的东西。

1 个答案:

答案 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());
}