如何使用TTL导入dateTime文字?

时间:2016-12-09 23:13:23

标签: datetime sparql rdf virtuoso

我正在将数据从一个RDF存储区复制到另一个存储区。

dateTime来自源(XML格式)的方式是:

<binding name="o"><literal datatype="http://www.w3.org/2001/XMLSchema#dateTime">2016-12-01T15:31:10-05:00</literal></binding>

我尝试按原样取值并通过TTL文件myFile.ttl导入它:

<http://test.com>
    a   <http://test.com/catalog/someType> ;
    <http://test.com#modifiedDate>
        "2016-12-01T15:31:10-05:00" ; # http://www.w3.org/2001/XMLSchema#dateTime
    <http://test.com#numberTest>
        5 . # http://www.w3.org/2001/XMLSchema#integer

但是将"2016-12-01T15:31:10-05:00"作为字符串插入。对象5的最后一个三元组正确插入为integer

如何使用TTL文件导入dateTime数据?我正在使用Virtuoso。我正在导入isql中的TTL文件:

DB.DBA.TTLP_MT(file_to_string_output('myFile.ttl'), '', 'http://my.domain.com/mygraph', 255);

2 个答案:

答案 0 :(得分:4)

In Turtle"2016-12-01T15:31:10-05:00"是一个无类型的引用文字 - 即字符串。

您需要改为其中之一 -

  • "2016-12-01T15:31:10-05:00"^^<http://www.w3.org/2001/XMLSchema#dateTime>
  • "2016-12-01T15:31:10-05:00"^^xsd:dateTime

对于5(没有引号),它不是带引号的文字,而且是一个数字字符串,所以你很幸运自动输入。严格来说,这个Turtle应该(你没有为此包含XML)是其中之一 -

  • "5"^^<http://www.w3.org/2001/XMLSchema#integer>
  • "5"^^xsd:integer

答案 1 :(得分:2)

而不是"val" # type格式,以下工作:

<http://test.com>
    a   <http://test.com/catalog/someType> ;
    <http://test.com#modifiedDate>
        '2016-12-01T15:31:10-05:00'^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
    <http://test.com#numberTest>
        '5'^^<http://www.w3.org/2001/XMLSchema#integer> .

请注意,即使整数也需要用^^<type>符号括在引号中。