3

我正在尝试对具有给定资源作为其主题的属性的值进行简单更新。

这是我的查询:

WITH  <http://127.0.0.1:3000/dendro_graph>  
DELETE {   <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste>   <http://purl.org/dc/elements/1.1/creator>  ?o0 .

} 
INSERT 
{ 
  <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste>    <http://purl.org/dc/elements/1.1/creator>    "creator1"  .

} 
WHERE {   <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste>   <http://purl.org/dc/elements/1.1/creator>  ?o0 .

} 

这样做的结果是执行了删除,但没有执行插入;我最终销毁了该属性的所有实例,但没有添加新值。

如果我删除 WHERE 子句,我会得到重复的三元组,因为似乎 DELETE 没有执行。

我究竟做错了什么?

编辑:

此代码产生重复项:

WITH  <http://127.0.0.1:3000/dendro_graph>  
DELETE 
{ 
<http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste>   <http://purl.org/dc/elements/1.1/creator>  ?o0 .

} 
INSERT 
{ 
  <http://127.0.0.1:3000/project/datanotes/records/teste/filho%20do%20teste>    <http://purl.org/dc/elements/1.1/creator>    "creator1"  .

} 
4

2 回答 2

3

没有 WHERE 子句的查询不是合法的 SPARQL 表达式,应该会导致语法错误。如果您正在使用的引擎接受这一点,那么这是该引擎中的错误。

乍一看,前面的操作同上,你说删除但不插入:据我所知,SPARQL 表达式是正确的,如果你说插入部分没有被执行,那就意味着你已经发现执行它的引擎中的错误。我建议您直接与开发人员联系。

于 2013-10-19T22:49:48.850 回答
0

这是我用来让它工作的解决方法(最后感谢上帝)。您似乎可以使用分号在单个操作中指定要在图形上执行的多个操作;

我最终指定了DELETE语句,然后是UPDATE那个

查看代码示例:SPARQL 更新示例,用于在单个查询中更新多个三元组

于 2013-10-21T19:58:34.753 回答