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
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.
[{TableOfContents }]
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 one line
Estas son las preguntas de la segunda edición (QADL-2) __y su equivalente sobre esDBpedia__:
!!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].
At line 7 changed 10 lines
* 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]
!!#4 Which river does the Brooklyn Bridge cross?
At line 18 changed 2 lines
!!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.
!DBpedia SPARQL Query
At line 21 removed 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 23 changed 2 lines
!Aproximación clase DBpedia --> ficha
Una manera aproximada de saber qué infobox (ficha) mapea a una clase es esta (ejemplo para la clase Actor):
%%prettify
At line 16 added 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 added 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 29 changed 4 lines
SELECT count(?uri) as ?count, ?v WHERE {
?uri rdf:type dbo:Actor .
?uri esdbp:wikiPageUsesTemplate ?v
} ORDER BY DESC (?count)
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 .
}
At line 34 removed 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 36 changed one line
Si usamos esta aproximación para la clase Cave vemos que, al no retornar resultados, lo más probable sea que no está mapeada.
!esDBpedia SPARQL Query
At line 38 changed 2 lines
!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):
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
At line 90 added 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 42 changed one line
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX res: <http://dbpedia.org/resource/>
At line 44 changed 5 lines
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)
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')}
}
At line 50 removed 2 lines
En este caso, por abrumadora mayoría, el atributo más probable es esdbp:cónyuge
At line 53 changed 2 lines
!Aproximación propiedad DBpedia --> atributo Y ficha
Refinamos un poco más la consulta anterior y obtenemos:
!esDBpedia SPARQL Query
At line 57 changed one line
PREFIX esdbp: <http://es.dbpedia.org/property/>
PREFIX res: <http://es.dbpedia.org/resource/>
At line 59 changed 6 lines
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)
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')}
}
At line 66 removed 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 68 changed one line
Hay propiedades para las que el coste de cálculo es muy alto. Por ejemplo: dbo:populationTotal (salta timeout)
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.
At line 70 changed one line
__¡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):
!!#62 Who created Wikipedia?
!DBpedia SPARQL Query
At line 72 changed 2 lines
PREFIX esdbp: <http://dbpedia.org/property/>
PREFIX esdbp: <http://es.dbpedia.org/property/>
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/>
At line 75 changed 6 lines
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)
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') }
}
At line 82 removed 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 85 changed one line
ug... ni idea :-(
En esDBpedia no hay ningún recurso que sea de tipo yago:StatesOfGermany
At line 87 changed 2 lines
!! 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.
Si intentamos adapatar la query, podemos sacar los estados alemanes (sacamos la property viendo una de la regiones) con la query:
At line 90 changed one line
ug... ni idea :-(
!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 .
}
}}}