N-Triples优于CSV存储RDF三元组的优势是什么?

asm*_*ier 3 csv rdf n-triples

N-Triples是RDF图的基于行的序列化格式.每行代表RDF Triple的主题,谓词和对象,由空格分隔,并以点结束,如:

<http://one.example/subject1> <http://one.example/predicate1> <http://one.example/object1> . 
Run Code Online (Sandbox Code Playgroud)

更多细节可以在这里找到:http://www.w3.org/TR/n-triples/

但是为什么有必要定义这样的格式,如果可以简单地使用CSV来序列化RDF Triples

http://one.example/subject1, http://one.example/predicate1, http://one.example/object1
Run Code Online (Sandbox Code Playgroud)

我甚至可以使用CSV轻松扩展以支持N-Quads,N-Quints ...... 对于序列化RDF三元组,N-Triples比CSV有什么优势?

daj*_*obe 6

免责声明:我是N-Triples的原始编辑,并在Raptor http://librdf.org/raptor/中实现了N-Triples原版和2013版本.

这有多个答案,但基本上是歧义.CSV无法区分看起来像的URI http://foo.com/和字符串http://foo.com/

在CSV中

http://foo.com/,http://foo.com/,http://foo.com/
Run Code Online (Sandbox Code Playgroud)

这可能是三倍

(URI http://foo.com/, URI http://foo.com/, URI http://foo.com/)
Run Code Online (Sandbox Code Playgroud)

要么

(URI http://foo.com/, URI http://foo.com/, Literal http://foo.com/)
Run Code Online (Sandbox Code Playgroud)

N-Triples增加<>""区分这些情况

  • @asmaier如果作者A将RDF模型写入N-Triples并且消费者B然后读取该文件,则希望它与原始模型相同 - 整个点是让B理解A的意图.只有在文件语法格式不引入歧义时才能保证这一点. (4认同)