到目前为止的SPARQL时间戳

时间:2017-02-22 16:31:27

标签: sparql rdf virtuoso

我在Virtuoso RDF商店中上传了一个RDF文件。 RDF包含从关系数据库中提取的传感器测量值,格式如下:

TIMESTAMP  | DEVICE_ID  | VALUE
1454688000 | device_125 | 25.3

RDF摘要:

<owl:NamedIndividual rdf:about="http://example.org#device_125">
    <rdf:type rdf:resource="http://example.org#device"/>
    <ont1:hasValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">25.3<ont1:hasValue />
    <ont1:hasTimestamp rdf:datatype="http://www.w3.org/2001/XMLSchema#long">1454688000<ont1:hasTimestamp/>
</owl:NamedIndividual>

时间概念在时间戳中,我想知道我是否可以使用SPARQL功能将它们转换为dateTime格式。

例如,设置此时间戳:1454688000,将其转换为此日期(或类似格式):Fri, 05 Feb 2016 14:00:00 GMT

我知道SPARQL允许您进行一些算术运算,但不确定是否可以这样做。

提前致谢,

1 个答案:

答案 0 :(得分:1)

如果我正确理解你的起点和目标,你应该可以做这样的事情,使用标准的SPARQL -

SELECT                             ?deviceid
       xsd:dateTime(?timestamp) AS ?eventtime
                                   ?value
WHERE 
  {  ?deviceid  ont1:hasTimestamp  ?timestamp  ;
                ont1:hasValue      ?value
  }

Virtuoso还有其他可能有用的功能(包括从xsd:dateTime转换为格式xsd:string的功能),但这些功能超出了标准SPARQL。