Search code examples
sparqlsemantic-webdbpedia

How to access permanently removed pages using SPARQL?


I am facing a problem in using SPARQL with DBPedia.

for example if I call this link directly

http://dbpedia.org/resource/Venice,_Italy

I see a 301 redirect code to

http://dbpedia.org/page/Venice

but if i try to call Venice,_Italy resorce using SPARQL I get nothing back.

define input:default-graph-uri <http://dbpedia.org> 
PREFIX ontology: <http://dbpedia.org/ontology/>  
PREFIX property: <http://dbpedia.org/property/> 
PREFIX resource: <http://dbpedia.org/resource/> 
PREFIX position:<http://www.w3.org/2003/01/geo/wgs84_pos#> 
SELECT DISTINCT ?Abstract ?ThumbnailURL WHERE 
{ <http://dbpedia.org/resource/Venice,_Italy>  ontology:abstract  ?Abstract.  <http://dbpedia.org/resource/Venice,_Italy> ontology:thumbnail ?ThumbnailURL.
 FILTER (lang(?Abstract)="en")}

Solution

  • You can leverage the ontology:wikiPageRedirects property to ensure your query actually gets an answer by traversing the redirect in your query e.g.

    PREFIX ontology: <http://dbpedia.org/ontology/>  
    PREFIX property: <http://dbpedia.org/property/> 
    PREFIX resource: <http://dbpedia.org/resource/> 
    PREFIX position:<http://www.w3.org/2003/01/geo/wgs84_pos#> 
    SELECT DISTINCT ?Abstract ?ThumbnailURL
     WHERE 
    { 
      <http://dbpedia.org/resource/Venice,_Italy> ontology:wikiPageRedirects ?page .
      ?page  ontology:abstract  ?Abstract. 
      ?page ontology:thumbnail ?ThumbnailURL.
      FILTER (lang(?Abstract)="en")
    }