坚持Jena TDB三重店的数据

时间:2015-06-06 11:27:08

标签: rdf jena ontology triplestore tdb

我正在使用Jena TDB来保存RDF数据。在此之前,我搜索了如何在TDB中保留数据,并在此link处找到了问题。 Ryan提供的答案清楚地提到了各种概念之间的区别,我得到的关于数据集的一点是:

数据集就像一个数据源,但它的三元组是静态的 - 你不希望添加新的或者现有的删除。这些人只读

记住这一点,我将一些rdf数据存储在数据集中的命名模型中。现在,当我尝试存储/附加一些新数据时,它会清楚地覆盖前一个数据。所以,这与Ryan所提到的明显相反,只读自然。 因此,我需要澄清的各个方面包括:

  1. Ryan对于他讨论过的关于数据集的内容是否正确?
  2. 如果对#1的答案是肯定的,那么为什么我能够覆盖?
  3. 在持久化数据之前,TDB是否检查重复。我问这个是因为我试图插入一些重复的RDF语句,我期待rdf语句的数量增加,但计数没有增加!

2 个答案:

答案 0 :(得分:1)

插入同一图表时,不应期望三重计数增加。我猜你正在研究TDB中的默认图。如果情况并非如此,您应该感到惊讶,并且很可能是因为底层三重存储中的错误。在同一上下文中陈述相同事实的多个三元组只是多余的。

如果您打算从不同的环境中收集事实(例如,不同的信息来源),那么您可以将三元组存储在单独的图表中。事实上,大多数三联商店都是四元商店,让您可以做到这一点。 TDB是一个四元组存储,您可以加载和处理多个图形。详细了解TDB datasets

答案 1 :(得分:0)

在收到反馈并调整耶拿后,我发现所有要点的答案为:

  1. Ryan对于他讨论过的关于数据集的内容是否正确?

    从Joshua的评论和阅读API中我发现Jena框架已经有了很大的改进,所以Ryan对数据集的解释已经不再有效了。

  2. TDB在保留数据之前是否检查重复。我问这个是因为我试图插入几个重复的RDF语句,我期待rdf语句的数量增加,但计数没有增加!

    我试图在相同的命名图中插入重复的语句,但我没有发现计数有任何增加。我认为TDB没有检查重复(文档中没有提到),但是如果图中已经存在相同的语句,它只是用新的替换现有的语句。因此,它不会导致任何计数增加。