我需要将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查询语言的了解有限。我真的很感激任何指针。
答案 0 :(得分:5)
看起来格式已经几乎完全合法的RDF(采用N-Triples语法),因此实际上最简单的方法就是修复一些小问题,然后使用支持的RDF解析器N-Triples格式用于处理文件。
合法的N-Triples有两件事不太正确:
显然,第一点很容易解决。第二个可能更具挑战性。 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。