[{TableOfContents title='Contenido'}]

\\

Estas son las preguntas #11 a #20 del [QALD-2 Challenge |http://greententacle.techfak.uni-bielefeld.de/~cunger/qald/index.php?x=challenge&q=2]. Todas en [QALD-2 SPARQL Queries].

!!Q#11 Which countries have places with more than two caves?

!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT DISTINCT ?uri WHERE { 
   ?cave rdf:type dbo:Cave . 
   ?cave dbo:location ?uri . 
   ?uri rdf:type dbo:Country . 
} GROUP BY ?uri HAVING (COUNT(?cave) > 2)
}}}

Con resultado:

|uri
|http://dbpedia.org/resource/United_Kingdom
|http://dbpedia.org/resource/China
|http://dbpedia.org/resource/United_States
|http://dbpedia.org/resource/Germany
|http://dbpedia.org/resource/Mexico
|http://dbpedia.org/resource/England
|http://dbpedia.org/resource/Brazil
|http://dbpedia.org/resource/Republic_of_Ireland
|http://dbpedia.org/resource/Wales
|http://dbpedia.org/resource/Greece
|http://dbpedia.org/resource/Jamaica

![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"Qué países tiene al menos dos lugares con cuevas?"

La traducción directa no es posible porque no [tenemos mapeada la clase|QALD-2 SPARQL Queries#section-QALD-2+SPARQL+Queries-MapeosInversos] Cave. La versión inglesa sí está mapeada.

----
!!Q#12 Is proinsulin a protein? 

!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#> 
ASK WHERE { 
  res:Proinsulin rdf:type dbo:Protein
}
}}}

Con resultado: __true__

![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿Es una proteína la proinsulina?
La traducción directa (cambiado res por esres) es:
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
ASK WHERE { 
  esres:Proinsulin rdf:type dbo:Protein
}
}}}
que devuelve el resultado __false__  :-(
La explicación es que en esDBpedia no sabemos nada del recurso esres:Proinsulin. Si miramos en la wikipedia inglesa, vemos que la [proinsulin|http://wikipedia.org/wiki/Proinsulin] se traduce al español como [proinsulina|http://es.wikipedia.org/wiki/Proinsulina].

Si buscamos ahora con
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
ASK WHERE { 
  esres:Proinsulina rdf:type dbo:Protein
}
}}}

el resultado es __true__

Nota: existe mapeo para la clase Protein

----
!!Q#13 Which classis do tree frogs belong to? 

!DBpedia SPARQL Query
{{{
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT DISTINCT ?uri WHERE { 
  res:Hylidae dbp:classis ?uri . 
}
}}}

Con resultado: 
|uri
|http://dbpedia.org/resource/Amphibian
|http://dbpedia.org/resource/Amphibia

![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿A qué clase pertenecen las ranas arborícolas?" (__OJO__: es importante saber que esas ranas son de la familia Hylidae)

La traducción directa (sólo cambiado res por esres) sería:
{{{
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
SELECT DISTINCT ?uri WHERE { 
  esres:Hylidae dbp:classis ?uri . 
}
}}}
que no devuelve resultados. El motivo es que en esDBpedia no tenemos ningún recurso con la propiedad dbp:classis. Aunque esta familia [tiene página en esWikipedia|http://es.wikipedia.org/wiki/Hylidae], y esta página usa la "ficha de taxón"], y que está relleno el atributo familia con el valor Hylidae, no se están generando triples. Un motivo puede ser que [hay errores en el mapeo de "ficha de taxón"|http://mappings.dbpedia.org/server/mappings/es/validate/*].

Nota: podemos comprobar que no hay mapeo para la propiedad dbp:classis usando las indicaciones de [mapeos inversos|QALD-2 SPARQL Queries]

----

!!Q#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 . 
}
}}}

Con resultado: 1.81

