Sentencia SPARQL para obtener Autores que han ganado el premio Nobel en la Biblioteca Virtual Miguel de Cervantes a partir de Wikidata

27/09/2017

Hace unos meses os presentamos el proyecto Wikidata y sus beneficios. Hemos empezado a trabajar con los datos para obtener información extra sobre los autores y obras de nuestra biblioteca. Gracias a los datos y a Wikidata podemos crear nuevo conocimiento a partir de la información de nuestro repositorio. Entre las muchas opciones, y gracias a los enlaces incorporados de autores (urls de tipo http://data.cervantesvirtual/person/*), podríamos obtener los diferentes premios que han obtenido los autores, o incluso los autores que han recibido un premio en concreto. así, si queremos obtener los diferentes premios podríamos ejecutar el siguiente ejemplo de consulta SPARQL:

SELECT ?label ?premio (count(distinct ?autor) as ?count) WHERE {
  ?autor wdt:P2799 ?id .
  ?autor wdt:P166 ?premio .
  ?premio rdfs:label ?label .
  FILTER (lang(?label) = 'es')
}
group by ?label ?premio
order by desc(?count)

Y si quisiéramos obtener los autores que han ganado un premio en concreto como por ejemplo el premio Nobel, la sentencia sería la siguiente:

SELECT ?autor ?label
WHERE {
 ?autor wdt:P2799 ?id .
 ?autor wdt:P166 wd:Q37922 .
 ?autor rdfs:label ?label .
  FILTER (lang(?label) = 'es')
 }