2011-11-24 49 views
2

我在使用Jena對dbpedia.org執行SPARQL查詢時遇到問題。從Jena對DBpedia執行SPARQL查詢時發生「超時/查詢掛起」

的查詢是以下形式:

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX p: <http://dbpedia.org/property/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?album ?name ?dateofrelease 
WHERE { 
?album p:artist <http://dbpedia.org/resource/SomeArtist> . 
?album rdf:type <http://dbpedia.org/ontology/Album> . 
?album rdf:type <http://schema.org/MusicAlbum> . 
?album p:name ?name . 
?album <http://dbpedia.org/ontology/releaseDate> ?dateofrelease . 
FILTER(xsd:dateTime(?dateofrelease) >= '2009-01-01T00:00:00Z'^^xsd:dateTime) 
} LIMIT 5 

其中http://www.dbpedia.org/resource/SomeArtist是一個有效的藝術家URI,例如http://dbpedia.org/resource/Wilco,並在發送之前正確地進行URL編碼。耶拿拋出一個前

Query query = QueryFactory.create(queryString); 
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); 
ResultSet results = queryExecution.execSelect(); 

的程序被做同樣的形式在約30的查詢,但它們中的一些「掛起」約一分鐘或兩個:

查詢是用下面的標準代碼執行

com.hp.hpl.jena.sparql.resultset.ResultSetException: Not an ResultSet result 

如果我捕捉到了異常,並繼續,一些查詢掛起,一些返回結果與0或更多結果快速設置。這樣做幾次,它是隨機的返回或「掛起」的查詢。在相同的查詢中使用SPARQL DBpedia有時會起作用,有時在Web瀏覽器中以相同的方式掛起。

  • 我構建查詢錯誤,使它在某種程度上耗時dbpedia.org,以便在服務器查詢超時?我是很新的語義Web和耶拿,但我想我最初不查詢可能是非常耗時的,因爲我在

    ?album p:artist <http://www.dbpedia.org/resource/SomeArtist> 
    

    語句中使用絕對URI爲對象的一部分。

  • 是否存在一些來自dbiana.org的來自單源/每時間單元限制的請求,我不知道這些請求的數量?

(使用耶拿2.6.4)

回答

1

我可以證實,查詢速度很慢。

我嘗試了一些可能會影響速度的變化,但它沒有幫助。我看不出任何明顯的原因,爲什麼這種類型的查詢會特別慢,對不起。

一種替代方法,以獲得更多的一致的響應時間會下載DBpedia中轉儲,用grep出你感興趣的謂詞,並將其加載到本地triplestore,例如耶拿。

+0

感謝您的回覆。我同意當地的轉儲對於一致的性能來說是最好的。我現在也嘗試了新的SPARQL端點http://live.dbpedia.org/sparql,響應時間好得多(目前無論如何)。 – tle

+0

我有使用dotNetRDF相同的問題,關於如何將dbpedia下載到本地轉儲的任何想法? – SKandeel