Grupo de Facebook DBpedia en español
Notify Twitter

#62 Who created Wikipedia?#

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: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 . }

#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/> 
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 . 
}

esDBpedia SPARQL Query#

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.