使用Jena从Java读取OWL / XML文件时遇到问题。
我在读取RDF / XML文件时没有问题,但每当我从Protege创建OWL / XML文件并尝试读取它时,Java都会在下面给出以下错误: WARN [main](RDFDefaultErrorHandler.java:36) 线程“main”java.lang.NullPointerException中的异常 在com.hp.hpl.jena.rdf.arp.impl.XMLHandler.endElement(XMLHandler.java:143)
我用来检索RDF / XML的代码如下:
OntModel ontModel = ModelFactory.createOntologyModel();
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
ontModel.read(in, "");
此代码完美地适用于RDF / XML。但是,我无法读取OWL / XML。我看着互联网,我找不到任何东西。 如果有人给我指路,我真的很感激。 非常感谢
答案 0 :(得分:3)
对于OWL / XML,请使用OWL-API。
答案 1 :(得分:2)
Jena不支持OWL / XML。它附带了RDF / XML,Turtle(a.k.a。N3)和N-Triples的读者。有关支持的格式列表,请参阅here。
答案 2 :(得分:0)
你可以在这里找到一个好的答案。
我测试了第4个答案中提供的代码,它对我100%有效。我在这里为你复制了答案。
String inputFileName = "D:\Ontologia\OntoSME_V7.owl";
OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, null);
try {
InputStream in = FileManager.get().open(inputFileName);
onto.read(in, "RDF/XML");
} catch (JenaException je) {
System.out.println("ERROR" + je.getMessage());
je.printStackTrace();
System.exit(0);
}
您可以使用protege以RDF / XML格式保存文件,并使用上述技术读取文件。