0
我有類似:SPARQL不同運營商
SELECT DISTINCT ?name1
WHERE {
GRAPH <blabla>
{
?k swrc:author ?x.
?x foaf:name ?name1.
}.
GRAPH <blabla2>
{
?l swrc:author ?y.
?y foaf:name ?name2.
}.
FILTER(?x != ?y).
}
我想什麼是隻存在於第一個圖布拉布拉名稱。 直觀地反駁我得到一些實際屬於交叉點的名稱。發生這種情況是因爲b(集合A)= b(集合B)? 。什麼是!=的正確語義?我怎樣才能超越這個問題?
命名圖只是三元組的集合。它並不「擁有」出現在三元組中的資源。 RDF資源是URI,空白節點或文字。無論出現什麼圖形,URI都是一樣的。這實際上是使用URI作爲標識符的一大特點。這意味着你可以描述一些資源,其他人也可以。 –
鑑於無論它們出現在哪裏的URI都是相同的,這看起來像您之前的問題(在SPARQL中設置差異)的副本(http://stackoverflow.com/q/21391444/1281433),模仿了以下事實:使用不同的模式來綁定變量。它仍然是一個問題:如果你想要一個設置差異'{?e:e in A,e not in B}',你需要一個像''?e是A ...的元素的查詢...過濾器不存在{...?e是B的一個元素}。 –