2015-06-06 45 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