读取OWL / XML的问题

时间:2010-06-12 14:49:24

标签: java xml owl jena

使用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。我看着互联网,我找不到任何东西。 如果有人给我指路,我真的很感激。 非常感谢

3 个答案:

答案 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格式保存文件,并使用上述技术读取文件。