1

GraphDb でクエリを実行しているときに推論を無効にする方法はありますか。Graphdb Sparql テキストボックスに >> 記号があり、推論をオフにします。Sparql クエリ自体から推論機能をオフにできるかどうか知りたいです。もしそうなら、いくつかのクエリは推論なしで実装する方が簡単なので、それは推奨されますか?

4

1 に答える 1

1

ノードの拡張を除く、GraphDB のすべての推論はowl:sameAs、ステートメントがデータベースに追加/削除されるときに具体化されます。GraphDB のドキュメントによると、次の方法で推論を無効にすることができます。

PREFIX sys: <http://www.ontotext.com/owlim/system#>
INSERT DATA {
  _:b sys:addRuleset "empty" .
  _:b sys:defaultRuleset "empty" .
}

この操作を実行すると、エンジンはデータベース内の暗黙的なトリプルを具体化しなくなります。

SPARQLクエリビューでも使用されるもう1つの代替手段は、特別なグラフを使用して暗黙的なステートメントをクエリ時にフィルタリングすることonto:implicitです。

PREFIX onto: <http://www.ontotext.com/>
SELECT *
FROM onto:implicit 
WHERE {
    ?s ?p ?o 
}

または、infer=false HTTP パラメーターを SPARQL エンドポイントに追加します。

curl -G --data-urlencode query='select * where { ?s ?p ?o. }' 'http://localhost:7200/repositories/test' --data-urlencode infer=false

于 2018-01-17T06:15:47.313 に答える