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")}
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")
}