日语Virtuoso SPARQL EndPoint很快就会超时

时间:2014-08-22 16:12:04

标签: sparql dbpedia virtuoso

我正在尝试在Japanese dbpedia SPARQL Endpoint

上使用以下查询
select ?s  (group_concat(?album_ja ; separator = "|") AS ?name_album_ja_csv)  where{
   values ?sType { dbpedia-owl:Song
                       dbpedia-owl:Single
    } .
      ?s a ?sType .
      ?s (dbpedia-owl:album|^dbpedia-owl:album)* ?albums;rdfs:label ?album_ja      
    }group by ?s order by ?s offset 0 limit 10

但是我收到此错误 Virtuoso 42000错误估计的执行时间1005(秒)超过400(秒)的限制。几乎所有涉及分组的查询都有此问题。这是服务器问题吗?我的查询效率低下吗?我怎么能绕过它呢?

1 个答案:

答案 0 :(得分:1)

我不确定你要做什么,但由于结果中没有使用?o,你可以摆脱它。即使在你这样做之后,你仍然会遇到同样的问题。您需要以某种方式更改属性路径。我不认为你实际上需要在两个方向上任意长度的路径。您可以使用?代替*来表示“长度为0或1的路径”,因此:

select ?s
       (group_concat(?album_ja ; separator = "|") AS ?name_album_ja_csv)
where {
  values ?sType { dbpedia-owl:Song dbpedia-owl:Single }
  ?s a ?sType .
  ?s (dbpedia-owl:album|^dbpedia-owl:album)? ?album_ja      
}
group by ?s
limit 100

SPARQL results

请注意,长度为0的路径将成为自身的链接,因此?album_ja的一个值始终与?s相同。这真的是你想要的吗?

相关问题