MINUS
lets you select results that don’t fit some graph pattern. FILTER NOT EXISTS
is mostly equivalent (see the SPARQL spec for an example where they
differ), but – at least on WDQS – usually slower by quite a bit."SPARQL has three different idioms for excluding subsets:
OPTIONAL { ... ?x ... } FILTER(!bound(?x))
,FILTER NOT EXISTS { ... }
MINUS { ... }
Currently, in almost all circumstances, Blazegraph resolves all of these to the same query plan.