Ahora ya conocemos los elementos básicos del SPARQL, y cómo podemos acceder a los datos almacenados en RDF, vamos a describir algunos patrones básicos, para nuestras consultas. Y lo vamos a hacer seleccionando pequeñas partes de nuestros datos. Los datos que vamos a consultar en este ejemplo, son datos acerca del recurso, acerca de Lima, que es de tipo lugar.
Además Lima tiene como alcalde, como nombre de su líder o alcalde, Luis Castañeda Lossio. Lima tiene como nombre oficial Lima. Además está en un país que es Perú. Y Perú, el recurso Perú es de tipo país. Estos datos que explico, están en la imagen, en un grafo RDF.
Los tenemos también en formato texto, para poder entenderlos mejor. Primero, después de haber descrito los datos, vamos a pasar a explicar, la operación más básica de SPARQL. Esta operación es AND o conjunción de patrones básicos. Esta operación dentro de la consulta SPARQL, la representamos con el signo punto (.). Ahora lo que quiero, es saber todos los datos que tengan un nombre, Y que sean de tipo lugar.
Para resolver esta pregunta, tenemos una consulta SPARQL, en la que podemos ver cómo en la tercera línea tenemos la variable Xdbprop:officialName, la variable name y un punto. Este punto significa la conjunción con el siguiente patrón básico, que es X rdf:type dbpedia-owl:Place. Este punto, esta conjunción nos indica que los dos patrones se tienen que encontrar dentro del grafo. Tienen que coincidir con nuestros datos en el grafo.
Lo primero que vamos a hacer, es buscar las URIs que tenemos en nuestra consulta para ver si existen en nuestro grafo. Esto lo hacemos, tal y cómo se muestra en la imagen y obtenemos los resultados a la consulta.
Estos resultados son primero Santiago, luego Buenos Aires y luego Lima, porque son los elementos del grafo que han coincidido con nuestra consulta que tenemos arriba.
Ahora vamos a explicar el operador SELECT. Por ejemplo, sólo queremos obtener el nombre de la ciudad, y el alcalde, y no queremos obtener la URI que representa a la ciudad. Entonces, la consulta va a ser exactamente la misma, porque necesitamos la URI dentro de la consulta, para poder seleccionar los lugares. Añadimos un nuevo triple, con la variable que vamos a utilizar
como lugar en el sujeto. Añadimos la propiedad de alcalde o líder en el predicado y luego añadimos una variable porque queremos obtener los alcaldes o líder de esa ciudad. Y finalmente en la primera línea de la consulta, podemos ver que estamos seleccionando solo el nombre y el alcalde. No estamos seleccionando la ciudad o el recurso que representa la ciudad. Esto se hace para que, al final de la consulta, sólo obtengamos los datos que deseamos.
Por ejemplo, en nuestra consulta, lo que estamos haciendo es coincidir el nuevo patrón de SPARQL con los datos que tenemos en el grafo, que sería Lima, leader name Luis Castañeda Lossio; y estos son los resultados que obtenemos después de ejecutar la consulta en la dbpedia. Como puede ver, ya no tenemos la variable X, porque no la estamos seleccionando de los datos finales y además tenemos los resultados que nos da la dbpedia para Buenos Aires (dos entradas), y Lima. Buenos Aires tiene dos entradas porque, uno de los alcaldes es el alcalde Macri, y la otra persona, es un diputado para la provincia de Buenos Aires. La propiedad de leader name, no solo nos retorna el alcalde, sino todos los representantes de esa ciudad,
en el gobierno.
Resumiendo, el operador AND lo que hace es la conjunción de varios patrones básicos de SPARQL. Un ejemplo, quiero todas las ciudades que tengan un alcalde, y quiero todas las ciudades que estén en Chile. El operador AND se representa mediante el símbolo (.) punto. Y luego, el operador SELECT nos permite seleccionar algunos datos de la consulta, descartando otros que no nos interesan.
No hay comentarios:
Publicar un comentario