Sparql 日本名家斯巴鲁的音乐很快就过时了

Sparql 日本名家斯巴鲁的音乐很快就过时了,sparql,dbpedia,virtuoso,Sparql,Dbpedia,Virtuoso,我正试图在上使用以下查询 但是我得到了这个错误Virtuoso 42000错误估计执行时间1005(秒)超过了400(秒)的限制。几乎任何涉及group by的查询都有这个问题。这是服务器问题吗?我的查询效率低吗?我怎样才能避开它 我不确定您到底想做什么,但由于结果中没有使用?o,因此您可以将其删除。即使你这样做了,你仍然会有同样的问题。您需要以某种方式更改属性路径。我不认为在两个方向上都需要任意长度的路径。您可以使用?而不是*来表示“长度为0或1的路径”,因此: select ?s

我正试图在上使用以下查询


但是我得到了这个错误Virtuoso 42000错误估计执行时间1005(秒)超过了400(秒)的限制。几乎任何涉及group by的查询都有这个问题。这是服务器问题吗?我的查询效率低吗?我怎样才能避开它

我不确定您到底想做什么,但由于结果中没有使用
?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
相同。这真的是你想要的吗?

似乎有两件事是可能的。1) 您没有在任何地方使用?o或?oType,因此它们只是将您获得的结果数量相乘。(请参见)2)属性路径
(dbpedia owl:album | ^dbpedia owl:album)*
估计相当复杂。您真的需要在两个方向上都遵循任意长度的路径吗?
*
有效吗?或者
{0,1}
(这不是标准SPARQL的一部分,但我认为Virtuoso接受它)?正如您所提到的,问题是(dbpedia owl:album | ^dbpedia owl:album)*当我将其替换为(dbpedia owl:album | ^dbpedia owl:album){1}时,没有理由使用
{1};这只是说“正好一次”,这与dbpedia owl:album ^ dbpedia owl:album
相同。现在的问题是偏移量。对于偏移量9990 limit 10,它返回数据,但当我偏移量10000时,它什么也不返回。日本dbpedia的限制是10000,我知道,但这里不应该使用偏移量吗?只有在排序结果时,偏移量和限制才有意义。请注意。这就是我所想的,但是在(dbpedia owl:album ^ dbpedia owl:album)的末尾没有{1},我将得到以下错误SPARQL编译器:内部错误:sparp_tree_full_clone_int():不支持的表达式类型
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