2012-07-12 59 views
2

我想删除与标签中包含某些字符的对象相关的所有语句。我正在使用查询:Sparql查询删除所有语句

DELETE 
{?term ?p ?o} 
WHERE 
{ 
?term rdfs:label ?label. 
FILTER(regex(?label, "xx", "i")) 
?term ?p ?o. 
} 

但是,此查询似乎无法删除包含此语句的主题作为对象的所有语句。然后我似乎需要另一个查询。

DELETE 
{?s ?p ?term} 
WHERE 
{ 
?term rdfs:label ?label. 
FILTER(regex(?label, "xx", "i")) 
?s ?p ?term. 
} 

的SELECT *似乎并不为DELETE工作,我也曾尝试内没有成功DELETE来模拟一个UNION。你能指点我的解决方案吗?非常感谢。

回答

4

试试这个。它适用于我插入和删除

DELETE 
{?term ?p ?o} 
WHERE 
{ 
SELECT ?term ?p ?o 
WHERE{ 
    ?term rdfs:label ?label. 
    FILTER(regex(?label, "xx", "i")) 
} 
}