2

シンプルで純粋な後方連鎖推論を作成しようとするために、Jena のドキュメントを読んでいます。小さなオントロジーに適用する単純な後方連鎖規則があります。InfModel を取得したときにすべての含意が計算されるわけではないため、クエリごとに後方連鎖を実行する方法があるかどうか疑問に思っていました。

Modelfactory.createInfModel(reasoner,model) 

むしろ、要求されたときだけです。したがって、以下のルールの場合:

[rule2: (?x rdfs:type ?z)<-(?x ?rdf:type ?y),(?y rdfs:subClassOf ?z)]

特定のクラスのすべてのタイプを検索するクエリを登録して、上記のルールを実行することはできますか?

4

1 に答える 1

1

後方連鎖エンジンに関するドキュメントによると、必要な動作は既に後方連鎖エンジンが提供するものです。

ルール推論が後方連鎖モードで実行される場合、Prolog エンジンと同様の実行戦略を持つロジック プログラミング (LP) エンジンが使用されます。推論モデルがクエリされると、クエリは目標に変換され、エンジンは格納されているトリプルとの照合と、後方連鎖ルールに対する目標の解決によって、その目標を達成しようとします。【強調追加】

指定したルールで推論を定義すると、形式のトリプルを要求するx rdf:type zと、推論はその時点でそのルールを起動します。

于 2013-05-30T20:29:00.000 に答える