Estoy tratando de escribir una consulta SPARQL que debería darme todos los foaf:Agents
que no son foaf:Persons
.Negación de SPARQL: Todos los foaf: Agentes que no son foaf: Personas
No puedo ver una forma de aplicar this OPTIONAL/BOUND construct a este problema, porque todas las propiedades como rdfs:subClassOf
y rdf:type
son transitivas y reflexivas.
yo probamos este:
SELECT * WHERE {
?x rdf:type foaf:Agent
OPTIONAL { ?y rdf:type foaf:Person }
FILTER (!BOUND(?y)) }
Pero RDF: tipo parece ser transitiva, al menos con JENA/ARQ/SDB.
Pero, ¿cómo puedo configurar una relación entre X e Y? ? –
SPARQL 1.1 es sin duda va a tener la negación, el panel de grupo de trabajo en ISWC 2009 fueron claros en que – RobV
Tenga en cuenta que SPARQL 1.1 sintaxis (como se especifica en el enlace) es en realidad 'filtro no EXISTS' ahora (necesita la palabra clave' filter hasta frente) –