到目前为止我打开了我的本体,现在我想读取所有对象并显示它们的属性:
我有下一个代码:
// 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
}
它只显示类的名称,但不显示它们的属性。 我一直在阅读文档,但我找不到任何有用的东西。
希望有人可以帮助我。
提前致谢。
答案 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