Wikidata:Servicio de consulta SPARQL/Una introducción sencilla al Servicio de Consulta de Wikidata

Outdated translations are marked like this.

Una introducción sencilla al Servicio de Consultas de Wikidata

Alguna vez te has preguntado cosas cómo:

  • ¿Cuáles son las ciudades más grandes del mundo con una mujer alcalde?
  • ¿Qué aeropuertos están localizados en un radio de 100 Km de Berlín?
  • ¿Quiénes son los descendientes conocidos de Genghis Khan?

Wikidata tiene las respuestas.

¿Qué es Wikidata?

Wikidata es un repositorio de conocimiento. Puedes leer una introducción a la idea y conceptos detrás de Wikidata en nuestro página de introducción.

¿Cómo hago una pregunta?

El lenguaje de consulta de Wikidata para hacer preguntas como las mencionadas arriba se llama SPARQL. Si esto suena demasiado técnico o complicado para ti, no se preocupes. Para esta introducción sencilla no tendrás que aprender SPARQL. En cambio, veremos consultas de ejemplo y aprenderemos a editarlas.

¿Qué es una consulta?

Una consulta ("query") es una forma especial para hacer preguntas para que una computadora pueda entenderlas y responderlas. A menos de que estés interactuando con Inteligencia Artificial, es necesario aprender cómo formular tus preguntas de esta manera.

¿Puedo usar libremente estos datos?

¡Oh sí!. Wikidata puede ser utilizado por cualquiera pues todos los datos están en el Dominio público (CC0).

Y ahora ¿qué hago?

Empezaremos con un ejemplo sencillo para demostrar cómo para utilizar este servicio, e iremos elaborando ejemplos más complejos, de manera que al final conseguirás la respuesta a tus preguntas. Lo prometemos.

Cómo utilizar Wikidata para una consulta sencilla

Veamos un ejemplo sencillo de consulta para obtener una lista de todos los gatos conocidos en el mundo (que estén en Wikidata)

Conseguir una lista de todos los gatos en el mundo

Usa esta URL para ir al Servicio de Consulta: https://query.wikidata.org

  1. Da clic en el botón de Ejemplos (Examples) que tiene el icono de una carpeta
  2. Selecciona "Gatos" de la lista que aparece en la ventana que se ha abierto
  3. Ejecuta la consulta con el botón usando el botón de "Play" en la parte izquierda de la pantalla

 

Wikidata nos devuelte un listado de todos los gatos famosos de Internet, o al menos de los que se encuentran registrados en Wikidata. Esto es muy bueno! mientras seas una persona a la que le gustan los gatos.

¿Y con perros?

Si se quiere listar los perros conocidos (o de cualquier cosa), existen dos maneras de editar la consulta:

  1. Usar el Ayudante para cambiar el elemento "gato" por "perro":  
  2. Editar manualmente la consulta Cada elemento de Wikidata se identifica de forma única mediante un código. Este código es Q146 para “gato”. Para encontrar el código que se corresponde con “perro” se puede buscar en Wikidata:
  1. Usa la función autocompletar (se terminará de escribir al final)
  2. Comienza con el ejemplo de "Gato" borrando "Q146"
  3. Coloca el cursor después de "wd:"
  4. Escribe "Perro" después de "wd:"
  5. Pulsa Ctrl+Espacio
  6. Usa las flechas de subir y bajar; cuando presiones Enter se sustituirá por Q144
    Aviso: los resultados de la búsqueda dependen del idioma de la interfaz.
  1. Ir a https://www.wikidata.org
  2. Escribir "perro" en el campo de búsqueda
  3. Click en el primer resultado del menú desplegado
  4. Tomar nota del número de ítem para "perro" que aparece en la página de Wikidata que aparece (Q144)

 

Para cambiar la consulta de "gato" a "perro", simplemente reemplazar Q146 por Q144 en el editor de SPARQL.

Ejecutar la consulta, y Wikidata nos presentará un listado de todos los perros famosos de la Internet (o al menos los que Wikidata conoce)

 

Explicando la consulta

