知識圖譜—語義網路、語義網、連結資料、知識圖譜
一、語義網路
語義網路是由Quillian於上世紀60年代提出的知識表達模式,其用相互連線的節點和邊來表示知識。節點表示物件、概念,邊表示節點之間的關係。
語義網路的優點:
1. 容易理解和展示。
2. 相關概念容易聚類。
語義網路的缺點:
1. 節點和邊的值沒有標準,完全是由使用者自己定義。
2. 多源資料融合比較困難,因為沒有標準。
3. 無法區分概念節點和物件節點。
4. 無法對節點和邊的標籤(label,我理解是schema層,後面會介紹)進行定義。
簡而言之,語義網路可以比較容易地讓我們理解語義和語義關係。其表達形式簡單直白,符合自然。然而,由於缺少標準,其比較難應用於實踐。看過上一篇文章的讀者可能已經發現,RDF的提出解決了語義網路的缺點1和缺點2,在節點和邊的取值上做了約束,制定了統一標準,為多源資料的融合提供了便利。
貓 rdf:type 哺乳動物
熊 rdf:type 哺乳動物
但還有個問題,如何區分概念和物件?即定義Class和Object(也稱作Instance, Entity)。如果不能區分,會對我們產生什麼影響?舉個例子,假如我們有兩個語義網路A和B。在A中,熊是哺乳動物的一個例項。在B中,熊是哺乳動物的一個子類。前者是is-a關係,後者是subClassOf關係。這種情況常有發生,我們建模的角度不同,那麼同一個事物的表示也可能不同。如果我們不能用一種方法來區別兩者,不僅會給我們帶來理解上的困難,在進行融合的時候也會造成資料衝突。我們不能說A既是B的一個例項,又是B的一個子類。
在語義網技術棧中,RDFS和OWL是RDF更上一層的技術,主要是為了解決語義網路的缺點3和缺點4,其提供了schema層的描述。這裡只需要知道,通過RDFS或者OWL中的預定義詞彙,我們可以形式化地宣告一個類:
哺乳動物 rdf:type rdfs:Class
或者
哺乳動物 rdf:type owl:Class
通過RDFS也可以宣告一個子類:
熊 rdf:type rdfs:Class
熊 rdfs:subClassOf 哺乳動物
或者宣告一個例項
熊 rdf:type 哺乳動物
我們也可以把rdf:type用a代替,即:
熊 a 哺乳動物
RDF,RDFS/OWL屬於語義網技術棧,它們的提出,使得語義網克服了語義網路的缺點。
二、語義網(Semantic Web)和連結資料(Linked Data)
語義網和連結資料是全球資訊網之父Tim Berners Lee分別在1998年和2006提出的。相對於語義網路,語義網和連結資料傾向於描述全球資訊網中資源、資料之間的關係。
語義網是一個更官方的名稱,也是該領域學者使用得最多的一個術語,同時,也用於指代其相關的技術標準。在全球資訊網誕生之初,網路上的內容只是人類可讀,而計算機無法理解和處理。比如,我們瀏覽一個網頁,我們能夠輕鬆理解網頁上面的內容,而計算機只知道這是一個網頁。網頁裡面有圖片,有連結,但是計算機並不知道圖片是關於什麼的,也不清楚連結指向的頁面和當前頁面有何關係。語義網正是為了使得網路上的資料變得機器可讀而提出的一個通用框架。
“Semantic”就是用更豐富的方式來表達資料背後的含義,讓機器能夠理解資料。“Web”則是希望這些資料相互連結,組成一個龐大的資訊網路,正如網際網路中相互連結的網頁,只不過基本單位變為粒度更小的資料,如下圖。
連結資料起初是用於定義如何利用語義網技術在網上釋出資料,其強調在不同的資料集間建立連結。從某種角度說,知識圖譜是對連結資料這個概念的進一步包裝。如下圖所示,讀者肯定在很多地方看過,這其實就是開放連結資料專案(Linked Open Data Project)進展的視覺化(讀者可以開啟連結檢視可互動的視覺化圖),也通常用來展示當前開放知識圖譜的規模,涉及的領域以及知識圖譜間的連結關係。
三、知識圖譜
知識圖譜是由本體(Ontology)作為Schema層,和RDF資料模型相容的結構化資料集。
這裡介紹一下本體:
本體本身是個哲學名詞,在1998年對本體進行了比較完善的定義:本體是共享概念模型的明確的形式化規範說明。這個定義體現了本體的四層含義:概念模型、明確、形式化、共享。
概念模型:通過抽象出客觀世界中一些現象的相關概念而得到的模型。
明確:所使用地概念及使用這些概念的約束都有明確的定義。
形式化:本體可通過各種形式化語言對其進行描述,最終是計算機可讀、可操作的。
共享:本體中體現的是公認的知識,反映的是相關領域中公認的概念集。本體的目標是通過確定該領域內共同認可的詞彙,達到對該領域知識的共同理解。
Perez等人利用分類法來組織本體,並歸納出以下5個基本的建模元語:
(1)類或概念:從語義上將,它表示的是物件的集合,其定義一般採用框架結構,包括概念的名稱,與其他概念之間的關係的集合,以及用自然語言對概念的描述。
(2)關係:在領域中概念之間的相互作用,形式上定義為n維笛卡爾積的子集。在語義上關係對應於物件元組的集合。
(3)函式:一類特殊的關係,該關係的前n-1個元素可以唯一決定第n個元素。
(4)公理:代表永真斷言,如概念乙屬於概念甲的範疇。
(5)例項:代表元素,從語義上講例項表示的就是物件。
以羅納爾多知識圖為例:
我們用IRI唯一標誌的節點都是某個類的一個例項,每一條邊都表示一個關係。羅納爾多是一個人,里約熱內盧是一個地點,我們用RDF來表示就是:
關係我們也稱為屬性(Property),根據是實體和實體之間的關係還是實體和資料值之間的關係分為物件屬性(Object Property)和資料屬性(Data Property)。在圖中,羅納爾多和里約熱內盧的關係(本例中是物件屬性)與羅納爾多和全名的關係(本例中是資料屬性)用RDF就可以表示為:
這裡kg:Person,kg:Place,kg:hasBirthPlace,kg:fullName是我們在Ontology中定義好的類和關係。
連結資料和知識圖譜最大的區別在於:
1. 正如上面Open Linked Data Project所展示的,每一個圓圈代表一個獨立存在和維護的知識圖譜;連結資料更強調不同RDF資料集(知識圖譜)的相互連結。
2. 知識圖譜不一定要連結到外部的知識圖譜(和企業內部資料通常也不會公開一個道理),更強調有一個本體層來定義實體的型別和實體之間的關係。另外,知識圖譜資料質量要求比較高且容易訪問,能夠提供面向終端使用者的資訊服務(查詢、問答等等)。