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

问题描述 投票:0回答:1

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

<http://Group/row1>
    vocab:regione Campania ;
    vocab:nome Napoli ;
    vocab:codice NA .

<http://Group/row1>
    vocab:nome Napoli ;
    vocab:codice NA .

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

duplicates rdf triples
1个回答
5
投票

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

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".
group:row1  vocab:regione "Campania".

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

group:row1  vocab:codice  "NA" .
group:row1  vocab:nome  "Napoli".

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

data.rdf

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:group="http://stackoverflow.com/q/23241612/1281433/group/"
    xmlns:vocab="http://stackoverflow.com/q/23241612/1281433/vocab/">
  <rdf:Description rdf:about="http://stackoverflow.com/q/23241612/1281433/group/row1">
    <vocab:regione>Campania</vocab:regione>
    <vocab:nome>Napoli</vocab:nome>
    <vocab:codice>NA</vocab:codice>
  </rdf:Description>
  <rdf:Description rdf:about="http://stackoverflow.com/q/23241612/1281433/group/row1">
    <vocab:nome>Napoli</vocab:nome>
    <vocab:codice>NA</vocab:codice>
  </rdf:Description>
</rdf:RDF>

这是当您使用 Jena 的

rdfcat
读入并再次写出时得到的结果:

$ rdfcat data.rdf
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:group="http://stackoverflow.com/q/23241612/1281433/group/"
    xmlns:vocab="http://stackoverflow.com/q/23241612/1281433/vocab/">
  <rdf:Description rdf:about="http://stackoverflow.com/q/23241612/1281433/group/row1">
    <vocab:regione>Campania</vocab:regione>
    <vocab:nome>Napoli</vocab:nome>
    <vocab:codice>NA</vocab:codice>
  </rdf:Description>
</rdf:RDF>
© www.soinside.com 2019 - 2024. All rights reserved.