Estoy buscando utilizar SPARQL para una tarea relativamente básica: dado un gráfico FOAF, me gustaría analizar los elementos que encuentro ahí, obtener sus etiquetas (si existen) y luego, utilícelos como nuevos gráficos para encontrar información sobre esas personas.Usando la palabra clave 'GRAPH' en SPARQL para buscar gráficos remotos
Así, por ejemplo, podría imaginarse un caso de uso simple donde quiero ejecutar una consulta SPARQL para enumerar todos mis alimentos favoritos (según mi archivo FOAF), y también los alimentos favoritos de todos mis amigos.
Esto es lo que parece en este momento. Tenga en cuenta que para fines de prueba, por el momento, todo lo que trato de hacer con la siguiente consulta es buscar el nombre del amigo, a través de la variable? Name3. La ejecución de esta consulta no arroja ningún resultado para? Graph y? Name3, aunque sé que rdfs: seeAlso también enlaza con algunos archivos RDF válidos, de los cuales al menos dos deberían tener un atributo de nombre. Gracias por cualquier aporte que pueda tener!
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?name1 ?name2 ?graph ?name3
FROM <my-rdf-file>
WHERE {
?person1 foaf:knows ?person2 .
?person1 foaf:name ?name1 .
?person2 foaf:name ?name2 .
OPTIONAL {
?person2 rdfs:seeAlso ?graph .
GRAPH ?graph {
?person3 foaf:name ?name3 .
}
}
}
Gracias Steve! Supongo que tiene sentido que este "autodescubrimiento" de los gráficos RDF podría ser un problema, especialmente si conduce a un crecimiento explosivo en el tamaño del gráfico en cuestión. Aún así, parece que sería una técnica muy poderosa en consultas SPARQL. De todos modos, encontré una alternativa que hace el truco para mi problema relativamente simple. – Geoffroy