2011-10-27 4 views
5

He estado leyendo sobre SPARQL y RDF y corrígeme si mi razonamiento sobre estas tecnologías es incorrecto aquí.¿Puedo combinar el conjunto de datos local y remoto dentro de la consulta SPARQL?

Suponiendo que tenemos una base de datos SPARQL local llamada LOCAL ... y url a un archivo remoto RDF llamado URL_RDF. ¿Puedo escribir un script digamos en PHP que hará una consulta SPARQL como esta?

Pseudocódigo.

SELECT * FROM LOCAL,URL_RDF WHERE LOCAL.id=URL_RDF.id 

En otras palabras, ¿puedo combinar fuentes dentro de una consulta SPARQL como esta (archivo remoto + db local)?

Respuesta

5

Puede hacerlo utilizando las funciones de federación en SPARQL 1.1. Estos se describen en http://www.w3.org/TR/sparql11-federated-query, pero para darle una impresión rápida de lo que parece, su consulta de ejemplo sería algo como esto (aún en pseudocódigo):

SELECT * WHERE { 
    # the local part of the query 
    ?s ?p ?id 

    SERVICE <http://url/to/remote/data> { 
    # The remote part of the query 
    ?x ?y ?id 
    } 
} 

Tenga en cuenta que la URL tendría que apuntar a una Punto final SPARQL, es decir, un servidor que puede responder consultas SPARQL, y no solo un archivo RDF remoto.

+0

Gracias Jan, ¿Puedo usar archivos rdf sin procesar? ¿siempre necesito un punto final? incluso si la consulta se relacionara solo con URL_RDF. ¿Qué pasa si este archivo URL_RDF se almacenara localmente? Agradezca su ayuda – AndroidGecko

+0

No puede consultar archivos RDF directamente, siempre necesita un poco de software que interpreta el archivo RDF y evalúa su consulta sobre estos datos. Para hacer esto, normalmente usa una "tienda triple". Todas las tiendas triples le permiten cargar archivos RDF para que pueda consultarlos. Si tiene varios archivos de datos, simplemente puede cargarlos todos en una única tienda triple y luego ejecutar sus consultas. O bien, puede usar múltiples tiendas triples y consultar entre ellas usando la sintaxis SERVICE descrita anteriormente. – Jan

Cuestiones relacionadas