我为OWL数据库编写了后端,需要检查删除或删除三元组是否成功。
到目前为止,我所拥有的是:
String queryUpdate =
/*Update String*/
UpdateRequest request = UpdateFactory.create(queryUpdate);
UpdateProcessor proc = UpdateExecutionFactory.create(request, graphStore);
proc.execute();
所以我需要的是类似proc.execute()方法的布尔值。
是否存在类似的东西?
答案 0 :(得分:0)
好吧,我不确定你是否可以这样做。但是,我建议您使用Jena TDB Transactions,因为您可以在那里找到ACID事务支持。因此,您可以检查您的操作是成功还是失败。
答案 1 :(得分:0)
如果有多个线程访问数据,那么交易将是一个好主意。如果这都是单线程的,那么一致性就不是问题了。
“成功”是什么意思? SPARQL更新是合法的并且已执行,或者数据是否以某种预期的方式更改了?
对于前者,你得到一个例外。
如果是后者,则不是proc.execute的工作(如何知道?)。一种有用的方法是在数据中有条件地插入三元组以记录那里的状态。这是更新的一部分。
... operation1 ...
;
... operation2 ...
;
INSERT { [] :succeded true }
WHERE {
... test condition ...
}