Я пытаюсь написать запрос 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.