Grupo de Facebook DBpedia en español
Notify Twitter

This page (revision-32) was last changed on 05-Nov-2018 18:08 by Mariano Rico

This page was created on 05-Nov-2018 18:06 by Mariano Rico

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
32 05-Nov-2018 18:08 17 KB Mariano Rico to previous
31 05-Nov-2018 18:06 17 KB Mariano Rico to previous | to last
30 05-Nov-2018 18:06 17 KB Mariano Rico to previous | to last
29 05-Nov-2018 18:06 17 KB Mariano Rico to previous | to last
28 05-Nov-2018 18:06 16 KB Mariano Rico to previous | to last
27 05-Nov-2018 18:06 15 KB Mariano Rico to previous | to last
26 05-Nov-2018 18:06 15 KB Mariano Rico to previous | to last
25 05-Nov-2018 18:06 15 KB Mariano Rico to previous | to last
24 05-Nov-2018 18:06 13 KB Mariano Rico to previous | to last
23 05-Nov-2018 18:06 13 KB Mariano Rico to previous | to last
22 05-Nov-2018 18:06 11 KB Mariano Rico to previous | to last
21 05-Nov-2018 18:06 11 KB Mariano Rico to previous | to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 5 changed 2 lines
!!Introduction
Estas son las preguntas #1 a #10 del [QALD-2 Challenge |http://greententacle.techfak.uni-bielefeld.de/~cunger/qald/index.php?x=challenge&q=2].
Estas son las preguntas #1 a #10 del [QALD-2 Challenge |http://greententacle.techfak.uni-bielefeld.de/~cunger/qald/index.php?x=challenge&q=2]. Todas en [QALD-2 SPARQL Queries].
At line 7 added 168 lines
!!Q#1 Give me all female Russian astronauts
!DBpedia SPARQL Query
%%prettify
{{{
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?uri WHERE {
?uri rdf:type yago:RussianCosmonauts .
?uri rdf:type yago:FemaleAstronauts .
}
}}}
Que tiene por resultado:
|uri
|http://dbpedia.org/resource/Yelena_Serova
|http://dbpedia.org/resource/Valentina_Tereshkova
|http://dbpedia.org/resource/Yelena_Kondakova
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"Dame todas las astronautas rusas"\\
es esDBpedia no tenemos las categorías YAGO, por lo que esta query no se puede realizar tal cual está.
Pero podemos usar las categorías Wikipedia. Buscando en esWikipedia encontramos estas categorías:
* [Categoría:Astronautas_de_Rusia|http://es.wikipedia.org/wiki/Categor%C3%ADa:Astronautas_de_Rusia]
* [Categoría:Astronautas_de_la_Unión_Soviética|http://es.wikipedia.org/wiki/Categor%C3%ADa:Astronautas_de_la_Uni%C3%B3n_Sovi%C3%A9tica]
Podríamos hacer una query que sacase los astronautas cualquiera de estas categorías, o de la unión de ambas, pero en cualquier caso __no tenemos manera de saber si son hombres o mujeres__. Por ejemplo, esta consulta saca las uris de los astronautas de la unión soviética (hombre y mujeres):
{{{
SELECT * WHERE{
?person dcterms:subject <http://es.dbpedia.org/resource/Categoría:Astronautas_de_la_Unión_Soviética>
}
}}}
Por otra parte, como está mapeada la ficha Astronauta, podríamos sacar las uris de los astronautas y sus nacionalidades:
{{{
SELECT ?person ?v WHERE{
?person rdf:type <http://dbpedia.org/ontology/Astronaut> .
?person <http://es.dbpedia.org/property/nacionalidad> ?v
}
}}}
!!Q#2 Give me the birthdays of all actors of the television show Charmed
!DBpedia SPARQL Query
%%prettify
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
SELECT DISTINCT ?date WHERE {
res:Charmed dbo:starring ?actor .
?actor dbo:birthDate ?date .
}
}}}
Que tiene por resultado:
|date
|1985-11-30
|1985-11-30
|1968-07-27
|1968-07-27
|1969-02-01
|1969-02-01
|1969-02-08
|1969-02-08
|1971-01-26
|1971-01-26
|1972-12-19
|1972-12-19
|1971-04-12
|1971-04-12
|1973-12-03
|1973-09-05
|1973-09-05
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"Dame los cumpleaños de todos los actores de la serie de televisión Charmed"\\
la query sería esta:
%%prettify
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esres: <http://es.dbpedia.org/resource/>
SELECT DISTINCT ?date WHERE {
esres:Charmed dbo:starring ?actor .
?actor esdbp:fechaDeNacimiento ?date .
}
}}}
pero lo resultados son bastante malos:
|date
|"--04-12"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"30"^^<http://www.w3.org/2001/XMLSchema#int>
|"--12-03"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"--07-27"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"--12-19"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"--09-05"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"--02-01"^^<http://www.w3.org/2001/XMLSchema#gMonthDay>
|"19"^^<http://www.w3.org/2001/XMLSchema#int>
!!Q#3 Who is the daughter of Ingrid Bergman married to?
!DBpedia SPARQL Query
%%prettify 
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX res: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?uri WHERE {
res:Ingrid_Bergman dbo:child ?child .
?child dbp:spouse ?uri .
}
}}}
/%
Con resultado:
|uri
|"Joseph Daly"@en
|"John Carley"@en
|"Fuller Earle Callaway, III"@en
|http://dbpedia.org/resource/Martin_Scorsese
|"Jonathan Wiedemann"@en
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿Con quién está casada la hija de Ingrid Bergman?"\\
se podría traducir como
%%prettify 
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esres: <http://es.dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?uri WHERE {
esres:Ingrid_Bergman dbo:child ?child .
?child esdbp:cónyuge ?uri .
}
}}}
/%
que tiene por resultado
|uri
|http://es.dbpedia.org/resource/David_Lynch
|http://es.dbpedia.org/resource/Martin_Scorsese
|http://es.dbpedia.org/resource/Gary_Oldman
|"Jon Wiedemann"@es
(cuatro entradas en lugar de las 5 de la versión inglesa)
hay que notar que si en lugar de dbo:child pongo esdbp:hijos NO obtengo ningún resultado, y que si en lugar de esdbp:cónyuge pongo dbo:spouse obtengo 3 resultados (las uris de David Lynch, Martin Scorsese y Gary_Oldman). El motivo...[Iconos/ico40_mistery.png]
At line 75 changed one line
!!Q#10 In which country does the Nile start?
!!Q#5 How many monarchical countries are there in Europe?
At line 247 added 21 lines
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT COUNT(DISTINCT ?uri) WHERE {
?uri rdf:type yago:EuropeanCountries .
?uri dbo:governmentType ?govern .
FILTER regex(?govern,'monarchy') .
}
}}}
Con resultado: __6__
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿Cuántos países con monarquía hay en Europa?"
La traducción directa no es posible porque en esDBpedia no está la clasificación YAGO.
!!Q#6 In which city did John F. Kennedy die?
!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
At line 269 added 43 lines
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?uri WHERE {
res:John_F._Kennedy dbo:deathPlace ?uri .
?uri rdf:type dbo:City .
}
}}}
Con resultado: __http://dbpedia.org/resource/Dallas__
![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿En qué ciudad murió John F. Kennedy?"
La traducción directa sería algo así:
{{{
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#>
SELECT DISTINCT ?uri WHERE {
esres:John_F._Kennedy dbo:deathPlace ?uri .
?uri rdf:type dbo:City .
}
}}}
que no devuelve resultados.
Trasteando vemos que esta sí funciona (cambiando dbo:deathPlace por esdbp:lugarmuerte y sin exigir que la uri sea ciudad ):
{{{
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 * WHERE {
esres:John_F._Kennedy esdbp:lugarmuerte ?v
}
}}}
con resultado: "Dallas, Texas,"@es
!!Q#7 Is the wife of president Obama called Michelle?
!DBpedia SPARQL Query
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX res: <http://dbpedia.org/resource/>
At line 82 changed 4 lines
SELECT DISTINCT ?uri ?string WHERE {
res:Nile dbo:sourceCountry ?uri .
OPTIONAL { ?uri rdfs:label ?string.
FILTER (lang(?string) = 'en') }
ASK WHERE { res:Barack_Obama dbo:spouse ?spouse .
?spouse rdfs:label ?name .
FILTER(regex(?name,'Michelle'))
At line 89 changed 2 lines
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.
Con resultado: __true__
At line 321 added 31 lines
![Iconos/ico30_tic_yes.png]esDBpedia SPARQL Query
"¿Se llama Michelle la esposa del presidente Obama?"
La traducción directa sería algo así:
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esres: <http://es.dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
ASK WHERE { esres:Barack_Obama esdbp:cónyuge ?spouse .
?spouse rdfs:label ?name .
FILTER(regex(?name,'Michelle'))
}
}}}
Que devuelve __false__
Pero si usamos foaf:name en lugar de rdfs:label obtenemos esta query:
{{{
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX esres: <http://es.dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ASK WHERE { esres:Barack_Obama esdbp:cónyuge ?spouse .
?spouse foaf:name ?name .
FILTER(regex(?name,'Michelle'))
}
}}}
que sí devuelve el resultado correcto.
At line 110 changed one line
En esDBpedia no hay ningún recurso que sea de tipo yago:StatesOfGermany
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
At line 372 added 4 lines
"¿Qué estados alemanes están gobernados por el partido socialdemócrata?"
En esDBpedia no están las categorías YAGO, por lo que no podemos buscar cosas yago:StatesOfGermany
At line 114 changed one line
!DBpedia SPARQL Query
%%prettify
At line 392 added one line
%%prettify
At line 142 changed one line
Pero no podemos avanzar mucho más. Igual su hubiese una lista de políticos de cada partido..
Pero no podemos avanzar mucho más. Igual su hubiese una lista de políticos de cada partido...
Si buscamos Categorías Wikipedia podemos explorar la [Categoría:Alemania|http://es.wikipedia.org/wiki/Categor%C3%ADa:Alemania], pero no hay ninguna categoría para los lander alemanes. Si acaso, en [Anexo:Municios de Alemania|http://es.wikipedia.org/wiki/Anexo:Municipios_de_Alemania], pero no está estructurado :-(
!!Q#9 Which U.S. states possess gold minerals?
!DBpedia SPARQL Query
{{{
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?uri WHERE {
?uri rdf:type yago:StatesOfTheUnitedStates .
?uri dbp:mineral ?mineral .
FILTER (regex(?mineral,'gold','i'))
}
}}}
Con resultado __http://dbpedia.org/resource/California__
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿Qué estados de EEUU tienen minerales de oro?"
Como usa las categorías YAGO, no es posible la traducción directa. No he podido encontrar ([MRA]) ninguna Categoría wikipedia que liste los estados. Hay alguna tabla que los lista, pero no está mapeada.
!!Q#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') }
}
}}}
Con resultado:
|uri| string
|http://dbpedia.org/resource/Ethiopia| "Ethiopia"@en
|http://dbpedia.org/resource/Rwanda| "Rwanda"@en
![Iconos/ico30_tic_no.png]esDBpedia SPARQL Query
"¿En qué país nace el río Nilo?"
No sabemos nada del Nilo porque en la wikipedia española el Nilo es un Curso de agua, que no estaba mapeado cuando se extrajeron los datos (los datos son de abril 2012, y el mapeo de diciembre 2012).
Solución: mapear Curso de agua.
Sin embargo, si buscamos qué sabemos del Nilo ([página de datos de Nilo en esDBpedia|http://es.dbpedia.org/page/Nilo])
salen bastantes datos asociados a propiedades como "caudalMedio", "lugarDesembocadura", o "lugarNacimiento".
Podemos hacer una estimación de qué clases usan esas propiedades mediante queries como esta (para caudalMedio):
{{{
SELECT count (?s), ?t WHERE {
?s <http://es.dbpedia.org/property/caudalMedio> ?v .
?s rdf:type ?t
}
}}}
En el resultado sale:
* la clase Mountain y sus ascendentes/descendentes NaturalPlace y Place: podemos ver en [ficha de Montaña|http://mappings.dbpedia.org/server/templatestatistics/es/?template=Ficha_de_monta%C3%B1a] que NO tiene la propiedad caudalMedio
* la clase Road y sus ascendentes/descendentes RouteOfTransportation, Infrastucture, ArchitecturalStructure y Place: que no está mapeada.
* la clase WorldHeritageSite y su ascendente/descendente Place: está mapeada a "[ficha de patrimonio de la humanidad|http://mappings.dbpedia.org/index.php/Mapping_es:Ficha_de_Patrimonio_de_la_Humanidad]": parece que no mapea la propiedad caudalMedio (al ver qué propiedades mapea/noMapea salta un error).
¿De dónde ha salido el dato de caudalMedio?[Iconos/ico40_mistery.png].
La query
{{{
PREFIX esres: <http://es.dbpedia.org/resource/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
SELECT * WHERE {
esres:Nilo esdbp:lugarNacimiento ?v .
}
}}}
saca lo que indica el infobox de la página wikipedia (del español) de Nilo: que nace en el río Kagera. En el infobox de la página wikipedia del inglés dice que nace en Rwanda
Es curioso ver cómo están mapeados los ríos en inglés: en la wikipedia del inglés, la página de Nile no tiene un infobox sino un "Geobox|River". Podemos ver que el [mapeo de Geobox|http://mappings.dbpedia.org/index.php/Mapping_en:Geobox] es un mapeo condicional que sirve para muchas clases (Monument, Building, Bridge, Valley, etc.), entre ellas River. En la parte común se define el mapeo para la propiedad dbpedia sourceCountry (infobox-prop source_country). De este mapeo es de donde sale el dato en la dbpedia del idioma inglés (Rwanda), pero ¿de dónde sale Ethiopia?[Iconos/ico40_mistery.png].
La query más parecida a la versión inglesa sería esta:
{{{
PREFIX esres: <http://es.dbpedia.org/resource/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
SELECT ?uri ?string WHERE {
esres:Nilo esdbp:lugarNacimiento ?uri .
OPTIONAL { ?uri rdfs:label ?string.
FILTER (lang(?string) = 'en') }
}
}}}
Que produce como resultado:
|uri| string
|"Río Kagera"@es|