Rdf SPARQL为什么同时存在删除和WHERE条件?
最近,我根据匹配模式删除了一些数据Rdf SPARQL为什么同时存在删除和WHERE条件?,rdf,sparql,triplestore,Rdf,Sparql,Triplestore,最近,我根据匹配模式删除了一些数据?s a:answers,我注意到,只有在两个条件块相同的情况下,我才能正确进行删除: PREFIX : <http://localhost:2020/vocab/> DELETE { ?s a :answers } WHERE { ?s a :answers } # returns all the correct data 前缀: 删除{ 答:答案 } 在哪里{ 答:答案 } #返回所有正确的数据 如果删除块更一般化
?s a:answers
,我注意到,只有在两个条件块相同的情况下,我才能正确进行删除:
PREFIX : <http://localhost:2020/vocab/>
DELETE {
?s a :answers
}
WHERE {
?s a :answers
}
# returns all the correct data
前缀:
删除{
答:答案
}
在哪里{
答:答案
}
#返回所有正确的数据
如果删除块更一般化,则不会返回任何内容:
PREFIX : <http://localhost:2020/vocab/>
DELETE {
?s ?p ?o
}
WHERE {
?s a :answers
}
# returns 0 rows
前缀:
删除{
?s?p?o
}
在哪里{
答:答案
}
#返回0行
有两组不同的条件(大括号之间的东西:
{…}
)的目的是什么?究竟是哪一个选择了要删除的数据?因为您删除的内容可能与您的位置不匹配
第一种情况有一种特殊形式:
DELETE WHERE { ?s a :answers }
在第二种情况下,p和o不受约束。尝试:
DELETE {
?s ?p ?o
}
WHERE {
?s a :answers .
?s ?p ?o .
}