![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿Cuánto mide Claudia Schiffer?"

La traducción directa (sólo cambiado res por esres)
{{{
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT DISTINCT ?height WHERE { 
   esres:Claudia_Schiffer dbo:height ?height . 
}
}}}

funciona, pero el resultado es distinto. Se debe a que en la wikipedia del español se indica 1.80, y en la inglesa se indica 1.81.

Nota: si usamos esdbp:estatura (existe "ficha de modelo" y estatura se mapea como dbo:heigh) la query
{{{
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX esdbp: <http://es.dbpedia.org/property/> 
SELECT  * WHERE { 
   esres:Claudia_Schiffer esdbp:estatura ?v . 
}
}}}
da como resultado la cadena "1,80 m"@es  (antes obtuvimos un valor numérico)

----

!!Q#15 Who created Goofy? 

!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT DISTINCT ?uri WHERE {
  res:Goofy dbo:creator ?uri . 
}
}}}

Con resultado: __http://dbpedia.org/resource/Art_Babbitt__

![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿Quién creó a Goofy?

La traducción directa (sólo cambiado res por esres) sería
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
SELECT DISTINCT ?uri WHERE {
  esres:Goofy dbo:creator ?uri . 
}
}}}

que da le resultado correcto: http://es.dbpedia.org/resource/Art_Babbitt

----

!!Q#16 Give me the capitals of all countries in Africa

!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX yago: <http://dbpedia.org/class/yago/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT DISTINCT ?uri WHERE { 
   ?states rdf:type yago:AfricanCountries .
   ?states dbo:capital ?uri . 
}
}}}

que da como resultado una lista enorme de recursos, entre los que están 
Nouakchott, Praia, Banjul, etc.
Si los cuento salen 45.


![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"Dame las capitales de todos los países africanos"

La traducción directa no es posible porque en esDBpedia no hay categorías YAGO.

Tampoco he visto ([MRA]) ninguna Categoría Wikipedia que proporcione los países africanos. Sólo [hay un anexo con una tabla|http://es.wikipedia.org/wiki/Anexo:Pa%C3%ADses_de_%C3%81frica], pero esta tabla no está mapeada.

----

!!Q#17 Give me all cities in New Jersey with more than 100000 inhabitants

!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT DISTINCT ?uri WHERE { 
   ?uri rdf:type dbo:City .
   ?uri dbo:isPartOf res:New_Jersey . 
   ?uri dbp:populationTotal ?inhabitants . 
   FILTER (?inhabitants > 100000) . 
}
}}}

que da como resultado 

|uri
|http://dbpedia.org/resource/Jersey_City%2C_New_Jersey
|http://dbpedia.org/resource/Paterson%2C_New_Jersey
|http://dbpedia.org/resource/Newark%2C_New_Jersey
|http://dbpedia.org/resource/Elizabeth%2C_New_Jersey


![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"Dame todas las ciudades de Nueva Jersey con más de 100000 habitantes"

La traducción directa (cambiando res por esres y dbp por esdbp) sería
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esdbp: <http://es.dbpedia.org/property/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT DISTINCT ?uri WHERE { 
   ?uri rdf:type dbo:City .
   ?uri dbo:isPartOf esres:New_Jersey . 
   ?uri dbo:populationTotal ?inhabitants . 
   FILTER (?inhabitants > 100000) . 
}
}}}

pero no sale nada. El motivo es que no está mapeada la propiedad dbo:isPartOf

En esWikipedia podemos encontrar la categoría [Asentamientos de Nueva Jersey|http://es.wikipedia.org/wiki/Categor%C3%ADa:Asentamientos_de_Nueva_Jersey] y [Ciudades de Nueva Jersey|http://es.wikipedia.org/wiki/Categor%C3%ADa:Ciudades_de_Nueva_Jersey]. La primera categoría no aparta ninguna ciudad, pero la segunda sí, por lo que se podría poner algo como esto:
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esdbp: <http://es.dbpedia.org/property/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX dcterms:	<http://purl.org/dc/terms/>
SELECT DISTINCT ?uri WHERE { 
   ?uri dcterms:subject <http://es.dbpedia.org/resource/Categoría:Ciudades_de_Nueva_Jersey> .
   ?uri dbo:populationTotal ?inhabitants . 
   FILTER (?inhabitants > 100000) . 
}
}}}

