是的你可以!如果你可以使用不存在。
SPARQL 与 SQL 一样,没有通用量词,但您可以使用嵌套的 NOT EXISTS-s。
您的查询是,在伪 SPARQL 中,“给我所有对 (a,c),这样 abc 就没有其他 bb 这样 a-bb 而不是 bb-c --- 并且虎钳诗句:bb-c 而不是 a- bb":
PREFIX : <http://test/>
SELECT ?a ?b ?c
WHERE
{ ?a :ab ?b .
?b :bc ?c .
FILTER NOT EXISTS
{ ?a :ab ?bb .
FILTER NOT EXISTS
{ ?bb :bc ?c . }
}
## vise verse:
FILTER NOT EXISTS
{ ?bb :bc ?c .
FILTER NOT EXISTS
{ ?a :ab ?bb . }
}
}
运行它
@prefix : <http://test/> .
:a1 :ab :b1 .
:a1 :ab :b2 .
:a2 :ab :b2 .
:a2 :ab :b3 .
:b2 :bc :c1 .
:b3 :bc :c1 .
给
----------------------------------------------------------
| a | b | c |
==========================================================
| <http://test/a2> | <http://test/b3> | <http://test/c1> |
| <http://test/a2> | <http://test/b2> | <http://test/c1> |
----------------------------------------------------------