Grupo de Facebook DBpedia en español
Notify Twitter


Introduction#

Here we show some of the 100 queries of the QALD-2 Challenge.

#4 Which river does the Brooklyn Bridge cross? #

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE { 
   res:Brooklyn_Bridge dbo:crosses ?uri . 
   OPTIONAL { ?uri rdfs:label ?string. FILTER (lang(?string) = 'en') } 
}

esDBpedia SPARQL Query#

La query sobre la esDBpedia no da resultados.

Para ver todo lo que tenemos del Puente de Brooklyn hacemos al siguiente consulta

PREFIX esres: <http://es.dbpedia.org/resource/> 
SELECT *  WHERE { 
   esres:Puente_de_Brooklyn ?p ?v . 
}

Vemos que una de la propiedades es "cruza", por lo que podemos hacer la query

PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX esdbp: <http://es.dbpedia.org/property/> 
SELECT *  WHERE { 
   esres:Puente_de_Brooklyn esdbp:cruza ?v . 
}

Si hubiese mapeo para la clase Bridge, y hubiese mapeo de la propiedad crosses, el extractor generaría una tripleta crosses para el puente de Brooklyn y podríamos poner la siguiente query

PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX dbp: <http://es.dbpedia.org/property/> 
SELECT *  WHERE { 
   esres:Puente_de_Brooklyn dbp:crosses ?v . 
}

Como, a fecha de hoy, no está mapeada la clase Bridge (ni la propety crosses), esta query no devuelve el resultado esperado.

#67 Give me the websites of companies with more than 500000 employees#

DBpedia SPARQL Query#

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
SELECT DISTINCT ?string WHERE {
   ?subject rdf:type dbo:Company .
   ?subject dbp:numEmployees ?employees . 
   FILTER( xsd:integer(?employees) > 500000 ) . 
   ?subject foaf:homepage ?string . 
}

esDBpedia SPARQL Query#

La clase Company no está mapeada, pero AirLine (subclase de Company) sí está mapeada, pero Airline es subclase de Company, así que si listamos todas las companies sólo salen líneas aereas. Organisation está mapeada a Organización. En DBpedia, Company es subclase de Organisation. Una vez más estamos en el caso de Cuerpo de agua. Solución: en esDBpedia debería estar mapeada Company.

#56 What is the official website of Tom Cruise?#

DBpedia SPARQL Query#

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT DISTINCT ?string WHERE { 
  res:Tom_Cruise foaf:homepage ?string . 
} 

esDBpedia SPARQL Query#

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
SELECT DISTINCT ?string WHERE { 
  res:Tom_Cruise foaf:homepage ?string . 
} 

Esta sí funciona. Está mapeada la clase Actor, y de ahí la property foaf:homepage (mapeada como sitioWeb)

#84 Give me all movies with Tom Cruise#

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
 ?uri rdf:type dbo:Film. 
 ?uri dbo:starring res:Tom_Cruise . 
 OPTIONAL {?uri rdfs:label ?string . FILTER (lang(?string) = 'en')}
} 

esDBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
 ?uri rdf:type dbo:Film. 
 ?uri dbo:starring res:Tom_Cruise . 
 OPTIONAL {?uri rdfs:label ?string . FILTER (lang(?string) = 'es')}
} 

Esta sí funciona. Está mapeada la clase Film y de ahí la property starring. Para que saque la string debe cambiarse el optional (rdfs:label --> foaf:name). Se observa que cada país hispanohablante pone un nombre distinto a la película.

#62 Who created Wikipedia?#

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
  res:Wikipedia dbo:author ?uri . 
  OPTIONAL { ?uri rdfs:label ?string . 
             FILTER (lang(?string) = 'en') }
} 

Estos datos salen del recurso Wikipedia, donde se dice en su propiedad author los valores mostrados en el resultado.

Esta query NO da resultados en español. Wikipedia es un WebSite, hay mapeo de WebSite a SitioWeb, y la propiedad author mapea a autor.

En la Ficha de Sitio Web no está la propiedad autor, está creador. Otra cosa es que haya muchas instancias que den valor a una propiedad "ilegal" (no entre las propiedades definidas por la ficha). En su lugar, la ficha define la propiedad creador.

Por tanto, la query que devuelve el resultado es esta:

esDBpedia SPARQL Query#

