如何使用Jena Java API从本体读取对象属性

时间:2017-05-09 12:18:18

标签: java api jena owl ontology

到目前为止我打开了我的本体,现在我想读取所有对象并显示它们的属性:

我有下一个代码:

// Opening the ontology.
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
model.read("file:C:/Users/Antonio/Desktop/myOntology.owl","OWL");


// Going through the ontology
for (Iterator<OntClass> i = model.listClasses();i.hasNext();){
    OntClass cls = i.next();
    System.out.print(cls.getLocalName()+": ");

    // here I want to show the properties
}

它只显示类的名称,但不显示它们的属性。 我一直在阅读文档,但我找不到任何有用的东西。

希望有人可以帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我不确定为什么你会想要所有的属性,但你可以轻松地做到这一点。首先确保导入Jena的OntProperty import org.apache.jena.ontology.OntProperty;

然后你可以简单地在for循环中:cls.listDeclaredProperties().toList()

如果您想访问特定属性的内容,您可以这样做: 检查您的.owl文件中的URI,该URI通常类似于此"http://example.com/ontology#"

因此,您的Java代码将如下所示:OntProperty nameOfProperty = model.getOntProperty("http://example.com/ontology#nameOfyourProperty");

然后在你的循环中你可以做这样的事情:cls.getProperty(nameOfProperty).getString()

顺便说一句,在阅读文件之前,您可能希望将其放在try catch语句中。希望有所帮助。

答案 1 :(得分:0)

代码是打印类,因为listClasses()返回本体的类。要打印个人的对象属性,可以使用OWL API