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

JENA - Check whether a SPARQL Update Query fails or not

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

到目前为止我得到的是这样的:

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

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

是否存在类似的东西?

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

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

"succeed"是什么意思? SPARQL 更新是否合法并已执行,或者数据是否以某种预期方式更改?

前者例外。

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

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