2016-04-12 9 views
1

OWLデータベースのバックエンドを書き、トリプルの消去または挿入が成功したかどうかを確認する必要があります。JENA - SPARQL更新クエリが失敗するかどうかを確認します

そのように見える私が今まで持っている:

String queryUpdate = 
/*Update String*/ 
     UpdateRequest request = UpdateFactory.create(queryUpdate); 
     UpdateProcessor proc = UpdateExecutionFactory.create(request, graphStore); 
     proc.execute(); 

だから私は必要なものproc.execute()メソッドからブール値のようなものです。

似たものがありますか?

答えて

0

複数のスレッドがデータにアクセスする場合は、トランザクションが有効です。これがすべてシングルスレッドの場合、整合性はそれほど問題にはなりません。

"成功"とは何ですか? SPARQLアップデートは正当なものであり、実行されたか、またはデータが予期された方法で変更されたかどうか?

前者の場合、例外が発生します。

後者の場合、proc.executeの仕事ではありません(どのように知っていますか?)。有用なアプローチは、状態を記録するためにトリプルをデータに条件付きで挿入することです。これは更新の一部として発生します。

... operation1 ... 
; 
... operation2 ... 
; 
INSERT { [] :succeded true } 
WHERE { 
    ... test condition ... 
} 
0

あなたがそのようにできるかどうかはわかりません。しかし、Jena TDB Transactionsを使用することをお勧めします。ACIDトランザクションがサポートされています。したがって、操作が成功するか失敗するかを確認できます。

関連する問題