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:Brooklyn_Bridge dbo:crosses ?uri . OPTIONAL { ?uri rdfs:label ?string. FILTER (lang(?string) = 'en') } }
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/> PREFIX esdbp: <http://es.dbpedia.org/property/> 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.
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbp: <http://dbpedia.org/property/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 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 . }
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.
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX res: <http://dbpedia.org/resource/> SELECT DISTINCT ?string WHERE { res:Tom_Cruise foaf:homepage ?string . }
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)
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:Film. ?uri dbo:starring res:Tom_Cruise . OPTIONAL {?uri rdfs:label ?string . FILTER (lang(?string) = 'en')} }
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 ?uri ?string WHERE { ?uri rdf:type dbo:Film. ?uri dbo:starring res:Tom_Cruise . OPTIONAL {?uri rdfs:label ?string . FILTER (lang(?string) = 'es')} }
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.
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:
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 . }
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:
PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX res: <http://es.dbpedia.org/resource/> SELECT COUNT(DISTINCT ?uri) WHERE { ?uri dbo:producer res:Hal_Roach . }
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.
PREFIX dbp: <http://dbpedia.org/property/> PREFIX res: <http://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 ?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') } }
En esDBpedia no hay ningún recurso que sea de tipo yago:StatesOfGermany
Si intentamos adapatar la query, podemos sacar los estados alemanes (sacamos la property viendo una de la regiones) con la 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..
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.
PREFIX res: <http://dbpedia.org/resource/> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT DISTINCT ?height WHERE { res:Claudia_Schiffer dbo:height ?height . }
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 . }
Ontology Engineering Group. ETSI Informáticos, Universidad Politécnica de Madrid (UPM)