首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPARQL:计数结果行

SPARQL:计数结果行
EN

Stack Overflow用户
提问于 2018-03-27 08:25:04
回答 1查看 458关注 0票数 0

我希望有一个容易回答的问题:他们在下面的查询中返回特定概念的更广泛的概念以及分配给它的信任值。我现在要做的是,只计算有多少更广泛的概念(信心高于最低阈值)。解决这个问题的方法应该是只计算结果行。但是,在这种情况下,我目前不理解如何在SPARQL中使用COUNT关键字。

代码语言:javascript
复制
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX isa: <http://webisa.webdatacommons.org/concept/>
PREFIX isaont: <http://webisa.webdatacommons.org/ontology#>
select distinct ?hypernym ?minConfidence where
{
GRAPH ?g {
<http://webisa.webdatacommons.org/concept/_car_>  skos:broader ?hypernym .
}
?g isaont:hasConfidence ?minConfidence .
FILTER(?minConfidence > 0.1)
}
ORDER BY DESC(?minConfidence)

我试了一试:

代码语言:javascript
复制
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX isa: <http://webisa.webdatacommons.org/concept/>
PREFIX isaont: <http://webisa.webdatacommons.org/ontology#>
select (count(*) as ?count) where
{
GRAPH ?g {
<http://webisa.webdatacommons.org/concept/_car_>  skos:broader ?hypernym .
}
?g isaont:hasConfidence ?minConfidence .
FILTER(?minConfidence > 0.1)
}
ORDER BY DESC(?minConfidence)

不幸的是,这只返回每行1的行。我真正想要的是一个数字。

您可以在线尝试查询,公共端点是:http://webisa.webdatacommons.org/sparql

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 14:12:30

显然,如果存在ORDER BY,则Virtuoso会进行分组,因此将其排除在外会产生预期的结果:

代码语言:javascript
复制
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX isa: <http://webisa.webdatacommons.org/concept/>
PREFIX isaont: <http://webisa.webdatacommons.org/ontology#>
SELECT (COUNT(*) as ?count) WHERE
{
  GRAPH ?g {
    <http://webisa.webdatacommons.org/concept/_car_>  skos:broader ?hypernym .
  }
  ?g isaont:hasConfidence ?minConfidence .
  FILTER(?minConfidence > 0.1)
}

您还可以使用SELECT (COUNT(DISTINCT ?hypernym) AS ?count)来确保只计算不同的超限。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49507858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档