DELETE WHERE查询中的可选三元组

时间:2018-02-01 03:00:49

标签: sparql

我要删除http://example.com/entity/something rdf:type的资源ex:sometype。资源可能<也不是拥有?something。如果是ex:has ?something,我还想删除关系(但当然不是资源?something)。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ex: <http://example.com/#>
DELETE WHERE {
       <http://example.com/entity/something> rdf:type ex:sometype ;
                 ex:has ?something . 

这只适用于<http://example.com/entity/something> ex:has ?something。我尝试使用OPTIONAL{}选择第二个statament,但它似乎不适用于DELETE WHERE

1 个答案:

答案 0 :(得分:1)

可以在单个请求中提供多个操作,以&#34;;&#34;

分隔

DELETE WHERE { <http://example.com/entity/something> rdf:type ex:sometype } ; DELETE WHERE { <http://example.com/entity/something> ex:has ?something } 第一个删除所有类型语句,第二个删除任何ex:has语句。

通过分离它们,删除类型语句不依赖于匹配ex:has

使用@AKSW提供的OPTIONAL的完整DELETE表格也可以使用。