PREFIX dbp: <http://es.dbpedia.org/property/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
  res:Wikipedia dbp:creador ?uri . 
  OPTIONAL { ?uri rdfs:label ?string . 
             FILTER (lang(?string) = 'en') }
} 

Solución: cambiar el mapeo de la Ficha Sitio Web para que la propiedad author, en lugar de mapear con autor, mapee con creador. Con este cambio la query de QALD-2 no habría que cambiarla (tan solo los prefix).

Funciona porque creador es el mapeo de la propiedad creator.

PREFIX dbp: <http://es.dbpedia.org/property/> PREFIX res: <http://es.dbpedia.org/resource/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT * WHERE { res:Wikipedia dbp:autor ?uri . }

#76 How many films did Hal Roach produce? #

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT COUNT(DISTINCT ?uri) WHERE { 
  ?uri dbo:producer res:Hal_Roach . 
} 

En este caso, la propiedad producer está en OWL como /ontology/producer así que el extractor NO CREA la property /property/producer (si no estuviese, la crearía)

Por tanto, la versión española sería:

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
SELECT COUNT(DISTINCT ?uri) WHERE { 
  ?uri dbo:producer res:Hal_Roach . 
} 

#10 In which country does the Nile start?#

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
  res:Nile dbo:sourceCountry ?uri .
  OPTIONAL { ?uri rdfs:label ?string. 
             FILTER (lang(?string) = 'en') } 
}

No sabemos nada del Nilo porque en la wikipedia española es un Curso de agua, que no está mapeado. Solución: mapear Curso de agua.

#8 Which states of Germany are governed by the Social Democratic Party?#

DBpedia SPARQL Query#

PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX yago: <http://dbpedia.org/class/yago/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE { 
  ?uri rdf:type yago:StatesOfGermany .
     { ?uri dbp:rulingParty 'SPD'@en . } UNION
     { ?uri dbp:rulingParty res:Social_Democratic_Party_of_Germany . }
  OPTIONAL { ?uri rdfs:label ?string.
             FILTER (lang(?string) = 'en') }
} 

En esDBpedia no hay ningún recurso que sea de tipo yago:StatesOfGermany

Si intentamos adapatar la query, podemos sacar los estados alemanes (sacamos la property viendo una de la regiones) con la query:

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
SELECT *  WHERE { 
  ?r rdf:type dbo:AdministrativeRegion . 
  ?r dbo:country res:Alemania
} 

Ninguno de estos estados tiene una propiedad relacionada con el partido político. En la wikipedia inglesa hay una ficha GermanState que tiene la propiedad ruling_party1 y ruling_party2. En la wikipedia española está la ficha Entidad Subnacional que no tiene nada de partidos, como mucho lider.

Si miramos Berlín, vemos que tiene la propiedad dirigente. Esta query saca los políticos de las regiones administrativas alemanas.

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
PREFIX yago: <http://dbpedia.org/class/yago/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT * WHERE { 
  ?r <http://es.dbpedia.org/property/dirigente> ?nombre .
  ?r rdf:type dbo:AdministrativeRegion .
  ?r dbo:country res:Alemania
} 

Pero no podemos avanzar mucho más. Igual su hubiese una lista de políticos de cada partido..

#14 How tall is Claudia Schiffer? #

DBpedia SPARQL Query#

PREFIX res: <http://dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT DISTINCT ?height WHERE { 
res:Claudia_Schiffer dbo:height ?height . 
}

Esta sí está, cambiando el resource a es.dbpedia. La info es distinta a la que hay en la dbpedia inglesa. En la dbpedia española, la estatura (propiedad mapeada de Ficha de Modelo) es 1.80. En la dbpedia inglesa, height (propiedad de dbo:Model) es xsd:double con valor 1.81.

esDBpedia SPARQL Query#

PREFIX res: <http://dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT DISTINCT ?height WHERE { 
res:Claudia_Schiffer dbo:height ?height . 
}

#23 Which television shows were created by Walt Disney?#

DBpedia SPARQL Query#

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT ?uri ?string WHERE {
  ?uri rdf:type dbo:TelevisionShow . 
  ?uri dbo:creator res:Walt_Disney . 
  OPTIONAL { ?uri rdfs:label ?string. 
             FILTER (lang(?string) = 'en') }
} 

Los TelevisionShow y sus creadores de la dbpedia española los saco con

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT DISTINCT * WHERE {
  ?uri rdf:type dbo:TelevisionShow . 
  ?uri dbo:creator ?v . 
}