Grupo de Facebook DBpedia en español
Notify Twitter

This page (revision-19) 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
19 05-Nov-2018 18:08 5 KB Mariano Rico to previous
18 05-Nov-2018 18:06 4 KB Mariano Rico to previous | to last
17 05-Nov-2018 18:06 4 KB Mariano Rico to previous | to last
16 05-Nov-2018 18:06 4 KB Mariano Rico to previous | to last
15 05-Nov-2018 18:06 3 KB Mariano Rico to previous | to last
14 05-Nov-2018 18:06 3 KB Mariano Rico to previous | to last
13 05-Nov-2018 18:06 2 KB Mariano Rico to previous | to last
12 05-Nov-2018 18:06 1 KB Mariano Rico to previous | to last
11 05-Nov-2018 18:06 1 KB Mariano Rico to previous | to last
10 05-Nov-2018 18:06 1 KB Mariano Rico to previous | to last
9 05-Nov-2018 18:06 1005 bytes Mariano Rico to previous | to last
8 05-Nov-2018 18:06 785 bytes Mariano Rico to previous | to last
7 05-Nov-2018 18:06 783 bytes Mariano Rico to previous | to last
6 05-Nov-2018 18:06 360 bytes Mariano Rico to previous | to last
5 05-Nov-2018 18:06 34 bytes Mariano Rico to previous | to last
4 05-Nov-2018 18:06 10 KB Mariano Rico to previous | to last
3 05-Nov-2018 18:06 814 bytes Mariano Rico to previous | to last
2 05-Nov-2018 18:06 1 KB Mariano Rico to previous | to last
1 05-Nov-2018 18:06 1 KB Mariano Rico to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
[{TableOfContents }]
El [QALD Challenge |http://greententacle.techfak.uni-bielefeld.de/~cunger/qald/index.php?x=challenge&q=2] es un concurso internacional para fomentar el uso de tecnologías semánticas y de procesamiento de lenguaje natural.
At line 3 changed one line
\\
El concurso consiste en entregar a los participantes 100 preguntas en lenguaje natural y las sentencias SPARQL capaces de responder a esas preguntas. Con esos datos, los participantes entrenan sus programas y, el día del concurso, los organizadores presentan 100 preguntas nuevas que deben ser respondidas (como sentencias SPARQL) por los programas. Gana el programa (el equipo que lo diseñó) que más preguntas responda correctamente.
At line 5 changed 2 lines
!!Introduction
Here we show some of the 100 queries of the [QALD-2 Challenge |http://greententacle.techfak.uni-bielefeld.de/~cunger/qald/index.php?x=challenge&q=2].
Estas son las preguntas de la segunda edición (QADL-2) __y su equivalente sobre esDBpedia__:
At line 8 changed one line
!!#4 Which river does the Brooklyn Bridge cross?
* Preguntas [1-10|QADL-2-Q1-Q10]
* Preguntas [11-20|QADL-2-Q11-Q20]
* Preguntas [21-30|QADL-2-Q21-Q30]
* Preguntas [31-40|QADL-2-Q31-Q40]
* Preguntas [41-50|QADL-2-Q41-Q50]
* Preguntas [51-60|QADL-2-Q51-Q60]
* Preguntas [61-70|QADL-2-Q61-Q70]
* Preguntas [71-80|QADL-2-Q71-Q80]
* Preguntas [81-90|QADL-2-Q81-Q90]
* Preguntas [91-100|QADL-2-Q91-Q100]
At line 10 changed one line
!DBpedia SPARQL Query
!!Mapeos inversos
Los mapeos son wikipedia --> DBpedia, sin flecha inversa. Esto es, no conozco ([MRA]) ninguna manera de, dada una clase o una propiedad (DBpedia) saber a qué Infobox (ficha) o qué atributo del infobox (ficha) corresponde.
At line 21 added one line
Por ejemplo, la propiedad [starring|http://mappings.dbpedia.org/index.php/OntologyProperty:Starring] no tengo manera de saber si está mapeada con algún atributo de algún infobox. Lo único que puedo hacer es ver su domain (Work) y buscar fichas que tengan por nombre traducciones posibles de Work. En este ejemplo, la traducción podría ser Obra, o Trabajo, pero no hay ninguna [ficha con este nombre|http://mappings.dbpedia.org/index.php/Mapping_es].
At line 13 changed one line
%%prettify
!Aproximación clase DBpedia --> ficha
Una manera aproximada de saber qué infobox (ficha) mapea a una clase es esta (ejemplo para la clase Actor):
At line 16 removed 27 lines
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/>
At line 44 removed 24 lines
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/>
At line 69 changed 7 lines
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 .
}
SELECT count(?uri) as ?count, ?v WHERE {
?uri rdf:type dbo:Actor .
?uri esdbp:wikiPageUsesTemplate ?v
} ORDER BY DESC (?count)
At line 34 added one line
que saca una lista muy larga, ordenada por los nombres de las fichas con "mayor probabilidad". En este ejemplo, la más probable es "Ficha_de_actor"
At line 78 changed one line
!esDBpedia SPARQL Query
Si usamos esta aproximación para la clase Cave vemos que, al no retornar resultados, lo más probable sea que no está mapeada.
At line 80 changed 9 lines
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
!Aproximación propiedad DBpedia --> atributo
Una aproximación para, dada una propiedad DBpedia, saber a qué atributo de ficha corresponde se tiene con esta query (en este ejemplo para el caso de la propiedad spouse):
At line 90 removed 23 lines
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
{{{
At line 114 changed one line
PREFIX res: <http://dbpedia.org/resource/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
At line 116 changed 6 lines
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')}
}
SELECT count(?uri) as ?c, ?prop WHERE {
?uri dbo:spouse ?v .
?uri ?prop ?v .
FILTER regex(?prop,'http://es.dbpedia.org/property')
} ORDER BY DESC (?c)
At line 50 added 2 lines
En este caso, por abrumadora mayoría, el atributo más probable es esdbp:cónyuge
At line 124 changed one line
!esDBpedia SPARQL Query
!Aproximación propiedad DBpedia --> atributo Y ficha
Refinamos un poco más la consulta anterior y obtenemos:
At line 127 changed one line
PREFIX res: <http://es.dbpedia.org/resource/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
At line 129 changed 6 lines
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')}
}
SELECT count(?uri) as ?c, ?prop, ?ficha WHERE {
?uri dbo:spouse ?v .
?uri ?prop ?v .
?uri esdbp:wikiPageUsesTemplate ?ficha .
FILTER regex(?prop,'http://es.dbpedia.org/property')
} ORDER BY DESC (?c)
At line 66 added one line
Obtenemos el desglose de los atributos anteriores por fichas. En este ejemplo, vemos que es esdbp:cónyuge proveniente, sobretodo, de las fichas de "Ficha_de_actor" y "Ficha_de_persona".
At line 137 changed one line
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.
Hay propiedades para las que el coste de cálculo es muy alto. Por ejemplo: dbo:populationTotal (salta timeout)
At line 139 changed 3 lines
!!#62 Who created Wikipedia?
!DBpedia SPARQL Query
__¡OJO!__: dbo:spouse es una propiedad de DBpedia, fruto de un mapeo. Pero, parece (resultado II Jornadas) que si existe un mapeo infobox--> clase y no están mapeadas todos sus atributos, el extractor mapea TODOS los atributos: para los que están mapeados usa el mapeo indicado usando dbo:propiedadLaQueSea, pero los que no están mapeados usa esdbp:propiedadLaQueSea. Por tanto, cuando la propiedad NO es dbo:loQueSea sino esdbp:loQueSea, la aproximación para el mapeo queda así (ejemplo para esdbp:diseño):
At line 143 changed 95 lines
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 esdbp: <http://dbpedia.org/property/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
At line 239 changed 8 lines
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') }
}
SELECT count(?uri) as ?c, ?prop, ?ficha WHERE {
?uri esdbp:diseño ?v .
?uri ?prop ?v .
?uri esdbp:wikiPageUsesTemplate ?ficha .
FILTER regex(?prop,'http://es.dbpedia.org/property')
} ORDER BY DESC (?c)
At line 82 added 2 lines
!! Infobox de la wikipedia inglesa --> ficha de wikipedia del español
Por ejemplo, en la página The_Scream de la wikipedia inglesa se puede ver que usa el "infobox artwork". Nos gustaría saber si ese infobox tiene un equivalente (con qué nombre) en esWikipedia.
At line 249 changed one line
En esDBpedia no hay ningún recurso que sea de tipo yago:StatesOfGermany
ug... ni idea :-(
At line 251 changed one line
Si intentamos adapatar la query, podemos sacar los estados alemanes (sacamos la property viendo una de la regiones) con la query:
!! atributo de Infobox de la wikipedia inglesa --> atributo de ficha de wikipedia del español
Por ejemplo, en la página Illinois de la wikipedia inglesa se puede ver que en el "infobox U.S. state" se usa la propiedad "BorderingStates". Nos gustaría saber si ese atributo tiene un equivalente (con qué nombre) en alguna ficha esWikipedia.
At line 253 changed 83 lines
!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 .
}
}}}
ug... ni idea :-(