我使用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