知識圖譜之圖數據庫Neo4j


知識圖譜中的知識是通過RDF結構來進行表示的,其基本單元是事實。每個事實是一個三元組(S, P, O),在實際系統中,按照存儲方式的不同,知識圖譜的存儲可以分為基於表結構的存儲和基於圖結構的存儲。

基於表結構的存儲可以用關系型數據庫,常見的關系型數據庫存儲系統有MySQL、Oracle、DB2、Microsoft SQL Server等;基於圖結構的存儲,常見的存儲系統有Neo4j、OritentDB、InfoGrid、HyperGraphDB、infiniteGraph等。下面講述Neo4j數據庫的一些理論和操作。

圖數據庫的理論基礎是圖論,通過節點、邊和屬性對數據進行表示和存儲。具體來說,圖數據庫基於有向圖,其中,節點、邊、屬性是圖數據庫的核心概念。

(1)節點

節點用於表示實體、事件等對象,可以類比於關系數據庫中的記錄或者數據表中的行數據。例如人物、地點、電影都可以作為圖中的節點。

(2)邊

邊是指圖中連接節點的有向線條,用於表示不同節點之間的關系。例如人物之間的同事關系都可以作為圖中的邊。

(3)屬性

屬性用於描述節點或者邊的特性。例如人物(節點)的姓名、性別、愛好等都是屬性。

圖數據庫的標准查詢語言是SPARQL。SPARQL是由W3C為RDF數據開發的一種查詢語言和數據獲取協議,是被圖數據庫廣泛支持的查詢語言,用於對數據的獲取與管理,主要包括數據的插入、刪除和查詢操作,沒有更新操作。

下面來介紹SPARQL語言的使用方法。

 

1. 數據插入

數據插入指新的三元組插入到已有的RDF圖中,通過INSERT DATA語句完成該功能。

語法:INSERT DATA 三元組數據

例子:

INSERT DATA {

ns: 費米  ns: 老師  ns:玻恩.

ns: 玻恩  ns: 類型  ns: 數學家.

ns: 玻恩  ns: 類型  ns: 物理學家.

}

 

2. 數據刪除

數據刪除是從RDF圖中刪除一些三元組。通過DELETE DATA語句完成該功能。

語法:DELETE DATA三元組數據

例子:

DELETE DATA {

ns: 奧本海默  ns: 類型  ns: 物理學家.

}

可以用WHERE來作限制。

例子:

DELETE DATA {

ns: 奧本海默  ?p  ?o.

?s  ?p  ns: 奧本海默. 

}

 

3. 數據更新

數據更新是指更新RDF圖中指定三元組的值。和SQL不同,SPARQL沒有定義UPDATE操作,也就是說SPARQL語言沒有更新已有數據的方法。但是可以通過組合INSERT DATA語句和DELETE DATA語句來實現該功能。

例子:

DELETE DATA {

ns: 費米  ns: 出生日期  "1902/09/29".

}

INSERT DATA {

ns: 費米  ns: 出生日期  "1901/09/29"

}

 

4. 數據查詢

包括四種方式:SELECT、ASK、DESCRIBE、CONSTRUCT。以下一一介紹着四種方式的用法和區別。

(1)SELECT

SELECT功能與SQL中的SELECT語句類似,從知識圖譜中獲取滿足條件的查詢語句。

語法:SELECT 變量1 變量2 ... WHERE 圖模式[修飾符]

例子:查詢類型既是"數學家"又是"物理學家"。

SELECT ?s

WHERE {

?s  ns: 類型  ns: 數學家.

?s  ns: 類型  ns: 物理學家.

}

 

(2)ASK

ASK用於測試知識圖譜中是否存在滿足給定條件的數據,如果存在,返回"yse",否則返回"no",該查詢不會返回具體的匹配數據。

語法:ASK 圖模式

例子:是否存在是"費米"老師的節點

ASK {

ns: 費米  ns: 老師  ?o.

}

 

(3)DESCRIBE

DESCRIBE用於查詢和指定資源相關的RDF數據,這些數據形成了對給定資源的詳細描述。

語法:DESCRIBE 資源或變量 [WHERE 圖模式]

例子:獲取老師是"玻恩"的節點的所有信息

DESCRIBE ?s WHERE {

?s  ns: 老師  ns: 玻恩.

}

 

(4)CONSTRUCT

CONSTRUCT是根據查詢圖的結果返回RDF。

語法:CONSTRUCT 圖模板 WHERE 圖模式

例子:

CONSTRUCT {

?s  ns: 搭檔  ns: 奧本海默.

ns: 奧本海默  ns: 搭檔  ?s.

}

WHERE {

?s  ns: 老師  ns: 玻恩.

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM