【问题标题】:SPARQL DISTINCT vs. REDUCEDSPARQL DISTINCT 与 REDUCED
【发布时间】:2010-06-07 14:27:55
【问题描述】:

SPARQL 中的DISTINCTREDUCED 有什么区别?

【问题讨论】:

    标签: sparql


    【解决方案1】:

    REDUCED 就像“尽力而为”的 DISTINCT。 DISTINCT 保证没有重复的结果,而 REDUCED 可以消除一些、全部或没有重复。

    有什么意义?那么 DISTINCT 可能很昂贵; REDUCED 可以进行简单的重复数据删除工作(例如立即删除重复的结果),而无需记住每一行。在许多应用程序中,这已经足够好了。

    虽然我从未使用过 REDUCE,但我从未见过有人使用过 REDUCED,也从未见过演讲或教程中提到过 REDUCED。

    【讨论】:

    • 刚刚发现这个:franz.com/agraph/support/documentation/current/… 说 - 如果您不需要删除重复项,但也不需要冗余条目 - 如果您依赖计数是正确的,例如 - 那么您可以指定 REDUCED 而不是 DISTINCT。 这允许 AllegroGraph 在有利的情况下丢弃重复值。
    • 我们在处理非常大的结果集时使用 REDUCED,其中 DISTINCT 太慢,但有很多重复项。不过,它非常有用。
    • This paper 说 REDUCED 在野外查询中极为罕见。
    【解决方案2】:

    在我看来(以及在我自己的 SPARQL 实现中)REDUCED 实际上是一个可选的 DISTINCT 约束,仅在引擎认为有必要时才应用,即查询引擎将根据查询决定是否消除重复结果

    在我自己的实现中,如果还使用了 OFFSET/LIMIT,我只会在使用 REDUCED 时消除重复项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-13
      • 2017-01-25
      • 2019-06-26
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多