Есть ли разница (с точки зрения характеристик, стандартов и прочего) между:
select distinct ?planeWithoutPassengers where { ?planeWithoutPassengers a <http://example.org/plane> . filter not exists { ?planeWithoutPassengers <http://example.org/hasPassenger> ?passenger . } }
И:
select distinct ?planeWithoutPassengers where { ?planeWithoutPassengers a <http://example.org/plane> . optional { ?planeWithoutPassengers <http://example.org/hasPassenger> ?passenger . } filter (!bound(?passenger)). }
Реальной разницы нет. Вторая - более старая версия, которая также работает на движках SPARQL 1.0. Однако первый вариант предпочтительнее, так как он читается более интуитивно.