圖構建:領域本體設計原則與動態本體
本體設計是圖應用中的重中之重,而圖構建的核心也是本體設計。本篇文章中作者詳細介紹了領域本體的設計原則和如何設計本體,感興趣的小伙伴一定不能錯過,一起來看看吧。
前文《思考總結:領域知識圖譜平臺構建與業務應用》中提到:“本體設計是圖應用中的重中之重,一切的圖展示、圖計算、圖分析、圖挖掘、圖模式匹配…的基礎在圖構建,而圖構建的核心是本體設計。”,接著上文,本文就重點聊一下本體設計。
在聊本體之前,有必要先將對于本體的叫法對齊。在知識圖譜層面(偏學術),一般將本體稱為本體;在圖數據庫層面,一般將本體稱為Schema;在業務領域層面,一般將本體稱為場景圖模型;本文將稱之為本體。
一、領域本體是什么
領域本體是指領域概念體系(包括領域概念定義和概念間關系)的形式化規范定義。近幾年,隨著領域知識圖譜項目和產品的發展,領域本體開發的工作逐步從AI專家轉移到領域業務專家手中。
依據本體的層次和領域依賴度,Guarino等人將其分為四類:頂層本體、領域本體、任務本體和應用本體。
- 頂層本體:研究通用的概念以及概念之間的關系,如空間、時間、事件、行為等,與具體的應用無關,完全獨立于限定的領域,因此可以在較大范圍內進行共享。
- 領域本體:研究的是特定領域內概念及概念之間的關系。
- 任務本體:定義一些通用任務或者相關的推理活動,用來表達具體任務內的概念及概念之間關系。
- 應用本體:用來描述一些特定的應用,既可以引用領域本體中特定的概念,又可以引用任務本體中出現的概念。
本體是一個描述性的形式化概念體系,是知識圖譜的模型層,本體中包括點類型(也叫實體分類或概念,本文統稱為點類型),點類型屬性(也可叫點類型特征,本文統稱點類型屬性)以及邊類型,邊類型連接點類型與點類型,邊類型也包含邊類型屬性。
以本體作為模型層,將數據與本體建立一一映射關系,然后將映射結果導入到圖數據庫中,便可形成知識圖譜。因此,可以看出,本體其實是知識圖譜的構建范式,是數據的組織模板。
二、設計本體的意義
通過以上內容可知,本體是構建圖譜項目的核心,是圖譜組織數據的范式和模板,除此之外,本體的意義可總結為如下5種:
- 達成業務場景共識,當幾個不同的數據源都存在某個業務場景所需的信息或數據時,如果定義好底層本體,腳本就可以從這些數據源中提取并以規范的形式融合數據,進而使用融合后的數據為業務分析決策提供支持,將散落的數據形成知識以提供應用價值,所謂:“無規矩不成方圓”。
- 復用業務結構知識:許多不同領域的模型需要用到時間概念,包括時間區間、時間點、時間的相關度量等。如果有業務人員詳細研究并定義了一個業務本體,那么就可以被其他人直接復用。如果需要構建一個大規模本體,則既可以綜合若干相關業務的現有本體,也可以從通用本體出發有針對性地擴展領域本體。
- 業務知識的顯性表示:為便于專家有效應對領域知識的變化。領域知識不但包括事實,也包括規則,例如,“鸚鵡是鳥”為事實,“鳥會飛“為規則(知識),那么業務知識的應用就可以推導出”鸚鵡會飛“。如果只是簡單地把業務知識用編程的方式表示出來,不但全程依賴開發者支持維護,而且這樣的表示也不利于業務專家理解與更新。而業務知識的顯性化表示也便于新用戶透徹理解業務知識的完整意義。
- 區別業務知識與操作知識:數據本身和數據處理流程可以分離,領域應用中不但需要領域知識,同時可以描述如何配置與處理這些領域知識。
- 分析業務場景知識:可以利用描述性形式語言。通過對領域知識的形式化表示,可以有效支持本體的復用和擴展。
三、如何設計領域本體
設計本體的過程一般包括如下步驟:
- 定義點類型(實體分類)
- 定義點類型的分類關系(即子類 – 父類的分類樹),本體中的點類型,可以有最高抽象點類型(如:人類、自然人),也可以有子點類型(如:男人、女人、歐洲人、亞洲人),甚至可以更細分(如:中國人、美國人、北京人)。
- 定義邊類型、邊類型的有向型(是否有向,有向為出向還是入向)
- 定義點、邊類型屬性以及屬性值取值范圍
- 設定點、邊類型屬性取值的缺省值
四、領域本體設計原則
本體的應用期望直接影響本體的結構和本體的詳細程度,本體的直觀程度、可擴展性、可維護性都是本體設計時需要考慮的因素。同時,也要考慮本體模型與實際世界的邏輯聯系。
筆者在過往的本體設計中總結了幾點基本原則,這些原則可以幫助在許多情況下進行設計決策:
- 領域場景本體設計沒有唯一的標準和正確的答案,只有更好沒有最好,最好的設計方案取決于后續的應用期望和拓展期望。
- 本體設計方案是一個不斷迭代的過程,在應用和拓展的過程中,總會發現更優的方案和優化點。
- 本體中的點類型、邊類型以及點、邊類型的屬性設計,應該接近目標應用場景中的對象和關系。
- 業務滿足度與性能兼容度皆需考慮,在業務與性能之間取得平衡,并且考慮可視化分析與圖計算、圖挖掘。Neo4j希望用戶能夠尊重業務領域實體的關系進行設計,Nebula Graph的共識是面向性能設計。
設計好本體的初始版本后,可以通過實際應用、解決問題、與領域業務專家討論對本體進行評估和優化。一般情況下,初始版本設計的本體,都需要不斷調優修改。迭代本體的動作需要在業務應用的整個生命周期中持續進行。
五、本體版本管理
本體初次設計好后,根據實際業務場景應用發展的需要,總是不斷地發展和變化,因此需要對本體進行有效管理。本體管理環節包括:
- 本體演化:本體的發展過程中的變化規律及本體的維護管理。
- 本體融合:從多個本體中集成一個新的本體,從子業務場景融合成為新業務場景。
- 本體驗證:驗證本體的正確性與合理性,是否滿足業務需求。
- 本體版本化:維護管理本體的演化過程中所生成的不同版本。
六、Palantir 動態本體
由于本體總是需要不斷的演進和變化,業界領先的領域知識圖譜公司Palantir提出了動態本體論。
Palantir的設計哲學與核心是動態本體。Palantir動態本體的靈活定義是基于對象的數據模型,動態本體是將眾多來源的數據從原始存儲格式轉換、集成到數據對象和相關屬性中的方式,這些屬性代表了世界上的人物、地點、事件以及它們之間的聯系。
不同的組織以不同的方式構思世界,并且這些數據模型隨著時間的推移而變化,動態本體在每個案例(場景)的基礎上進行定義,可以隨著新的數據源被添加、更改、刪除而更新。靈活、統一的數據模型大大簡化了Palantir數據集成的過程,能夠在幾天或幾天內完成,而不是大多數據集成項目需要幾月甚至幾年。
在Palantir中,一個本體主要包括三個部分:
- 對象:對象指的是任何被建模的事物,對象包含文檔、實體和事件。文檔是基于文本的,實體是概念和分類的實例,比如人、地點;事件是以時間出現的事物。
- 屬性:屬性指是對象的特征,如:人的性別、人的年齡、戶籍地等。
- 關系:關系指的是概念之間的關聯,如:人物之間的雇傭關系,人與人之間的朋友關系、夫妻關系。
在Palantir中,可以基于對象、屬性和關系設計各種靈活的本體和數據模型。而這里的對象又被分為文檔、實體和事件。
對于情報分析來說,及其重要的就是對文檔的檢索以及分析,對人物、組織等實體的畫像和關聯,對事件的建模和分析。
動態本體允許對不再使用的對象、屬性和關系進行移除,同時也可以添加新的對象、屬性和關系,本體時刻處于動態更新。還支持對已有對象、屬性和關系的功能的修改,比如可以添加和修改標簽、圖標、解析器等。
動態本體對于異構數據的集成很有幫助?,F有關系數據庫的數據管理系統一般采用表和關系的固定模式來組織數據,當模式變化時,需要對表進行修改,導致很多重復勞動。
另外,基于一個固定的模式不利于對數據做集成,特別是對于數據模式經常要更新的場景。
《動態本體 palantir》文章中介紹了Palanti動態本體的方案流程圖,可作為參考:
目前大多數圖數據庫也是支持入圖后的本體的二次修改,不過都有較大的限制,一般只支持新增和刪除點類型、邊類型、點邊類型屬性,但是不支持點、邊類型的修改和屬性修改。
動態本體的提出就是為了提供一個靈活可變的數據模型,方便數據管理和多源數據的集成。在一個應用中,可以構建一個數據庫的動態本體,而該動態本體可以用來集成各種數據。具體思路如下:
- 對象類型編輯器用來設計數據類型和數據類型的屬性特征。
- 屬性類型編輯器用來設計屬性類型并且定義該屬性類型的特征。
- 每個屬性類型都有一個解析器,該解析器將一些輸入的數據跟動態本體做一個映射,并且把輸入數據添加到數據庫中。
Palantir動態本體通過解析器可以把各種格式的數據都集成到一個數據庫中,從而很好地實現了異構數據的集成。
同時,為了達到這個目的,需要將動態本體的對象類型和屬性類型定義完備,同時需要將解析器的正則表達式寫好,否則很難使用。這也是Palantir的動態本體的缺陷所在。
七、總結
本體的設計原則和概念在此做了一些介紹,可以說本體是千變萬化的,相同的業務領域基于不同的應用方式以及設計目的,形態和結果多種多樣,總的來說以業務需求為導向去設計,并且結合應用場景和應用性能。
當前,本體開發技術存在很多大的局限性,即使Palantir設計出了動態本體以彌補數據和需求的動態演變過程中的本體變化問題,但是解析器的正則表達式仍要窮舉,無法定義完備,希望在技術的發展過程中,后續會有更好的本體開發技術出現。
當前依然處于學習和應用嘗試過程中,認知有局限性,不當之處,歡迎私信指出和交流。
參考文獻:
神秘Palantir-平臺介紹:https://mp.weixin.qq.com/s/JgLkd4_J5s93FDuS31F-Cg
動態本體 palantir: https://blog.csdn.net/weixin_44319196/article/details/111598680
動態本體簡介: https://zhuanlan.zhihu.com/p/30799669
本體(Ontology)概述: https://blog.csdn.net/baijinswpu/article/details/81113314
本文由 @阿拉燈神丁 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash,基于CC0協議。
- 目前還沒評論,等你發揮!