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