que devuelve:
|uri
|http://es.dbpedia.org/resource/Newark_(Nueva_Jersey)
|http://es.dbpedia.org/resource/Jersey_City_(Nueva_Jersey)
|http://es.dbpedia.org/resource/Elizabeth_(Nueva_Jersey)

Nos falta una ciudad (Paterson), que no está en la lista de la categoría, pero lo damos por bueno.

Nota: La propiedad dbo:populationTotal es de las que es muy costoso saber su mapeo (ver [QALD-2 SPARQL Queries]).

----
!!Q#18 Which museum exhibits The Scream by Munch?

!DBpedia SPARQL Query
{{{
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT DISTINCT ?uri WHERE { 
  res:The_Scream dbp:museum ?uri . 
}
}}}

que da como resultado __http://dbpedia.org/resource/National_Gallery_of_Norway__


![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿En qué museo se exhibe el grito de Munch?"

En esWikipedia no existe infobox para "El_grito". En la wikipedia inglesa, la página de "The_Scream" tiene un "infobox artWork".

Por tanto, no tenemos triples útiles de "El_grito" y no podemos saber el museo donde se encuentra.

La solución sería mapear la [ficha "Obra de arte"|http://mappings.dbpedia.org/server/templatestatistics/es/?template=Ficha%20de%20obra%20de%20arte], que existe (con 1080 instancias) pero no tiene ni una sola propiedad mapeada; y, además, poner un infobox de obra de arte en la página de El Grito.

----

!!Q#19 Is Egypts largest city also its capital? 

!DBpedia SPARQL Query
{{{
PREFIX res: <http://dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
ASK WHERE { 
   res:Egypt dbo:largestCity ?large . 
   res:Egypt dbo:capital ?capital . 
   FILTER (?large = ?capital)
}
}}}

que da como resultado __true__


![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿Es la cuidad más grande de Egipto también su capital?"

La traducción directa (cambiando Egypt por Egipto, y res por esres) sería esta:
{{{
PREFIX esres: <http://dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
ASK WHERE { 
   esres:Egipto dbo:largestCity ?large . 
   esres:Egipto dbo:capital ?capital . 
   FILTER (?large = ?capital)
}
}}}

pero devuelve __false__

Motivo: Entre las propiedades de esres:Egipto no está dbo:largestCity :-(

Si buscamos cómo se ha mapeado la propiedad dbo:largestCity  vemos que la más probable es esdbp:ciudadGrande (en Ficha_de_entidad_subnacional, que sí está mapeada), pero tampoco tenemos datos de esres:Egipto con la propiedad esdbp:ciudadGrande. Si miramos la página de Egipto en esWikipedia vemos que usa el "infobox país", y que no usa el atributo ciudad_grande pero sí  ciudad_más_poblada y capital.

En la fecha de extracción de los datos no estaba mapeado el "infobox país", por eso no hay forma de sacar esta query :-(



----

!!Q#20 How many employees does IBM have? 

!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX res: <http://dbpedia.org/resource/> 
SELECT ?number WHERE { 
   res:IBM dbo:numberOfEmployees ?number .
}
}}}

que da como resultado __433362__


![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿Cuánto empleados tiene IBM?"

La traducción directa (cambiado res por esres) sería

{{{
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX esres: <http://es.dbpedia.org/resource/> 
SELECT ?number WHERE { 
   esres:IBM dbo:numberOfEmployees ?number .
}
}}}

que devuelve __426751__

Si vemos las páginas wikipedia inglesa y española veremos que en la inglesa indica que son datos de 2012, y en la española indica que son de 2010.

Damos por válida la respuesta.