查询sindice SPARQL端点

时间:2013-07-11 16:13:34

标签: sparql endpoint http-status-code-504

我尝试在http://sparql.sindice.com/

上进行此查询
PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE
{
 ?thing rdfs:label ?name .
  ?thing rev:hasReview ?review .
 filter regex(str(?name), "harlem", "i")
} LIMIT 10

它返回504网关超时 服务器没有及时响应。 我做错了什么? 感谢。

1 个答案:

答案 0 :(得分:2)

您提出的查询太难以使端点无法及时回答,因此您会收到超时响应的原因。请注意,该网站声明如下:

  

所有查询都是时间和资源有限的。注意这意味着   有时你会得到不完整甚至没有结果。如果是这样的话   经常发生在你身上,或者你真的想要运行更复杂的查询   请联系我们

您的查询基本上选择了大量数据,然后使引擎在可能的值上运行正则表达式,这非常慢。

我相信Sindice使用Virtuoso作为他们的SPARQL实现,所以你可以欺骗和使用Virtuoso特定的全文查询扩展,如下所示:

PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE
{
  ?thing rdfs:label ?name .
  ?thing rev:hasReview ?review .
  ?name bif:contains "harlem" .
} 
LIMIT 10

然而,此查询似乎也超时,如果您可以添加更多条件来进一步限制查询,您将有更多机会及时获得结果。