我在使用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)
感謝您的回覆。我同意當地的轉儲對於一致的性能來說是最好的。我現在也嘗試了新的SPARQL端點http://live.dbpedia.org/sparql,響應時間好得多(目前無論如何)。 – tle
我有使用dotNetRDF相同的問題,關於如何將dbpedia下載到本地轉儲的任何想法? – SKandeel