JENA - 检查SPARQL更新查询是否失败

时间:2016-04-12 08:22:29

标签: sparql rdf jena owl apache-jena

我为OWL数据库编写了后端,需要检查删除或删除三元组是否成功。

到目前为止,我所拥有的是:

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

所以我需要的是类似proc.execute()方法的布尔值。

是否存在类似的东西?

2 个答案:

答案 0 :(得分:0)

好吧,我不确定你是否可以这样做。但是,我建议您使用Jena TDB Transactions,因为您可以在那里找到ACID事务支持。因此,您可以检查您的操作是成功还是失败。

答案 1 :(得分:0)

如果有多个线程访问数据,那么交易将是一个好主意。如果这都是单线程的,那么一致性就不是问题了。

“成功”是什么意思? SPARQL更新是合法的并且已执行,或者数据是否以某种预期的方式更改了?

对于前者,你得到一个例外。

如果是后者,则不是proc.execute的工作(如何知道?)。一种有用的方法是在数据中有条件地插入三元组以记录那里的状态。这是更新的一部分。

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