我正在将数据从一个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);
答案 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>
符号括在引号中。