Estas son las preguntas #11 a #20 del QALD-2 Challenge. Todas en QALD-2 SPARQL Queries.
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 |
La traducción directa no es posible porque no tenemos mapeada la clase Cave. La versión inglesa sí está mapeada.
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
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 se traduce al español como 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
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 |
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, 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".
Nota: podemos comprobar que no hay mapeo para la propiedad dbp:classis usando las indicaciones de mapeos inversos
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
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)
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
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
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.
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, pero esta tabla no está mapeada.
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 |
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 y 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) |
Nota: La propiedad dbo:populationTotal es de las que es muy costoso saber su mapeo (ver QALD-2 SPARQL Queries).
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
La traducción directa no es posible porque en esDBpedia no hay categorías YAGO.
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
La traducción directa no es posible porque en esDBpedia no hay categorías YAGO.
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
La traducción directa no es posible porque en esDBpedia no hay categorías YAGO.
Ontology Engineering Group. ETSI Informáticos, Universidad Politécnica de Madrid (UPM)