知識圖譜數據存儲
目前,主流的的知識存儲解決方案包含單一式和混合式存儲兩種。
其存儲方式一般有兩種選擇,一個是通過RDF(資源描述框架)這樣的規范存儲格式來進行存儲,比較常用的有Jena等。
還有一種方法,就是使用圖數據庫來進行存儲,常用的如Neo4j等。
一般情況,對知識存儲沒有統一的標准,目前業內存儲知識的方式有三種,第一種為三元組形式的RDF存儲;第二種為傳統關系型數據庫存儲;第三種為圖數據庫存儲;而目前比較常用的為圖數據存儲或者關系型數據庫+圖數據庫存儲的方式。
RDF
RDF即資源描述框架,本質上是一個數據模型;它提供了一個統一的標准,用於描述資源/實體,形式上是以(實體,關系,實體)三元組的形式進行數據的存儲。
RDF存儲的優點是:
- RDF用圖描述更加直觀。
- 圖模型符合RDF模型的語義層次,可以最大限度的保持RDF數據的語義信息。
- 圖能夠直接映射RDF模型,避免了為適應存儲結構對RDF數據進行轉換。
- 以圖結構存儲RDF數據避免了重構,以其他形式存儲時,查詢RDF數據的語義信息需要重構RDF圖。
- 可以借鑒成熟的圖算法、圖數據庫來設計RDF數據的存儲方案與查詢算法。
同樣RDF的缺點也很明顯:
- 設計上不夠靈活,當加入新的屬性或數據時,需要重構網絡。
- 存儲空間大。
- 由於沒有相應的圖查詢引擎,所以查詢算法時間復雜度高。
關系型數據庫
傳統的關系型數據庫存儲圖數據可以很好的解決單條數據查詢的問題,因為傳統的數據庫在存儲效率和查詢效率上都有很大的優勢,且關系型數據庫是目前最成熟也應用最廣的數據庫。
關系型數據庫的缺點:
- 在深度關聯查詢時,效率很低。
- 在關系的實時查詢時不能很好的支持。
圖數據庫
在關聯深度查詢(二度三度關系)和圖計算引擎,數據靈活性,開發敏捷性等方面,圖數據庫應運而生,研究者們很好的解決了大數據存儲、計算、查詢問題,目前圖數據庫產品有很多,類似的Neo4j、OpenLink、Bigdata等,但比較常用且社區活躍的是Neo4j,這里接着重介紹一下Neo4j。
Neo4j是一個原生的圖數據庫引擎,它有獨特的存儲結構免索引鄰居節點存儲方法,且有相應的圖遍歷算法,所以它的性能並不會隨着數據的增大而受到影響,Neo4j具有非常高的查詢性能;圖數據結構自然伸展特性及其非結構化的數據格式,讓Neo4j的數據庫設計可以具有很大的伸縮性和靈活性。
與其他圖數據庫相比而言,Neo4j是一個原生的計算引擎,它存儲和使用的數據自始至終都是使用原生的圖數據結構進行處理;Neo4j是一個開源的數據庫,其開源的社區版吸引了眾多第三方的使用和推廣。