从 RDF 文件中删除重复的三元组

use*_*433 0 rdf duplicates triples

我应该从 RDF 文件中删除重复的三元组吗?例如,我在一个文件中有这些块:

<http://Group/row1>
    vocab:regione Campania ;
    vocab:nome Napoli ;
    vocab:codice NA .
Run Code Online (Sandbox Code Playgroud)

<http://Group/row1>
    vocab:nome Napoli ;
    vocab:codice NA .
Run Code Online (Sandbox Code Playgroud)

第二个块中的三元组也全部出现在第一个块中。是否应该从文件中删除第二个块?

Jos*_*lor 5

RDF 是基于图的表示,图(在这个意义上)是一边。根据定义,集合没有重复的元素。当然,RDF 图的特定序列化可能会多次描述相同的三元组,并且您可能有理由希望避免这种情况。作为术语说明,您所说的“Triple 1”实际上是三个三元组:

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".
group:row1  vocab:regione "Campania".
Run Code Online (Sandbox Code Playgroud)

你所说的“Triple 2”实际上是两个三元组:

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".
Run Code Online (Sandbox Code Playgroud)

无论如何:(i)在数据中多次表示相同的三元组实际上不应该成为问题;(ii) 如果你想删除它,那么读入图表(使用任何 RDF 处理工具)并再次写出来应该会给你一个没有重复信息的表示。例如,假设您有以下内容data.rdf

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".
group:row1  vocab:regione "Campania".
Run Code Online (Sandbox Code Playgroud)

当您用 Jena 读入rdfcat并再次写出时,您会得到以下结果:

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".
Run Code Online (Sandbox Code Playgroud)