如何使用 TTL 导入 dateTime 文字?

How to import dateTime literal using TTL?

我正在将数据从一个 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);

以下格式有效,而不是 "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> 符号括在引号中。

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