SPARQL更新不工作

SPARQL更新不工作,sparql,Sparql,我试图对一个属性的值执行一个简单的更新,该属性的主题是给定的资源 我的问题是: 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

我试图对一个属性的值执行一个简单的更新,该属性的主题是给定的资源

我的问题是:

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 .

} 
与
删除{?o0。
} 
插入
{ 
“创造者1”。
} 
哪里{?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"  .

} 
与
删除
{ 
?o0。
} 
插入
{ 
“创造者1”。
} 

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


乍一看,前面的操作也是如此,您说删除但不插入:据我所知,SPARQL表达式是正确的,如果您说插入部分没有执行,这意味着您在执行它的引擎中发现了一个bug。我建议您直接与开发人员联系

这里有一个解决方法,我曾经让它工作(最后感谢上帝)。似乎可以使用分号
在一个操作中指定要在图形上执行的多个操作

我最后指定了
DELETE
语句,然后指定了
UPDATE
语句


查看下面的代码示例:

您使用的是哪个SPARQL引擎和哪个版本?当您说“no WHERE子句”时,我假设您的意思是“WHERE{}”,否则这是一个语法错误。当使用“WHERE{}”时,o0没有绑定,因此没有任何内容会被删除。嗨,Andy,我使用的是Virtuoso版本:06.01.3127。当你说?o0不受约束时,你的意思是DELETE子句中的?o0和WHERE子句之间没有对应关系?如果是这种情况,我如何删除所有指定了主语和谓语的三元组,如“?o0.”,但我不知道宾语,然后执行插入?ThanksI已经准备放弃这个并运行两个查询,但这真的很糟糕。。。它对数据库的影响更大,如果在删除和插入之间出现错误,则会导致不一致……请检查我编辑的答案中没有WHERE子句的代码,该子句会生成重复项。截至今天,我使用最稳定的Virtuoso开源版本(版本:07.00.3203构建:2013年10月20日)测试了相同的查询它验证并运行。结果是:修改、删除0(或更少)并插入1(或更少)个三元组——完成。老实说,我就要放弃这一切了。从纸面上看似乎很好,但我已经用OrientDB破坏了整个项目,这一个也是这样。我将尝试联系邮件列表中的开发人员,只是必须确保它没有在最新版本中修复。