首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Pellet一起使用Jena;NoClassDefFoundError异常

与Pellet一起使用Jena;NoClassDefFoundError异常
EN

Stack Overflow用户
提问于 2015-02-28 11:44:24
回答 3查看 1.5K关注 0票数 1

我试图在Pellet中使用Jena 2.12.1;我从他们的站点耶拿2.12.1下载了最新的Apache库。

首先,我下载了球团2.3.1并导入了JENA库。不幸的是,org.mindswap.pellet.jena.PelletReasonerFactory无法被解析,因此,我无法实例化推理器。

然后,我下载了多个版本的jar文件pellet 2.3.2(尝试2.3.1和2.3.0)。这解决了org.mindswap.pellet.jena.PelletReasonerFactory问题。然而,它造成了例外情况:

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/mindswap/pellet/utils/progress/ProgressMonitor
at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:95)
at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:53)
at com.hp.hpl.jena.rdf.model.ModelFactory.createInfModel(ModelFactory.java:261)
at code.BasicOWLHandler.main(BasicOWLHandler.java:678)
Caused by: java.lang.ClassNotFoundException: org.mindswap.pellet.utils.progress.ProgressMonitor


at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

我的代码:

代码语言:javascript
复制
import org.mindswap.pellet.jena.PelletReasonerFactory;
import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.reasoner.Reasoner;

public class Test {
public static void main (String [] args)
{
    Reasoner reasoner = PelletReasonerFactory.theInstance().create();

    // create an empty model
    Model emptyModel = ModelFactory.createDefaultModel( );

    // create an inferencing model using Pellet reasoner
    InfModel model = ModelFactory.createInfModel( reasoner, emptyModel );
}   
}

,问题是什么?是否有更好的方法在Pellet (任何版本)中使用jena 2.12.1?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-28 19:01:21

使用Pellet2.3.0(2011年8月22日),包括JENA兼容的librairies而不是pellet-2.3.1已经解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2015-02-28 17:25:27

错误消息说,当从org.mindswap.pellet.utils.progress.ProgressMonitor调用时,它找不到org.mindswap.pellet.jena.PelletReasoner.bind。这看起来像类路径没有所有必要的弹丸罐。这和耶娜无关。

但是,请参阅http://clarkparsia.com/pellet/faq/different-jena-version/。由于2+年间隔,Pellet不太可能与Jena 2.12.1完美地合作。

您可能希望尝试此叉子或其分支之一:https://github.com/ansell/pellet (不推荐任何一种方式)

你提供给耶拿的链接不是主站点,它看起来像http://www.apache.org/dist/jena的一面镜子。

票数 1
EN

Stack Overflow用户

发布于 2015-08-28 23:29:24

如果有人想到这一点,并想要使用耶拿2.13与球团,这是可能的,从2015年7月14日,使用佩莱2.4。请参见提交#7b07bf

启动并运行,您只需自己构建JAR,就可以克隆它们的repo并运行mvn compile。它们还包括使用Jena 2.13的一个例子

要在Jena中使用Pellet,请遵循关于他们的常见问题的说明

代码语言:javascript
复制
// ontology that will be used
String ont = "http://www.mindswap.org/2004/owl/mindswappers";

// create an empty ontology model using Pellet spec
OntModel model = ModelFactory.createOntologyModel( PelletReasonerFactory.THE_SPEC );   

// read the file
model.read( ont );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28781322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档