我有一个问题。
我想删除文件RDF中的重复三元组。 例如,我有这两个三元组的RDF组:
Triple 1 =
其中vocab:regione,vocab:nome和vocab:codice是谓词。
Triple 2 =
其中vocab:nome和vocab:codice是谓词。
在这种情况下,“Triple2”包含在“Triple1”中。是否应删除“Triple2”?
提前致谢。
答案 0 :(得分:4)
RDF是基于图形的表示,图形(在这个意义上)是边的集。根据定义,集合没有重复的元素。当然,RDF图的特定序列化可以不止一次描述相同的三元组,并且可能有理由要求您避免这种情况。作为关于术语的说明,你称之为“Triple 1”的东西实际上是三个三元组:
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>