【问题标题】:Problem of reading OWL/XML读取OWL/XML的问题
【发布时间】:2023-03-10 14:09:01
【问题描述】:

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

我在读取 RDF/XML 文件时没有问题,但是每当我从 Protege 创建一个 OWL/XML 文件并尝试读取它时,Java 都会在下面给出这个错误: 警告 [主] (RDFDefaultErrorHandler.java:36) 线程“主”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


    【解决方案1】:

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

    【讨论】:

    • 是的,我使用过 OWL-API,它运行良好。感谢您宝贵的建议,Kaarel 和 cygi。
    【解决方案2】:

    耶拿不支持 OWL/XML。它附带 RDF/XML、Turtle(又名 N3)和 N-Triples 的阅读器。有关支持的格式列表,请参见例如 here

    【讨论】:

    • 我应该用什么来阅读 OWL/XML 文件?有没有像 Jena 这样的图书馆来阅读这种文件?或者,OWL/XML转RDF/XML有意义吗?
    • 只需使用 RDF/XML。我很确定它可以表达 OWL/XML 可以表达的一切。
    【解决方案3】:

    你可以在这里找到一个很好的答案。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2016-11-11
      相关资源
      最近更新 更多