有没有办法按创建日期对结果进行排序?
必须进行分类的示例查询:
SELECT * WHERE {?s ?p ?o} limit 200
答案 0 :(得分:17)
您可以像在SQL中一样使用order by子句。请注意,根据SPARQL规范,ORDER BY
仅适用于SELECT
个查询。您需要为要用于订购的属性创建绑定。
SELECT ?s ?p ?o
WHERE {?s ?p ?o .
?s <creationDatePredicate> ?date . }
ORDER BY DESC(?date)
LIMIT 200
更新:如果您尚未存储创建日期,则需要自己存储元数据。至于如何做到这一点,你有几个选择:
在默认图表中存储三元组,其中包含每个主题的创建日期。如果您要存储多个图表,这将很快变得难以处理,可能不是您想要的。
将每个图表存储为RDF三元组商店中的命名图形。然后,您可以在默认图表中或在一个“共享”命名图表中存储有关每个图表的元数据,以便创建时间。
将您的数据存储在指定的图表中,并使用命名图表来存储创建时元数据。
选项#2的SPARQL查询的一个例子是:
SELECT ?s ?p ?o
WHERE {
GRAPH ?g { ?s ?p ?o . }
?g <creationDatePredicate> ?date . }
ORDER BY DESC(?date)
LIMIT 200
答案 1 :(得分:4)
由于您已经说过实际上并没有将创建日期存储在RDF中,因此任何可能的机制都将特定于您正在使用的SPARQL实现以及支持RDF存储或其他任何内容。这很可能是不可能的。