到目前为止,我已经打开了本体,现在我想读取所有对象并显示其属性:
我有下一个代码:
// 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语句中。希望能有所帮助。