Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SPARQL子查询和删除_Sparql - Fatal编程技术网

SPARQL子查询和删除

SPARQL子查询和删除,sparql,Sparql,我试图删除一个特定的三元组,这个三元组与一系列类似的事情相关。那么,我们在哪里 someURI a our:thing; our:name "literal". someOtherURI a our:thing; our:name "literal". ...n 我想特别删除所有someURI:name“literal”三元组,并保留已定义的内容 我知道我可以通过删除数据来做到这一点,但这需要我首先了解所有URI,这本身就太多了 我在删除WHERE方面有点困难,但我认为答案是 DELETE

我试图删除一个特定的三元组,这个三元组与一系列类似的事情相关。那么,我们在哪里

someURI a our:thing;
 our:name "literal".
someOtherURI a our:thing;
 our:name "literal".
...n
我想特别删除所有
someURI:name“literal”
三元组,并保留已定义的内容

我知道我可以通过
删除数据
来做到这一点,但这需要我首先了解所有URI,这本身就太多了

我在
删除WHERE
方面有点困难,但我认为答案是

DELETE{ ?uri our:name ?literal }
WHERE{ ?uri a our:thing. }
首先,我的
DELETE WHERE
是否正常

其次,我想知道是否可以在
删除数据
中嵌套
选择
查询?所以

DELETE DATA{ 
 ?uri our:name ?literal
 {
   SELECT ?uri
   WHERE {?uri a our:thing.}
 }
}
具体来说,子查询会提供基本三元组(URI来替换
?URI
变量,还是
删除数据的无变量规则会首先抛出错误?这似乎很明显,但我一直在想,无法在我的三元组存储库上测试它。我使用的是OWLIM-SE

首先,我的
DELETE WHERE
是否正常

差不多,但不完全一样。
DELETE
子句不能包含任何未绑定在
WHERE
子句中的变量(在您的情况下,变量
?literal
)。因此您需要稍微修改它,如下所示:

DELETE { 
  ?uri our:name ?literal .
}
WHERE { 
  ?uri a our:thing; 
       our:name ?literal . 
}
其次,我想知道是否可以在 a
删除数据

这是不可能的。
DELETE DATA
操作只能包含固定的RDF三元组-没有变量,当然也没有子查询

但是,如果需要,可以在
DELETE WHERE
操作中使用嵌套的
SELECT
。因此以下操作是合法的:

DELETE { 
  ?uri our:name ?literal .
}
WHERE { 
  { SELECT ?uri ?literal 
    WHERE { ?uri a our:thing; 
                 our:name ?literal . 
    }
  }
}

但是,在您的特定情况下,这样做并不会给您带来任何好处:此更新与第一个更新表达的内容完全相同,只是更为迂回。

为什么您说不能在triplestore上测试它?非常确定OWLIM-SE支持SPARQL 1.1更新,除非您使用的是非常旧的版本…存储库是内容生命周期的一部分。我不喜欢玩弄东西,第二个问题确实是我一直想知道的。虽然我们有一个冗余的开发实例,但我尝试使数据与生产保持一致。随着偏差的增加,我的测试变得越来越无意义。谢谢Jeen的确认。