我尝试在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网关超时 服务器没有及时响应。 我做错了什么? 感谢。
答案 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
然而,此查询似乎也超时,如果您可以添加更多条件来进一步限制查询,您将有更多机会及时获得结果。