2015-06-06 39 views
2

我正在使用Jena TDB来保存RDF数据。在此之前,我搜索了如何在TDB中保存数据,并且在这个link处遇到了问题。 Ryan提供的答案清楚地提到了各种概念之间的差异,并且我得到的关于数据集的一点是:在Jena TDB三重商店中持久保存数据

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

牢记这一点,我存储在数据集内一个名为模型的一些RDF数据。现在,当我试图存储/追加一些新的数据时,它会明显覆盖前一个。所以,这与Ryan所提到的完全相反,即只读性质。 所以为此我需要澄清的不同点包括:

  1. 是瑞安正确的什么,他对数据集的讨论?
  2. 如果对第1点的回答是肯定的,那么为什么我可以覆盖?
  3. TDB在保留数据之前是否检查重复数据。我问这是因为我试图插入一对重复的RDF语句,我期待rdf语句的计数增加,但是计数没有增加!
+1

“的数据集就像一个数据源,但它的三元组是静态的 - 你不希望添加新的或现有的作业被删除这些家伙都是只读”这简直是不正确的。 SPARQL标准包括* UPDATE *,* DELETE *等,Ttat答案是2011年,这是SPARQL更新发布前的2年。 –

回答

0

接收反馈和调整耶拿后,我发现你所有点作为:

  1. 是瑞安正确的什么,他对数据集的讨论?

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

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

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

1

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

如果您的目的是收集来自不同背景(例如不同信息来源)的事实,那么您可以将三元组存储在单独的图中。实际上,大多数三重商店都是四家商店,可以让您做到这一点。 TDB是一个四方商店,您可以加载和使用多个图表。阅读更多关于TDB datasets