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