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

我有下一个代码:

// 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
}


它仅显示类的名称,但不显示其属性。
我一直在阅读文档,但没有发现任何有用的信息。

希望有人可以帮助我。

提前致谢。

最佳答案

我不确定为什么要使用所有属性,但是可以轻松实现。首先,请确保导入Jena的OntProperty import org.apache.jena.ontology.OntProperty;

然后,您可以简单地在for循环内:cls.listDeclaredProperties().toList()

如果您想访问特定属性的内容,尽管可以这样做:
检查您的.owl文件中的URI,通常看起来像这样的"http://example.com/ontology#"

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

然后在循环中,您可以执行以下操作:cls.getProperty(nameOfProperty).getString()

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

10-01 19:32