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 ...
}
我为 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 ...
}