从CSV三元组生成RDF图

时间:2014-03-23 23:24:03

标签: csv graph rdf

我需要将CSV文件(制表符分隔的三元组)[subject predicate object]转换为RDF图。 CSV文件如下所示:

<http://gadm.geovocab.org/id/1_3214_geometry_1km.rdf> 

<http://code.google.com/p/ldspider/ns#headerInfo> _:header14010232801335542310249
_:header14010232801335542310249 <http://www.w3.org/2006/http#responseCode> 200^^<http://www.w3.org/2001/XMLSchema#integer>
_:header14010232801335542310249 <http://www.w3.org/2006/http#date> Fri, 27 Apr 2012 15:58:31 GMT
_:header14010232801335542310249 <http://www.w3.org/2006/http#server> Apache/2.2.16 (Debian)
_:header14010232801335542310249 <http://www.w3.org/2006/http#expires> Sat, 28 Apr 2012 15:58:31 GMT
_:header14010232801335542310249 <http://www.w3.org/2006/http#content-length> 4173

我对RDF / RDF查询语言的了解有限。我真的很感激任何指针。

1 个答案:

答案 0 :(得分:5)

看起来格式已经几乎完全合法的RDF(采用N-Triples语法),因此实际上最简单的方法就是修复一些小问题,然后使用支持的RDF解析器N-Triples格式用于处理文件。

合法的N-Triples有两件事不太正确:

  1. 每行应以'。'结尾。
  2. 日期值不会写为合法的RDF文字值。
  3. 显然,第一点很容易解决。第二个可能更具挑战性。 N-Triples语法中的RDF文字用双引号写成字符串。因此,要将Fri, 27 Apr 2012 15:58:31 GMT转换为合法的RDF文字,您只需要在其周围加上引号:

    "Fri, 27 Apr 2012 15:58:31 GMT" 
    

    然而,这只是使它成为字符串文字。如果你想更进一步,实际上使它格式正确数据类型文字(使用xsd:dateTime数据类型,你需要将它转换为正确的dateTime格式。这个特殊的例子需要成为20120327T15:58:31Z,并且在N-Triples中,使用^^<datatype-URL>语法将数据类型附加到文字,因此它将变为:

    "20120327T15:58:31Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> 
    

    总而言之,你的整行将成为:

    _:header14010232801335542310249 <http://www.w3.org/2006/http#date>  "20120327T15:58:31Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
    

    或者,如果您发现CSV文件的其他部分转换有问题,您也可以使用任何旧的CSV解析器并编写一个小程序来读取CSV文件并使用其值创建RDF语句,您选择的编程语言中的RDF框架/ API。