java - ARQ 是否支持 SPARQL 1.1 日期和时间函数?

标签 java rdf sparql jena arq

我一直在尝试对日期/时间值进行一些格式化,以使它们在结果中显示为字符串文字。我正在使用 apache-jena-2.11.0 中的 Jena ARQ。

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT ?activity  ?agent ?time ?time (YEAR(?time) as ?year )   WHERE {
     ?activity prov:endedAtTime ?time ;
            prov:wasAssociatedWith ?agent .

}

ARQ 将日期时间报告为

"2015-02-20T13:07:53+00:00:00"^^<xsd:dateTime>  to me.

这就是该属性在 RDF 中作为 TTL 的样子:

<http://www.w3.org/ns/prov#endedAtTime>
    "2014-08-04T15:35:09+01:00:00"^^<xsd:dateTime> ;

这是通过使用 Jena API 创建的:

resource.addProperty(PROVO.endedAtTime,
                model.createTypedLiteral(date, "xsd:dateTime"));

也许我使用的 API 错误?

最佳答案

是的,Jena 支持所有 SPARQL 1.1 功能。

您遇到问题是因为

"2015-01-07T15:22:53+00:00:00"^^<xsd:dateTime> 

不是日期时间。

"2015-01-07T15:22:53+00:00:00"^^http://www.w3.org/2001/XMLSchema#dateTime> 

"2015-01-07T15:22:53+00:00:00"^^xsd:dateTime 

<xsd:dateTime>是一个完全不同的URI,URI方案名称“xsd”。

关于java - ARQ 是否支持 SPARQL 1.1 日期和时间函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29037700/

相关文章:

curl - 使用 cURL 更新 openrdf-sesame 端点中的三元组

java - Jetty:找出哪个连接器用于传入请求

Java OOP 优化代码

rdf - 提取由一组节点引起的子图

namespaces - 无法解析此 RDF/XML,因为 System.Xml 无法解析文档

java - RDF4J:解析来自端点的查询结果并将其存储为 ntriples 文件(格式错误的查询)

java - JENA - 从 RDF 中获取值(value)

java - 如何使加载的jar使用自身资源而不是加载器?

java - 项目布局和 Spring 测试支持问题

rdf - rdf :resource and rdfs:Resource? 有什么区别