Vamos a tratar de analizar el código para poder generalizar y buscar un sólo objeto (por ejemplo: perros, planetas, países o canciones)

#Cats
SELECT ?item ?itemLabel
WHERE
{
	?item wdt:P31 wd:Q146 . 
	SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
  • SELECT Una consulta selecciona ("selects"). Qué es lo que específicamente queremos seleccionar y mostrar se describe más adelante, pero mientras tanto declaramos las variables. En este caso, se llaman "?item" e "?itemLabel". Podemos determinar si algo es una variable si su nombre comienza con un signo de pregunta.
  • ?item es la lista de ítems que estamos buscando. En nuestro caso, sería la lista de gatos famosos. Los ítems en Wikidata trabajan en muchos idiomas, y son almacenados de una forma que funcionen sin depender de un idioma en particular. Cada concepto recibe un número. Q146 es el concepto de un gato, Q64 es la ciudad de Berlín en Alemania, Q42 es el escritor Douglas Adams, y así en adelante. Tip: ?item es sólo un nombre de variable que decidimos usar en la Query. Puede nombrarse de cualquier manera, como por ejemplo: ?animal.
  • ?itemLabel. Los seres humanos pueden interpretar el lenguaje de mejor manera de la que pueden interpretar números. Una etiqueta es el nombre de un ítem en lenguaje humano, por ejemplo en español (o en inglés, o en zulu, o en japonés....). Queremos que las etiquetas se muestren en nuestra consulta para que Q1371145 se identifique como "Socks" (el gato de la familia de Bill Clinton). Más detalles sobre el servicio de etiquetas en el Manual de Usuario. Tip: Para que el servicio de consultas interprete que ?itemLabel es una etiqueta, tiene que contar con la palabra "Label" al final. Ej: ?animalLabel.
  • WHERE {. La cláusula WHERE ("tal que") define que valores tendrán las variables. Una cláusula WHERE comienzan con una llave de apertura "{" y finalizan con una llave de cierre "}".
  • wdt:P31 Es el predicado del sujeto. Si pasamos el mouse sobre él, podemos ver a qué identifica.

What exactly you want to select and display is described later, but for the time being you just state the placeholders (or variables). Here they are called ?item and ?itemLabel. You can tell that something is a variable if it starts with a question mark.

  • ?item This is the list of items we are looking for.

In our case that would be the famous cats. Items on Wikidata work in many different languages, almost 300 of them. Because we don’t think that everything in the world is English and all the other languages are just special cases of English, items are stored in a way that works across languages. Every concept gets a number. Q146 is the concept of a cat, Q64 is Berlin in Germany, Q42 is the writer Douglas Adams and so on. Tip: ?item is just a variable name that we decided to use in our query. It could be anything, for example: ?animal.

  • ?itemLabel Humans can digest names in a human language much better than numbers.

A label is the name of an item in a human language, e.g. English (or Esperanto, or Japanese, or Zulu…). We want the labels displayed in our query so that Q1371145 gets displayed as “Socks” (the cat belonging to Bill Clinton and family). Precise details about label service in User manual.

  • WHERE {   This is the WHERE clause of the query.

Here we define what goes in the placeholders. A WHERE clause starts with an opening curly bracket { and ends with a closing curly bracket }.

  • wdt:P31 This is the predicate of the subject.

If you hover over it, you’ll see that it stands for instance of.

 

  • wd:Q146 . Este es el objeto. Si pasamos el mouse sobre el ítem, podemos ver que identifica a "gato".

If you hover over it, you’ll see that it stands for cat.

 

¡Todo esto es bastante texto! Quizás sea mejor expresar la consulta en lenguaje natural:

“Dame una lista de ítems y sus etiquetas, tal que los ítems sean instancias de gato. Luego genera las etiquetas de dichos ítems en Español.”

Con el código que usamos en nuestro ejemplo, mostramos una lista de gatos famosos en la Internet. Esta consulta puede cambiar fácilmente para mostrar, por ejemplo, una lista similar de perros

Texto a SPARQL paso a paso

Las animaciones aquí abajo muestran como escribir triples en lenguaje natural, y convertirlas en consultas SPARQL

Lo importante es prefijar las variables con ?, ítems con wd: y propiedades con wdt:, y luego usar el atajo de teclado Ctrl+Space (o Ctrl+Alt+Space o Alt+Enter) para activar la opción de auto-completado que actualiza los valores a los idenficadores correctos de Wikidata.

 

 

Comenzando con la Interfaz de usuario

¿Cómo cambiar el lenguaje de los resultados que se muestran?

Con esta herramienta, no solo podemos realizar consultas complejas (busquedas simples, agregadas, anidadas o compuestas, por Ej.), pero también podemos buscar en CUALQUIER idioma y obtener resultados en CUALQUIER OTRO idioma.

  • Cambiemos el código de idioma predeterminado, de "en" (Inglés) por cualquier otro, como por ejemplo "ja" (Japonés)
#Cats  
SELECT ?item ?itemLabel WHERE
{
     ?item wdt:P31 wd:Q146 .
     SERVICE wikibase:label { bd:serviceParam wikibase:language "ja" }
}

¿Cómo cambiar el orden de los resultados?

El órden de los ítems puede cambiarse fácilmente desde la interfaz gráfica. Simplemente hay que hacer click en la columna de resultados que se desea ordenar y desde allí se puede alterar el ordenamiento.

 

¿Cómo cambiar el lenguaje de la interfaz gráfica?

Click en la palabra "English" para seleccionar el idioma que queremos utilizar:

 

Notemos que la interfaz gráfica cambió al idioma seleccionado:

 

¡Pero yo quiero fotos de gatos! ¿Cómo busco por imágenes?

Hasta ahora, hemos visto los resultados de la consulta como una tabla. Probemos buscar imágenes:

Click en el botón de "Ejemplos" y seleccionar el ejemplo "Event more cats, with pictures". Corramos la consulta y nos debería devolver imágenes de gatos en la parte inferior de la pantalla.

 

Esto es lo que muestra el resultado como imágenes en vez de una tabla. Se puede cambiar manualmente como la información se visualiza eligiendo el botón de "Visualización" en la parte inferior derecha del resultado. Probemos cambiar la visualización a "Tabla" para ver el mismo resultado en forma de tabla.

Veamos qué hay de nuevo en la consulta, en comparación con la que hicimos en el capítulo anterior. De forma sencilla, la consulta decía “Dame todos los elementos que tengan algo que ver con los gatos. También muéstrame la imagen de cada elemento. Y muéstrame el resultado en una cuadrícula de imágenes, no como una tabla”.

  • #defaultView:ImageGrid Lo que parece un comentario, en realidad es una instrucción para mostrar el resultado de la consulta como imágenes en lugar de una tabla.
  • ?x1 Esto significa que buscamos cualquier predicado, no sólo “es un ejemplo de”. Piensa en predicados como “representa” (P180) o “recibe su nombre” (P138). No estamos usando ?x1 en ninguna otra parte de la consulta, lo que significa que el marcador de posición quiere decir “No me importa cuál sea el predicado, dame todos los resultados que de alguna manera tengan un gato como sujeto”.
  • OPTIONAL Dentro de las llaves se ve otra declaración que añade datos opcionales al resultado. El marcador de posición ?elemento es reutilizado y acoplado con el predicado P18 (que significa “(tiene) imagen” y un nuevo marcador de posición ?pic. Colocando OPTIONAL decimos que los elementos no tienen que tener necesariamente un predicado P18 para aparecer en la lista y que el marcador de posición ?pic puede estar vacío.

Intenta modificar la siguiente consulta:

  • Busca perros en lugar de gatos. Pista: cambia la parte Objeto de la primera declaración en DÓNDE.
  • Muestra sólo elementos que “representa” gatos (te mostrará cuadros). Pista: reemplaza ?x1 con otra cosa.
  • Elimina OPTIONAL.

Hay otras formas de mostrar sus datos, pero no todas son siempre aplicables, por lo que algunas de ellas aparecen en gris en el menú. El “mapa de imagen” sólo se puede seleccionar si los datos resultantes contienen realmente URLs de imágenes. En uno de los siguientes capítulos veremos cómo mostrar los elementos como puntos en un mapa.

¿Cómo se comparte con otros una consulta?

Si quieres compartir tu consulta con alguien más, por ejemplo, en redes sociales, puedes crear un enlace.

  • Termina tu consulta
  • Haz click en el icono de ENLACE:
 
  • Copia la URL que aparece. Ésta es la URL de la consulta.

Búsqueda en mapas

Hay más formas de visualizar los resultados de la consulta. Si se solicitan coordenadas geográficas, los resultados se pueden mostrar en un mapa.

Mira este ejemplo de lighthouses in Norway. Cuando realizas la consulta, verán puntos rojos que marcan la ubicación de los faros en la costa noruega.


Uso del cuadro de diálogo para explorar

Una vez que se han cargado los resultados de una consulta, puedes usar la lupa en cada resultado. Al hacer clic en este icono se abre el cuadro de diálogo para explorar.

Clicking this icon opens the Explorer Dialog.

 

El explorador muestra, por defecto, un solo nodo que representa ese resultado en particular. Debajo del nodo, hay un botón de ‘Saliente’. Esto significa que, al hacer clic en cualquier nodo, se expandirán todas sus propiedades, a partir de toda la información disponible en Wikidata. Cambiando esto a ‘Entrante’ podrás ver todos los enlaces entrantes o propiedades que apuntan al nodo. Ésta es una forma de explorar todas las relaciones entre los distintos elementos y sus propiedades utilizando Wikidata.

This means that clicking on any node will expand all the properties of that node, from the entire Wikidata knowledge base. Toggling this to ‘Incoming’ allows you to see all the incoming links or properties that point to the node. This is a way to explore all the relationships between the various items and their properties using Wikidata.

 

Puedes abrir varios cuadros de diálogo simultáneos, lo que permite comparar resultados de más de una consulta a la vez. El explorador también tiene una barra de herramientas en la esquina inferior derecha que se usa para cambiar entre múltiples vistas como Gráfico, Árbol, Mapa, Tabla, etc.

The explorer dialog also has a toolbar at the bottom right corner which is used to switch between multiple views like Graph, Tree, Map, Table etc.

Todavía hay más

Hay más visualizaciones que se pueden explorar:

¡Echa un ojo a estos ejemplos de consultas y pruébalos!

Autocompletado

En el editor, en cualquier momento de la consulta, puedes pulsar Ctrl+Espacio para obtener sugerencias de código que pueden ser apropiadas. Selecciona la correcta con los cursores de arriba/abajo y pulsa Enter para seleccionarla.

Por ejemplo, en lugar de escribir cada vez SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }, puedes poner SERV, pulsar Ctrl+Espacio, y la primera sugerencia aparecerá lista para ser usada... ¡como por arte de magia! Pulsa Enter para aceptarla. (El formato será un poco diferente, pero no importa).

Y el autocompletado también puede buscarte. Si pones uno de los prefijos de Wikidata, como wd: o wdt:, y después escribes algo y pulsas Ctrl+Espacio se buscará ese texto en Wikidata sugiriendo una serie de resultados. Puedes usar wd: para buscar elementos y wdt: para propiedades. Por ejemplo, en lugar de buscar los elementos para Johann Sebastian Bach (Q1339) y father (P22), puedes escribir directamente wd:Bach y wdt:fath seleccionar el correcto con la función de autocompletar. (Esto funciona incluso con espacio en el texto, p. ej. wd:Johann Sebastian Bach).

Aviso: Para usuarios de ChromeOS y MacOS, los atajos Ctrl+Alt+Espacio y Alt+Enter también funcionan.

Cómo seguimos a partir de aquí

Puede que ahora sepas cómo usar el servicio de consulta de Wikidata. Explorar la interfaz y cambiar los valores en las consultas puede ser una buena manera de aprender a hacer sus propias preguntas en Wikidata.