分页SPARQL结果

Xen*_*yal 8 rdf sparql

假设我有以下SPARQL查询:

SELECT DISTINCT ?result ?label
WHERE {
  ?result a database:Column .
  ?result rdfs:label ?label .
}
ORDER BY (LCASE(?label))
Run Code Online (Sandbox Code Playgroud)

我可以在查询中添加什么来将结果数限制为前10个?或者优选地,在第一个n×10结果之后的10个结果?我正在尝试实现分页以显示结果.

Jos*_*lor 12

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

您想使用limit,order byoffset.它们在标准中描述得非常好:

15.4 OFFSET

OFFSET导致生成的解决方案在指定数量的解决方案之后启动.OFFSET为零无效.

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

15.5限制

LIMIT子句为返回的解决方案数量设置上限.如果在应用OFFSET之后实际解决方案的数量大于限制,则最多将返回解决方案的限制数量.

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

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

  • 你好!您知道一种没有偏移量的 SPARQL 分页方法吗?[本期](https://github.com/w3c/sparql-12/issues/49) 和其他资源指出了大型结果的偏移效率低下。 (2认同)