Я пытаюсь написать запрос SPARQL, который должен дать мне все foaf:Agents, которые не являются foaf:Persons.
Я не вижу способа применить эту конструкцию OPTIONAL/BOUND к этой проблеме, потому что все свойства, такие как rdfs:subClassOf и rdf:type, являются транзитивными и рефлексивный.
Я пробовал это:
SELECT * WHERE { 
?x rdf:type foaf:Agent 
OPTIONAL { ?y rdf:type foaf:Person } 
FILTER ( !BOUND(?y) ) }
Но rdf: тип кажется транзитивным, по крайней мере, с JENA/ARQ/SDB.
