我使用live-dbpedia來檢索人員列表。我在live-dbpedia endpoints上執行sparql查詢以獲得結果。我已經在查詢中修復了偏移量和限制值,並且在每次10000次嘗試後獲取記錄。但是當我試圖執行在580000偏移值,504網關超時錯誤發生。使用SPARQL獲取人員列表dbpedia
不工作 SPARQL查詢:
SELECT DISTINCT ?dbpedia_link str(?name) as ?label str(?label1) as ?label1 ?freebase_link WHERE {
?dbpedia_link rdfs:label ?label1 .
?dbpedia_link foaf:name ?name .
{
{ ?dbpedia_link rdf:type dbpedia-owl:Person }
}
OPTIONAL {?dbpedia_link owl:sameAs ?freebase_link .
FILTER regex(?freebase_link, "^http://rdf.freebase.com") .}
FILTER (lang(?label1) = 'en').
?dbpedia_link dcterms:subject ?sub
}Limit 1000
OFFSET 580000
工作 SPARQL查詢:
SELECT DISTINCT ?dbpedia_link str(?name) as ?label str(?label1) as ?label1 ?freebase_link WHERE {
?dbpedia_link rdfs:label ?label1 .
?dbpedia_link foaf:name ?name .
{
{ ?dbpedia_link rdf:type dbpedia-owl:Person }
}
OPTIONAL {?dbpedia_link owl:sameAs ?freebase_link .
FILTER regex(?freebase_link, "^http://rdf.freebase.com") .}
FILTER (lang(?label1) = 'en').
?dbpedia_link dcterms:subject ?sub
}Limit 1000
OFFSET 50000
如何克服這個問題。
除了[jimkont的答案](http://stackoverflow.com/a/26136741/1281433),注意**極限ñ**和* *偏移量m **需要按**排序纔能有用。如果沒有指定的順序,那麼端點可以一遍又一遍地返回相同的** n **結果。例如,請參閱[我的答案](http://stackoverflow.com/a/25147648/1281433)至[如何解決Linkedmdb中的執行限制](http://stackoverflow.com/q/25141247/1281433)。 – 2014-10-01 13:48:57