我一直在尝试对日期/时间值进行某种格式设置,以使其在结果中显示为字符串文字。我正在使用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”。

10-04 11:40
查看更多