java - 用 Jena 加载 owl 文件

标签 java jena owl ontology

我使用 Jena 作为 OntModel 加载了几个 OWL 文件(RDF/XML 序列化)。 对于某些文件,我在使用 ontoModel.read() 读取它们时遇到错误:

线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/http/HttpMessage

我在类路径中有 org.apache.httpcore-sources.jar

当前出现问题的文件是:ontologydesignpatterns.org/cp/owl/timeindexedpersonrole.owl

我用 Protege 将其保存为 RDF/XML,同时尝试使用扩展名 .owl.rdf

代码:

public static OntModel getOntologyModel(String ontoFile)
{   
    OntModel ontoModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, null);
    try 
    {
        InputStream in = FileManager.get().open(ontoFile);
        try 
        {
            ontoModel.read(in, null);
        } 
        catch (Exception e) 
        {
            e.printStackTrace();
        }
        LOGGER.info("Ontology " + ontoFile + " loaded.");
    } 
    catch (JenaException je) 
    {
        System.err.println("ERROR" + je.getMessage());
        je.printStackTrace();
        System.exit(0);
    }
    return ontoModel;
}

非常感谢您的帮助。

最佳答案

如果您使用二进制下载,请将所有 jar 放在类路径的 lib/目录中。 org.apache.httpcore-sources.jar 不是正确的 jar。您似乎至少缺少 httpclient-4.2.6.jar 和 httpcore-4.2.5.jar。

如果您使用 maven,请使用工件:

<dependency>
 <groupId>org.apache.jena</groupId>
 <artifactId>apache-jena-libs</artifactId>
 <type>pom</type>
 <version>X.Y.Z</version>
</dependency> 

获得相同的集合,但由 maven 或您正在使用的任何构建器管理。

关于java - 用 Jena 加载 owl 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767502/

相关文章:

java - 如何在 Java 中使用 Openrdf 来使用 OWL.INVERSEOF

java - 自动将类添加到源代码管理

java - 使用java重命名文件夹中的所有文件

java - Java 中一个非常简单的表达式,其计算方式很难理解

java - Cygwin 上的 tdbloader : Gettging FileNotFoundException: d:\cygdrive\d\. ...\node2id.idn

sparql - 在 Jena OntMOdel 中添加个人并访问它。异常 ObjectFileStorage.read 不可能的大对象

java - 监控tomcat服务上的JVM

java - HTTP 状态 500 - Servlet 执行抛出异常

java - Virtuoso Jena 提供程序查询别名语法

sparql - 这些 OWL 和 RDF 图从何而来?