1

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

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

F ⊑ =1 r.D

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

質問:

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

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

4

1 に答える 1

1

最初の呼び出しで必要な余分な時間について、Pellet は他のタスクも行っていると思います (たとえば、最初にオントロジーを分類する必要があるかもしれません)。

推論時間をアルゴリズムから分離するために、コードを (同じ VM で) 2 回実行し、2 回目に使用された時間のみを考慮することができます。これにより、合計から初期化コストが削除されます。

于 2015-05-15T06:30:09.130 に答える