Sparql Virtuoso 42000错误估计执行时间
使用dbpedialivesparql端点,我试图计算与类型为Sparql Virtuoso 42000错误估计执行时间,sparql,rdf,semantic-web,dbpedia,linked-data,Sparql,Rdf,Semantic Web,Dbpedia,Linked Data,使用dbpedialivesparql端点,我试图计算与类型为owl:Thing的实例关联的三元组总数。由于计数非常大,将抛出一个异常“Virtuoso 42000 Error the estimate execution time”。为了解决这个问题,我尝试在查询中使用subselect、limit和offset。但是,当偏移量大于等于限制时,解决方案不起作用,并且再次抛出相同的异常(Virtuoso 42000错误),是否有人可以确定我的查询存在的问题?或者建议一个解决方法?提供了我正在尝试
owl:Thing
的实例关联的三元组总数。由于计数非常大,将抛出一个异常“Virtuoso 42000 Error the estimate execution time”。为了解决这个问题,我尝试在查询中使用subselect、limit
和offset
。但是,当偏移量
大于等于限制
时,解决方案不起作用,并且再次抛出相同的异常(Virtuoso 42000错误),是否有人可以确定我的查询存在的问题?或者建议一个解决方法?提供了我正在尝试的查询:
select count(?s) as ?count
where
{
?s ?p ?o
{
select ?s
where
{
?s rdf:type owl:Thing.
}
limit 10000
offset 10000
}
}
你的解决方案从耐心开始。Virtuoso's会在超时时返回一些结果,并在后台继续运行查询——因此,如果您稍后返回,通常会得到更多的解决方案,直至完整的结果集 我不得不这么做,因为你只发布了你试图使用的零碎版本-- 在几秒钟内,没有任何超时。我在表单上设置了一个3000000毫秒(=3000秒=50分钟)的超时时间,这与端点的默认超时时间30000毫秒(=30秒)形成了对比,但很明显,这两个超时时间都没有命中,端点的超时时间也没有命中 我想您已经理解了这一点,但请注意,这一数字是一个移动的目标,随着维基百科firehose不断更新DBpedia Live内容,它将定期发生变化
你的分而治之的努力有一个重要的问题。请注意,如果没有
ORDER BY
子句和LIMIT
/OFFSET
子句,您可能会发现一些解决方案(在这种情况下,?s
的一些值)重复出现,和/或一些解决方案不会出现在合并所有这些部分结果的最终聚合中
此外,当您尝试计数三元组时,您可能应该执行count(*)
而不是count(?.s)
。如果没有其他内容,这将帮助查询的读者了解您在做什么
为了能够在查询到达时调整执行时间限制,最简单的方法是通过;不幸的是,由于许多原因,新客户目前无法使用此功能。(现有客户可能会继续使用他们的AMI。)我们可能会在某个时候恢复这一点,但时间不确定;您可以注册您的兴趣,并在AMI可供新用户使用时收到通知
走向最终的解决方案。。。可能有比你目前正在努力的更好的方法来实现你的最终目标。你可能会考虑问这个问题。 < p>你的解决方案是从耐心开始。Virtuoso's会在超时时返回一些结果,并在后台继续运行查询——因此,如果您稍后返回,通常会得到更多的解决方案,直至完整的结果集 我不得不这么做,因为你只发布了你试图使用的零碎版本-- 在几秒钟内,没有任何超时。我在表单上设置了一个3000000毫秒(=3000秒=50分钟)的超时时间,这与端点的默认超时时间30000毫秒(=30秒)形成了对比,但很明显,这两个超时时间都没有命中,端点的超时时间也没有命中 我想您已经理解了这一点,但请注意,这一数字是一个移动的目标,随着维基百科firehose不断更新DBpedia Live内容,它将定期发生变化
你的分而治之的努力有一个重要的问题。请注意,如果没有
ORDER BY
子句和LIMIT
/OFFSET
子句,您可能会发现一些解决方案(在这种情况下,?s
的一些值)重复出现,和/或一些解决方案不会出现在合并所有这些部分结果的最终聚合中
此外,当您尝试计数三元组时,您可能应该执行count(*)
而不是count(?.s)
。如果没有其他内容,这将帮助查询的读者了解您在做什么
为了能够在查询到达时调整执行时间限制,最简单的方法是通过;不幸的是,由于许多原因,新客户目前无法使用此功能。(现有客户可能会继续使用他们的AMI。)我们可能会在某个时候恢复这一点,但时间不确定;您可以注册您的兴趣,并在AMI可供新用户使用时收到通知
走向最终的解决方案。。。可能有比你目前正在努力的更好的方法来实现你的最终目标。你可能会考虑问我,或者< /P>作品,注:这是很多人使用的共享资源。您没有任何性能保证,也没有正常运行时间保证。解决方法是加载DBpedia转储并在本地处理数据。在您的例子中,您甚至可以使用UNIX命令,如
grep
,etcThanks来进行应答,不幸的是,转储会稍旧一些,我正在尝试对DBpedia的当前状态及其产生的实时更改进行实验。我仍然不确定为什么查询会在静态DBpedia的端点上工作,而不是在活动端点上工作。我假设两种环境的配置不会有很大的差异。再次感谢您的回复。嗯,最明显的区别是Virtuoso 7和Virtuoso 8。仅此一点就可能导致不同的查询执行计划等。此外,不同的服务器、不同的Virtuoso配置,可能会有很多不同之处。感谢您提供的信息。因此,我从这次对话中得到的收获是,无法从dbpedialivesparql端点获得与owl:Thing类相关的三元组的计数
select ( count(?s) as ?count )
where
{
?s rdf:type owl:Thing.
}