RDF 的 SPARQL 日期过滤器查询
SPARQL date filter query for RDF
我正在使用 SPARQL 进行查询,它工作正常。但是,当我添加数据过滤器时,它不会引发错误,但也不会执行过滤器。最后一部分是我应该能够在两个日期之间查询:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX hotel: <http://users.jyu.fi/~mimomuki/everything/hotel#>
SELECT *
WHERE { ?room hotel:hasCity ?sender; hotel:hasFirstDay ?Firstday
FILTER ( ?Firstday >= "2016-09-01"^^xsd:date )
}
SPARQL FILTER 用作正过滤器。如果表达式对于任何匹配项都为真,则该匹配项成立。否则匹配将被丢弃并且 ?room
?sender
和 ?Firstday
不会有任何绑定。不会抛出任何错误,因为查询正确 returns 没有匹配项。
如果要比较日期,可能需要确保筛选表达式中操作数的数据类型正确。您可以通过将两个值都转换为 xsd:dateTime
来实现
FILTER ( xsd:dateTime(?Firstday) >= xsd:dateTime("2016-09-01") )
这个过滤器对我有用:
FILTER (?FirstDay>= "2016-09-01T00:00:00Z"^^xsd:dateTime)
我正在使用 SPARQL 进行查询,它工作正常。但是,当我添加数据过滤器时,它不会引发错误,但也不会执行过滤器。最后一部分是我应该能够在两个日期之间查询:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX hotel: <http://users.jyu.fi/~mimomuki/everything/hotel#>
SELECT *
WHERE { ?room hotel:hasCity ?sender; hotel:hasFirstDay ?Firstday
FILTER ( ?Firstday >= "2016-09-01"^^xsd:date )
}
SPARQL FILTER 用作正过滤器。如果表达式对于任何匹配项都为真,则该匹配项成立。否则匹配将被丢弃并且 ?room
?sender
和 ?Firstday
不会有任何绑定。不会抛出任何错误,因为查询正确 returns 没有匹配项。
如果要比较日期,可能需要确保筛选表达式中操作数的数据类型正确。您可以通过将两个值都转换为 xsd:dateTime
FILTER ( xsd:dateTime(?Firstday) >= xsd:dateTime("2016-09-01") )
这个过滤器对我有用:
FILTER (?FirstDay>= "2016-09-01T00:00:00Z"^^xsd:dateTime)