【问题标题】:Paginating SPARQL results分页 SPARQL 结果
【发布时间】:2015-02-13 19:21:03
【问题描述】:

假设我有以下 SPARQL 查询:

SELECT DISTINCT ?result ?label
WHERE {
  ?result a database:Column .
  ?result rdfs:label ?label .
}
ORDER BY (LCASE(?label))

我可以在查询中添加什么以将结果数限制为给定的前 10 个?或者最好是第一个 n×10 个结果之后的 10 个结果?我正在尝试实现分页以可视化结果。

【问题讨论】:

    标签: rdf sparql


    【解决方案1】:

    我正在尝试为表实现一个分页系统,以可视化返回的数据。

    您想使用 limitorder byoffset。标准中对它们进行了很好的描述:

    15.4 OFFSET

    OFFSET 导致生成的解决方案在指定的时间后开始 解决方案的数量。零偏移量无效。

    使用 LIMIT 和 OFFSET 选择查询的不同子集 除非订单是可预测的,否则解决方案将没有用 使用 ORDER BY。

    15.5 LIMIT

    LIMIT 子句为解决方案的数量设置了上限 回来。如果实际解决方案的数量,在应用 OFFSET 后, 大于极限,则至多为极限解数 将被退回。

    在您的情况下,当您每页显示十个结果时,您的查询将显示第四页结果:

    SELECT DISTINCT ?result ?label
    WHERE {
      ?result a database:Column .
      ?result rdfs:label ?label .
    }
    ORDER BY (LCASE(?label))
    LIMIT 10
    OFFSET 30
    

    【讨论】:

    • 嗨!你知道没有偏移量的 SPARQL 分页方法吗? This issue 和其他资源指出了偏移量对于大结果的低效率。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多