2012-02-16 2 views
3

У меня возникла проблема с использованием SPARQL с DBPedia.Как получить доступ к постоянно удаленным страницам с помощью SPARQL?

, например, если я называю эту ссылку непосредственно

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

Я вижу код с 301 редирект на

http://dbpedia.org/page/Venice 

но если я пытаюсь вызвать Venice,_Italy resorce с помощью SPARQL я ничего не получаю обратно.

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

ответ

2

Вы можете использовать в ontology:wikiPageRedirects свойство, чтобы обеспечить ваш запрос фактически получает ответ путем обхода перенаправления в запросе, например,

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