SPARQL,根据总订单函数获取结果集中的下一个值

时间:2017-05-21 20:43:10

标签: sparql rdf

考虑具有单个头部变量q1的SPARQL查询?y,即具有结果集q1(?y) :- some pattern的{​​{1}}。

问题:

鉴于res(q1)中的具体值vi,我想根据特定的总订单函数确定res(q1)中的下一个值vi+1(例如{{1}对于整数值)。

示例:

考虑针对DBpedia SPARQL endpoint提出以下问题。

res(q1)

这将导致

these results

现在给出值<,然后PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> select ?y where { ?x <http://dbpedia.org/ontology/wikiPageID> ?y } order by ?y LIMIT 10 ,从结果中可以看出。

我唯一想做的就是使用外部编程代码段;获取有序SPARQL查询结果列表(使用vi = 10),转到vi+1 = 12,然后检索下一个应该为ORDER BY的值。

问题:

是否有任何解决方法可以在SPARQL中表达这一点而无需编码,(如果vi在查询中是固定值,则没问题)?

1 个答案:

答案 0 :(得分:2)

如果可以假设您事先了解ORDER BY [Name] ASC,则可以使用过滤器和限制来仅检索vi

vi+1

上面的查询会产生一个值PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> select ?y where { ?x <http://dbpedia.org/ontology/wikiPageID> ?y filter(?y > 10) } order by ?y LIMIT 1