coo*_*hny 11 datetime rdf sparql jena
我正在使用Jena的SPARQL引擎并尝试编写一个查询来过滤日期范围,因为我需要在固定日期之后找到属性的值.
我的日期属性采用以下格式:
Fri May 23 10:20:13 IST 2014
Run Code Online (Sandbox Code Playgroud)
如何编写SPARQL查询以获取日期大于此值的其他属性?
Rob*_*obV 20
使用该格式的数据,如果不向ARQ(适用于高级用户)添加自定义扩展功能,则无法对其进行过滤,因为您需要解析和解释日期时间字符串.
您应该做的是将数据转换为xsd:dateTime所有SPARQL实现都需要支持的标准日期时间格式.有关此格式的详细信息,请参阅XML Schema Part 2:Datatypes规范.
您的具体示例日期将转换如下:
2014-05-23T10:20:13+05:30
Run Code Online (Sandbox Code Playgroud)
xsd:dateTime当您在数据和查询中使用它时,必须确保将其声明为类型的类型文字.例如,在可读的Turtle RDF语法中:
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://example.org> .
:subject :date "2014-05-23T10:20:13+05:30"^^xsd:dateTime .
Run Code Online (Sandbox Code Playgroud)
然后,您可以编写一个SPARQL查询,按日期范围过滤,如下所示:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX : <http://example.org>
SELECT *
WHERE
{
?s :date ?date .
FILTER (?date > "2014-05-23T10:20:13+05:30"^^xsd:dateTime)
}
Run Code Online (Sandbox Code Playgroud)
这将查找?date在给定日期之后的所有记录
| 归档时间: |
|
| 查看次数: |
13417 次 |
| 最近记录: |