我正在尝试在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(秒)的限制。几乎所有涉及分组的查询都有此问题。这是服务器问题吗?我的查询效率低下吗?我怎么能绕过它呢?
答案 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
请注意,长度为0的路径将成为自身的链接,因此?album_ja
的一个值始终与?s
相同。这真的是你想要的吗?