上次介紹了知識圖譜的一些基本概念,這次我們來談談知識圖譜的構建方法。 我們知道知識圖譜的數據是通過三元組(主語,謂詞,賓語)的方式進行組織,每一個三元組代表一條知識,這些三元組並不是雜亂無章的堆砌在知識圖譜中,而是按照一定的邏輯組織起來的。
1 知識圖譜的數據結構
從知識圖譜數據組織的架構來看,可以把知識圖譜的數據分為兩個層次,一個是數據模型層,數據模型是按照本體論的思想,勾畫出來的數據組織模式,數據模型可以展示數據的組織方式,數據之間的相互關系,創建動植物的數據模型,可以按照動植物的通用分類標准,使用七個主要級別:界、門、綱、目、科、屬、種 。可以將動植物的數據按照這個模型進行組織。 數據模型可以看作是元數據,依據數據模型,數據才能得到有效的組織。數據模型除了確定對象之間的分類,關系,還要明確對象的屬性,針對不同的知識圖譜,需要收集的數據的內容也不相同,內容范圍由對象的屬性確定。數據模型的分類,關系反映了數據之間的關系特征,數據模型的屬性反映了數據的內在特征。 另一個就是具體數據層,具體數據是一條條的知識,它是依據數據模型組織起來的。我們可以把數據模型看作是骨架,把具體數據看作是肌肉,兩部分共同組成了一個健壯的整體,就是我們的知識圖譜。不同類型的知識圖譜,組織數據的方式也有所不同,涉及到具體數據,具體數據的內容也有差別。比如對於一個人物來說,如果是歷史知識圖譜,可能人物數據的內容主要側重於人物的生平,主要事跡,人物關系等等,如果是文學知識圖譜,人物數據的內容則會主要側重人物的主要作品,師承關系,作品流派等等。 將知識圖譜的數據分成了兩個層次,在構建知識圖譜的時候,是先確定數據模型再收集具體數據,還是先收集具體數據再確定數據模型,這就形成了兩種構建知識圖譜的方式。
2 自頂向下的構建方式
自頂向下的構建方式,是指先確定知識圖譜的數據模型,再根據模型去填充具體數據,最終形成知識圖譜。數據模型的設計,是知識圖譜的頂層設計,根據知識圖譜的特點確定數據模型,就相當於確定了知識圖譜收集數據的范圍,以及數據的組織方式。這種構建方式,一般適用於行業知識圖譜的構建,對於一個行業來說,數據內容,數據組織方式相對來說比較容易確定。比如對於法律領域的知識圖譜,可能會以法律分類,法律條文,法律案例等等的方式組織。再比如建立一個三國時期人物的知識圖譜,可能會以某個歷史時期,魏蜀吳三個國家將人物進行分類,統計人物的師承,上下屬,朋友,敵對等等關系,依據這些關系設計數據模型,然后再收集具體人物數據,形成人物的知識圖譜。總起來說,自頂向下的構建方式,適用於那些知識內容比較明確,關系比較清晰的領域構建知識圖譜。
3 自下向上的構建方式
自下向上的構建方式,是指先按照三元組的方式收集具體數據,然后根據數據內容來提煉數據模型。 采用這種方式構建知識圖譜,是因為在開始構建知識圖譜的時候,還不清楚收集數據的范圍,也不清楚數據怎么使用,就是先把所有的數據收集起來,形成一個龐大的數據集,然后再根據數據內容,總結數據的特點,將數據進行整理、分析、歸納、總結,形成一個框架,也就是數據模型。一般公共領域的知識圖譜采用這種方式,因為公共領域的知識圖譜,涉及到海量數據,並且包括方方面面的知識,做出來的效果是大而全,這在構建初期,很難想清楚數據的整體架構,只能是根據數據的內容總結提煉特征,形成數據框架模型。比如google,百度的知識圖譜,屬於典型的公共領域知識圖譜,現實中,使用他們的搜索工具進行內容搜索時,用戶可能輸入的內容千差萬別,各個領域的問題都可能問到,也就使得他們的后台知識圖譜內容也要覆蓋所有知識,在構建他們這種公共領域的知識圖譜過程中,隨着數據的不斷積累,才會對數據知識進行分類,慢慢呈現出知識架構。
4 結語
當然,兩種構建方式也不是一成不變的,在構建初期兩種方式區別很明顯,在知識圖譜構建后期,兩種方式可能會結合使用。對於自頂向下的構建方式,隨着數據量的不斷積累,可能會發現原來的數據模型並不完善,有很多數據可能沒有包含在數據模型的體系中,這時候就需要修訂數據模型,根據數據的特點,完善數據模型。同樣,在自下向上的構建方式中,慢慢形成的數據模型,對於后期的數據收集,也有一定的指導作用,按照形成的數據模型,可以快速准確地收集相關數據。總之,數據和數據模型之間,是一個相輔相成的關系,二者在構建知識圖譜的過程中缺一不可。