如何比较SPARQL中的2个日期

时间:2017-03-30 09:40:48

标签: sparql rdf triplestore triples turtle-rdf

我正在研究非时间SPARQL查询,我对RDF三元组的概念感到有些困惑。

说,我想找到所有取消工作的员工,然后选择完成他们取消的同一份工作。那么我如何存储他们取消工作的日期和他们选择做同样工作的日期呢?

以下是否有效?

SELECT ?emp
    WHERE
    {
      ?emp :cancelledJob ?job
      ?emp :dateCancelled ?date1 
      ?emp :selectedJob ?job 
      ?emp :dateSelectedJob ?date2 
      FILTER(?date1 < ?date2) 
    }

1 个答案:

答案 0 :(得分:2)

如果 ?date2 的值与&lt; 如标准中所定义,或者如果您正在使用的特定实现扩展了&lt; 运算符来处理它们。 SPARQL的运算符映射在标准17.3 Operator Mapping中给出。标准规定的数据类型及其映射是:

[
    [S1, '20964', '15', '44497'],
    [S2, '1096', '2', '7501']
];

因此,如果您的日期是任何类型,您的查询将起作用。某些实现也可能处理其他类型。