2017-02-22 38 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。