读取OWL/XML的问题

问题描述 投票:0回答:4

我在使用 Jena 从 Java 读取 OWL/XML 文件时遇到问题。

我读取 RDF/XML 文件没有问题,但每当我从 Protege 创建 OWL/XML 文件并尝试读取它时,Java 都会出现以下错误: 警告 [主要] (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。我查看了互联网,但找不到任何东西。 如果有人向我展示一种方法,我将非常感激。 非常感谢

java xml owl jena
4个回答
3
投票

对于 OWL/XML,请使用 OWL-API


2
投票

Jena 不支持 OWL/XML。它附带 RDF/XML、Turtle(又名 N3)和 N-Triples 的阅读器。例如,请参阅此处,了解支持的格式列表。


0
投票

您可以在这里找到很好的答案。

我测试了第四个答案中提供的代码,它对我来说 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格式,并使用上述技术读取文件。


0
投票

ONT-API可以将 OWL/XML 文档(以及任何其他 OWL 格式)读取为 Jena 的 RDF 图

© www.soinside.com 2019 - 2024. All rights reserved.