gpt4 book ai didi

aggregate-functions - 将聚合函数的结果绑定(bind)到投影变量

转载 作者:行者123 更新时间:2023-12-04 08:14:02 24 4
gpt4 key购买 nike

我正在尝试计算给定属性的值的数量,并输出每个检索到的资源以及该数字。我正在尝试使用 BIND存储 COUNT 的结果值在变量中起作用并将该变量投影到我的结果中。但是,该值似乎为空,我不明白为什么会这样。

我的查询目前如下所示:

SELECT DISTINCT ?a ?c
WHERE {
?a <http://www.w3.org/2000/01/rdf-schema#label> ?b.
BIND(COUNT(?b) AS ?c).
}
LIMIT 100

我想我必须按 ?a 分组,虽然我还不确定当我想对几个属性执行此操作时如何进行,但这不是这个问题的关注点:现在,我只是想找出原因 ?c似乎是空的。

不应该 - 现在 - 每个结果行只有一个标签吗?如果是这样,为什么不是文字 1^^xsd:integer绑定(bind)到 ?c - 或至少一个代表标签总数(未分组)的大数字(类似于发生的 here ) - 例如在以下端点上:
  • Austrian Ski Team
  • UniProt
  • Europeana/Forest

  • 我知道我正在寻找的功能可能不受部分或全部这些实现的支持 - 但如果是这样, COUNT 似乎不寻常。被简单地“吞下”而没有错误消息(我确实在其他一些端点上收到了语法错误消息)。

    因此,我的问题是: 为什么返回值COUNT空的?
  • COUNT在端点无法识别的那个位置上的功能?
  • 因为它似乎在语法上是有效的,这是当前 SPARQL 引擎的缺点,还是设计使然?
  • COUNT函数只在以后评估(如果是这样,为什么它至少不返回类似 0 的东西)?
  • 最佳答案

    您的查询实际上是不合法的。有一个SPARQL query validator at sparql.org ,并在 count 上报告语法错误:

    Syntax error:

    Line 4, column 8: Aggregate expression not legal at this point



    我无法解释为什么有些引擎不会窒息。 SPARQL 函数中内置的数字可能会产生错误,并且通常最终会将变量绑定(bind)到看似空的结果。也许一些 SPARQL 引擎开发人员更进一步,调用丢失的函数会返回一个错误(看起来像一个未绑定(bind)的变量)。这可能需要逐案调查,您需要单独联系这些产品的开发人员。

    无论如何,您可能希望最终编写或多或少类似于以下的查询。您可以使用 (aggregate-function(args) as variable)在查询的投影部分,这就是您可以绑定(bind) ?b的数量的方法每 ?a?c根据 ?a 分组后.
    select distinct ?a (count(?b) as ?c)
    where { ?a rdfs:label ?b }
    group by ?a

    关于aggregate-functions - 将聚合函数的结果绑定(bind)到投影变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975943/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com