2017-02-22 95 views
0

我在Virtuoso RDF Store中上传了一个RDF文件。该RDF包含从关系数据库抽取到的传感器测量,具有以下格式:迄今为止的SPARQL时间戳

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> 

时间概念是时间戳,我想知道如果我可以将它们转换datetime格式,使用SPARQL功能。

例如,有这个时间戳:1454688000,将其转换成该日期(或类似格式):Fri, 05 Feb 2016 14:00:00 GMT

我知道SPARQL让你做一些算术运算,但不能肯定是否可以做到这一点。

由于提前,

+1

目前尚不清楚你实际开始的是什么,所以提供适当的建议是很难做到的。您能否向我们展示更完整的样本数据片段?龟通常是最好的格式。 – TallTed

+0

@TallTed对我来说,问题如下所示:如何使用SPARQL将时间戳(可能是'xsd:long')转换为日期类型(可能是'xsd:dateTime')。其余的看起来更像是呈现日期值,这在SPARQL中不存在,但任何客户端API都可以。 – AKSW

回答

1

如果我正确理解你的出发点和落脚点,你应该能够做这样的事情,使用标准的SPARQL -

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

的Virtuoso还有其他的一些功能可能有帮助(包括将xsd:dateTime转换为格式化的xsd:string),但这些步骤超出了标准SPARQL。