問題タブ [pellet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
236 参照

jena - イエナ; listDeclaredProperties セマンティクス

考えてみましょう

Jena を使用して、 の宣言されたプロパティを一覧表示しようとしていますCSub。私が信じているのはP、 の宣言されたプロパティとしてリストされてはならないということですCSub。私の正当化:Pは の宣言されたプロパティでCSubあり、は のドメインであり 、(1)はドメインでもあることを意味しないドメインです。(1) である場合は、明らかに である可能性がある(ない)ことを意味します。CSubPCSuperPCSub(x, y)PxCSuperxCSub

驚くべきは、Jena がOntModelSpec.OWL_DL_MEM_RULE_INF や Pellet を使用したメソッドを使用する場合Pの宣言されたプロパティとしてリストされていることです! 何か不足していますか?CSublistDeclaredProperties

更新: 一部のクラスの宣言されたプロパティとはどういう意味ですか? プロパティがそれらのドメインであることは、クラスを意味しますか!

0 投票する
1 に答える
821 参照

java - イエナ; プロパティのドメインと範囲は、選択した Reasoner によって異なります

Jena を使用して、プロパティのドメインと範囲を取得しようとしています。

次のオントロジーを考えてみましょう

ご覧のとおり、A1 は P のドメインであり、B1 はその範囲です。OWLセマンティクスによれば、AはPのドメインでもあり、Bは範囲でもあると推測できます。こちらを参照してください。

ただし、推論で Jena を使用すると、常に期待どおりの動作が得られるとは限りません。2 つの状況を区別してみましょう。1 つ目はペレット推論を使用しており、2 つ目は OWL_DL_MEM_RULE_INF を使用しています。

コード

ペレットの使用: これにより、次の出力が得られます。

OWL_DL_MEM_RULE_INF を使用: これにより、次の出力が得られます。

質問:

1-この違いはなぜ起こっているのですか?

2- 正しい結論は?

3- OWL_DL_MEM_RULE_INF と同様の結果が得られるようにペレットを強制する方法はありますか?

0 投票する
2 に答える
1042 参照

jena - OWL-API 4.0.1対応ペレット推理器?

以下の pom ファイルから抽出された maven 依存関係セクションに見られるように、私は OWL-API バージョン 4.0.1 を Pellet reasoner バージョン 2.3.6 と一緒に使用していました。

プロジェクトをコンパイルすると、次のようなエラーが見つかりました。

org.semanticweb.owlapi.OWLAPIServiceLoaderModule.loadFactories(OWLAPIServiceLoaderModule.java:99) のスレッド「メイン」 java.lang.AbstractMethodError の例外 com.google. inject.AbstractModule.configure(AbstractModule.java:62) at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:230) at com.google.inject.spi.Elements.getElements(Elements.java: 103) com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:136) で com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) で com.google.inject.Guice .createInjector(Guice.java:96) at com.google.inject.Guice.createInjector(Guice.java:73) at com.google.inject.Guice.createInjector(Guice.java:62) org.semanticweb.owlapi.apibinding.OWLManager.(OWLManager.java:43) で sematicdm.parser.CreateIndividualsClass.main(CreateIndividualsClass.java:73)

クラス createIndividualsClass で、エラーが発生する行は次のとおりです。

互換性の問題ですか?もしそうなら、どのバージョンのペレットレゾナーをpomファイルに含めるべきですか?

0 投票する
1 に答える
106 参照

performance - 推論器を使用するアルゴリズムのパフォーマンスを評価する

私は、OWL-DL オントロジー内の 2 つの指定されたクラス間の特定のパス (プロパティ チェーン) を見つけるアルゴリズム (Java コード) を開発しました。オントロジーはこちら

実際、Pellet reasoner はクエリに応答するのに時間がかかりすぎます。クラスがプロパティを介してFクラスに対 1 で関連付けられているかどうかを確認するのに約 5 ~ 7 秒かかります。ただし、このクエリは私のアルゴリズムでは反復的です。同様のクラスで再実行すると、はるかに高速に実行されます(インメモリモデルまたはRAMメモリキャッシングに関連していると思います...)。ただし、初回は約 4 ~ 5 分かかります (実行されるチェックの数によって異なります)。Dr

このボトルネックは、オントロジーと推論自体に関連しています: (推論なしで実行すると、すぐに実行されます!)

質問:

1-推論時間を無視してパフォーマンスを評価できますか? つまり、次のようなものです: 推論にかかる時間を無視すれば、その実行は即時です!

2-この状況でパフォーマンスを改善する方法はありますか?