1

OWL データベースのバックエンドを作成しており、トリプルの消去または挿入が成功したかどうかを確認する必要があります。

私が今までに得たものは次のようになります。

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

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

匹敵するものは存在しますか?

4

2 に答える 2

0

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

于 2016-04-12T09:59:52.223 に答える
0

複数のスレッドがデータにアクセスする場合は、トランザクションを使用することをお勧めします。これがすべてシングルスレッドである場合、一貫性はそれほど問題ではありません。

「成功する」とはどういう意味ですか? SPARQL Update は合法で実行されたものでしたか、それともデータが予期した方法で変更されたのでしょうか?

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

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

... operation1 ... 
;
... operation2 ... 
;
INSERT { [] :succeded true }
WHERE {
    ... test condition ...
}
于 2016-04-12T12:30:07.280 に答える