Hay millones de artículos en Wikipedia, llenos de datos sobre innumerables asuntos, personas, objetos, eventos, etc. y además, en múltiples idiomas. Qué bueno sería poder consultar ese tremendo volumen de información y extraer determinados datos de una forma directa… Ah, caramba, de eso se trata Wikidata, otro proyecto de la fundación Wikimedia, que también mediante voluntarios transforma y estructura los datos provenientes de Wikipedia para hacerlos consultables mediante un “lenguaje” denominado SPARQL.
Hay un servicio para hacer consultas, con ejemplos fáciles de utilizar, también un manual para los más atrevidos.
Los elementos de Wikidata son entidades o propiedades (hay más cosas pero sólo utilizo estas), las entidades se identifican con la letra Q y un número y utilizan el prefijo wd:, y las propiedades con la letra P y un número, su prefijo es wdp:.
Las consultas se basan en “frases” o declaraciones compuestas por sujeto-predicado-objeto, que aunque suena familiar no es precisamente lenguaje natural. Tanto sujeto como objeto serán entidades y el predicado suele ser una propiedad.
La principal dificultad para hacer una consulta es encontrar los códigos que corresponden a lo que queremos encontrar, afortunadamente, en el servicio de consultas se dispone de una ayuda muy práctica, al escribir un prefijo si presionamos las teclas control y espacio, y empezamos a escribir irán apareciendo una serie de términos (con códigos) de la cual podremos elegir lo que sea conveniente.
Un ejemplo ayudará. Se me ocurrió encontrar edificios similares a Hagia Sophia, busqué su página en Wikipedia y allí abajo (al final) está el código (Q12506) y enlace a su página en Wikidata. En su descripción se puede ver que es una instancia de basílica menor (con código Q120560, también es instancia de mezquita y museo). Con esto ya podemos empezar a averiguar cosas.
A continuación explicaré paso a paso la consulta ya que se pueden ir añadiendo criterios a medida que se obtienen resultados. Nótese que cada declaración tiene tres partes (sujeto-predicado-objeto, como decíamos antes) y que para indicar un término variable lo indicamos precediéndolo con ? (una variable también se podría ver como una incógnita). El punto al final de cada declaración es igualemente parte de la sintaxis de SPARQL. Lo que aparece a la derecha del signo # es ignorado para efectos de la consulta, es un comentario.
Por lo tanto, la primera línea (después de la primera { ) es equivalente a decir ¿qué cosa (?basilica) es una instancia o ejemplo (wdt:P31) de basílica menor (wd:Q120560)?
SELECT ?basilica ?basilicaLabel ?foto ?coor ?fecha
WHERE
{
?basilica wdt:P31 wd:Q120560 . # es una basílica menor
?basilica wdt:P18 ?foto . # tiene alguna foto
?basilica wdt:P625 ?coor . # tiene coordenadas
?basilica wdt:P571 ?fecha . # tiene fecha de creación
?basilica wdt:P1435 wd:Q9259 . # es 'patrimonio de la humanidad'
FILTER(YEAR(?fecha) < 900) # la fecha es anterior al año 900
SERVICE wikibase:label
{ bd:serviceParam wikibase:language"[AUTO_LANGUAGE,en,es"} # servicio automático para las etiquetas
}
ORDER BY ?fecha # ordena los resultados por fecha ascendiente
Si sólo colocamos esta primera línea, obtenemos todas las ocurrencias/instancias de “basílica menor” que existen actualmente en Wikidata y que son más de 1200.
La segunda condición/frase añade la restricción de que tengan foto en Wikidata, según parece todas tienen porque el número de resultados sigue igual.
En tercer lugar se agrega la restricción de que tengan entre sus datos las coordenadas geográficas, cosa que tampoco reduce el número. Los resultados se pueden mostrar en forma de lista, imágenes, cronograma, y otros, si queremos mostrarlos en un mapa es necesario incluir esta lectura de coordenadas. En el mapa se muestra entonces la distribución de las basílicas menores.
La cuarta condición es que tengan una fecha de creación, sólo 876 cumplen este requisito junto con los anteriores. Gracias a esto podemos visualizar el resultado en forma de cronograma navegable, y con foto ya que habíamos incluido esta condición en la segunda línea/frase.
En quinto lugar solicitamos la lista de basílicas menores que tienen un estatus patrimonial (P1435) de “patrimonio de la humanidad” (Q9259), que produce una lista de quince basílicas.
El filtro siguiente (FILTER) es para mostrar solamente aquellas basílicas con fecha de creación anterior al año 900, que resulta sólo en estas dos:
Por supuesto, las posibilidades son infinitas, con este ejemplo apenas si arañamos la superficie de las cosas que se pueden hacer con la inmensidad de datos disponibles en Wikidata, que aunque necesariamente limitados, van mejorando cada vez más gracias al trabajo de los voluntarios.