1

ペレットで Jena 2.12.1 を使用しようとしています。最新の Apache Jena ライブラリをサイトJena 2.12.1からダウンロードしました。

まず、 Pellet 2.3.1をダウンロードし、JENA ライブラリをインポートしました。残念ながら、org.mindswap.pellet.jena.PelletReasonerFactory解決できなかったため、推論をインスタンス化できませんでした。

次に、複数のバージョンの jar ファイル、petel-jena-2.3.2 をダウンロードしました (2.3.1 と 2.3.0 を試しました)。これで解決しorg.mindswap.pellet.jena.PelletReasonerFactoryました。ただし、例外が発生しました:

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

私のコード:

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 );
}   
}

何が問題ですか?jena 2.12.1 をペレット (任意のバージョン) で使用するより良い方法はありますか?

4

3 に答える 3

1

org.mindswap.pellet.utils.progress.ProgressMonitorから呼び出されたときに見つからないというエラー メッセージが表示されorg.mindswap.pellet.jena.PelletReasoner.bindます。クラスパスに必要なペレット jar がすべて含まれていないようです。イエナとは関係ありません。

ただし、http://clarkparsia.com/pellet/faq/different-jena-version/を参照してください。Jena 2.12.1 では、2 年以上のギャップがあるため、ペレットが完全に機能する可能性は低いです。

このフォークまたはそのブランチのいずれかを試してみてください: https://github.com/ansell/pellet (いずれの方法も推奨されません)

Jena へのリンクはマスター サイトではなく、 http://www.apache.org/dist/jenaのミラーのように見え ます。

于 2015-02-28T17:25:27.007 に答える
0

ペレット-2.3.1 の代わりに JENA 互換ライブラリを含むペレット-2.3.0 (2011 年 8 月 22 日) を使用すると、問題が解決しました。

于 2015-02-28T19:01:21.873 に答える