Grupo de Facebook DBpedia en español
Notify Twitter

Introducción#

En esta página encontrarás casos típicos de consultas. Por favor, si tienes alguna consulta interesante siéntete libre de añadirla.

Las consultas que no devuelven los resultados esperados, típicamente porque los datos de Wikipedia están mál, o por deficiencias del extractor, por favor, añádelos en preguntas abiertas.

Otra fuente interesante de consulta puede ser la QALD-2 SPARQL Queries.

Ejemplo 1. Científicos españoles#

Alternativa 1#

SELECT ?person WHERE{
   ?person dcterms:subject <http://es.dbpedia.org/resource/Categoría:Científicos_de_España>
}
Resultado.

Explicación#

Si buscas 'científicos' en wikipedia verás que hay una categoría con ese nombre. También verás que no tiene una lista de científicos, sino una lista de categorías (como 'Científicos por disciplina', o 'Científicos por país'). Si entras en la categoría 'Científicos por país' (a su vez tiene 128 categorías) y eliges la categoría 'Científicos de España' verás que (aparte de más categorías) tiene 58 páginas de científicos. Estos son los que devuelve la consulta anterior.
En realidad devuelve 59, uno más de lo esperado. La única explicación que le veo es que se haya añadido un científico después del 20 de abril de 2012 (fecha del dump de wikipedia a partir del que se han generado los datos. ¿Puedo saber la fecha de inserción de una página de wikipedia?

Alternativa 2#

PREFIX esdbpr: <http://es.dbpedia.org/resource/> 
SELECT ?person WHERE{
  ?person  rdf:type             dbpedia-owl:Scientist .
  ?person  dbpedia-owl:country  esdbpr:España . 
}
Resultado.

Explicación#

Si en wikipeda buscas un científico concreto, por ejemplo, Margarita Salas, verás (editando la página) que usa la 'ficha de Científico'. Alternativamente, puedes ver qué datos tiene es.dbpedia de Margarita salas. Para saber cómo se ha mapeado mira el mapeo de 'Ficha de científico'.

Puedes ver que un científico se mapea a la clase Scientist y que tiene una propiedad country.

Nota: Aunque la propiedad country está mapeada a dos propiedades en español (país_de_residencia y pais_de_residencia), no encuentro recursos con ninguna de esas dos propiedades. ¿Puede ser un fallo del mapeo o del extractor?.

Esta consulta produce 110 resultados, casi el doble que la anterior.

Ejemplo 2. Parejas de los hijos de Margaret Thatcher#

PREFIX esdbp: <http://es.dbpedia.org/property/> 
PREFIX esdbr: <http://es.dbpedia.org/resource/> 
SELECT ?hijo ?pareja WHERE { 
 esdbr:Margaret_Thatcher    esdbp:hijos    ?hijo .
 ?hijo                      esdbp:cónyuge  ?pareja .
}
Resultado.

Ejemplo 3. Número de recursos geolocalizados en es.dbpedia.org#

SELECT DISTINCT count (?res)  WHERE {
      ?res geo:lat ?v.
}
Resultado.

Ejemplo 4. ¿Se llama Michelle la esposa de Obama?#

PREFIX esdbp: <http://es.dbpedia.org/property/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
ASK WHERE { 
    esres:Barack_Obama    esdbp:cónyuge   ?esposa. 
    FILTER(regex(?esposa,'Michelle'))
}
Resultado.

Ejemplo 5. Nombre de grupos de música heavy de los años 80#

PREFIX esdbpp: <http://es.dbpedia.org/property/> 
PREFIX esdbpr: <http://es.dbpedia.org/resource/> 
SELECT ?grupo  WHERE{
  ?grupo  rdf:type                         dbpedia-owl:MusicalArtist .
  ?grupo  dbpedia-owl:activeYearsStartYear ?inicio .
  ?grupo  dbpedia-owl:activeYearsEndYear   ?fin .
  ?grupo  esdbpp:estilo                    esdbpr:Heavy_metal .
  FILTER ( (?inicio > "1980-01-01T00:00:00Z"^^xsd:dateTime  && ?inicio < "1990-01-01T00:00:00Z"^^xsd:dateTime ) ||
           (?fin    > "1980-01-01T00:00:00Z"^^xsd:dateTime  && ?fin < "1990-01-01T00:00:00Z"^^xsd:dateTime ) ||
           (?inicio < "1980-01-01T00:00:00Z"^^xsd:dateTime  && ?fin > "1990-01-01T00:00:00Z"^^xsd:dateTime ) 
         ) 
}ORDER BY DESC(?inicio)
Resultado.
Nota: Esta consulta se puede mejorar en varios aspectos:
  1. El cálculo de los grupos ochenteros se basa en que existe fecha de inicio y de fin. Hay grupos que tienen fecha de inicio, pero no de fin (caso de Metallica).
  2. El nombre del estilo musical es muy variable. Se escribe de diversas maneras tanto como recurso como literal.