セサームのセイルインターフェイスがSPARQLの更新ステートメント(ADD、COPY、...)に関してどのように機能するのか、そしてこれが実際の実装にどのように伝播するのかを理解したいと思っています。そのインタフェース。RDFセイルの実装のためのゴマの戦略
たとえば、SPARQL ADD文がSailUpdateExecutorクラスのexecuteAddメソッドによって実装されていることは間違いありませんか? https://bitbucket.org/openrdf/sesame/src/aa0dd3b04738e707c582e4dda14a0a0c5a77ab51/core/repository/sail/src/main/java/org/openrdf/repository/sail/helpers/SailUpdateExecutor.java?at=master&fileviewer=file-view-defaultを参照してください。
これが正しい場合は、SAILレイヤーがソースグラフからトリプル抽出ごとに3倍であり、ターゲットグラフに挿入されていることを修正しますか?
もしそうなら、SAIL実装のこの動作を上書きすることは可能ですか? たとえば、この操作はネイティブの一括インデックス操作によってnativeRDFストアで効率的に実装できると思いますか?一般的な実装では、内部データ構造の利点を得ることができないため、実行は最適ではありません。
帆インターフェイスでこれが予期されていない場合は、この戦略を適用するSESAMEクエリインターフェイスがありますか?可能な限りクエリをストアにプッシュしますか?または、戦略が逆の場合:クエリを調べることができる場合はすぐに実行されます。
最後に、クエリ実行戦略を調整できますか?私はソースコード参照でクエリの除外オプティマイザを見つけましたが、ストアインスタンスごとに設定できるかどうかはわかりません。
フィードバックが
ストアで実行を上書きする方法の例がありますか? SailUpdateExecutor.executeUpdateはスピン内のSailConnectionUpdateだけです(そしてデフォルト実装を使用するだけです)。 –
「オーバーライド」は正しい用語ではないかもしれません。 'SailUpdateExecutor'自体は決してオーバーライドされません。エグゼキュータからの出力が処理されることを決定するのは、受信セイルの実装であり、_that_はストア固有の最適化が行われる場所です。 –
脇の下として、私はもちろん喜んでお手伝いしますが、セサミフレームワークの内部に関するこの種の実装固有の質問は、「通常の使用」を少し上回っているため、セサミユーザーグループにとってはおそらくより適していますStackOverflowよりも。 https://groups.google.com/d/forum/sesame-usersをご覧ください。 –