我有一堆带有附加属性的 RDF Data Cube 观察,在我的例子中是记录该值的日期。
模式很简单,例如(省略其他维度/度量/属性):
<obs1> a qb:Observation ;
my:lastupdate '2017-12-31'^^xsd:date ;
qb:dataSet <dataSet1> .
<obs2> a qb:Observation ;
my:lastupdate '2016-12-31'^^xsd:date ;
qb:dataSet <dataSet1> .
<obs2_1> a qb:Observation ;
my:lastupdate '2017-12-31'^^xsd:date ;
qb:dataSet <dataSet2> .
<obs2_2> a qb:Observation ;
my:lastupdate '2015-12-31'^^xsd:date ;
qb:dataSet <dataSet2> .
所以我qb:DataSet
的商店里有多个。现在我想找出my:lastupdate
每个数据集的最后 X 个值。假设我想要每个特定数据集的最后 5 个值。
对于一个特定的数据集,我可以很容易地做到这一点:
SELECT * WHERE {
?observation my:lastupdate ?datenstand ;
qb:dataSet <dataSet1>
} ORDER BY DESC(?datenstand) LIMIT 5
但是,如果在每个数据集的单个 SPARQL 查询中完全可以做到这一点,我会有点迷茫。我尝试了与子选择、LIMIT 和 GROUP BY 组合的各种组合,但没有任何结果导致我正在寻找的结果。