我应该从 RDF 文件中删除重复的三元组吗? 例如,我在文件中有这些块:
<http://Group/row1>
vocab:regione Campania ;
vocab:nome Napoli ;
vocab:codice NA .
和
<http://Group/row1>
vocab:nome Napoli ;
vocab:codice NA .
第二个块中的三元组也都出现在第一个块中。是否应该从文件中删除第二个块?
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>