用Jena加载owl文件

时间:2015-06-10 21:18:44

标签: java jena owl ontology

我将Jena的几个OWL文件(RDF / XML序列化)加载为OntModel。 对于某些文件,我在使用ontoModel.read()

阅读时遇到错误

Exception in thread "main" 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;
}

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果您使用的是二进制下载,请将所有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或您正在使用的任何builer管理。