Ich versuche, eine SPARQL-Abfrage zu schreiben, die mir alle foaf:Agents
geben sollte, die nicht foaf:Persons
sind.SPARQL Negation: Alle Foaf: Agenten, die nicht Foaf sind: Personen
Ich kann keine Möglichkeit sehen, this OPTIONAL/BOUND construct auf dieses Problem anzuwenden, da alle Eigenschaften wie rdfs:subClassOf
und rdf:type
transitiv und reflexiv sind.
Ich versuchte dies:
SELECT * WHERE {
?x rdf:type foaf:Agent
OPTIONAL { ?y rdf:type foaf:Person }
FILTER (!BOUND(?y)) }
Aber rdf: type transitiv, zumindest mit JENA/ARQ/SDB zu sein scheint.
Aber wie stelle ich eine Beziehung zwischen oben x und y? ? –
SPARQL 1.1 wird definitiv eine Negation haben, das Panel der Arbeitsgruppe auf der ISWC 2009 war klar auf diesem – RobV
Beachten Sie, dass SPARQL 1.1 Syntax (wie in der Link angegeben) ist tatsächlich FILTER NICHT EXISTS jetzt (benötigt das 'FILTER' Schlüsselwort oben Front) –