領域本體與DDD的UL語言

banq發表於2021-11-02
本體Ontology一詞在哲學中代表“存在Being”的概念,類似我們日常語言中的“主語”,當你將某個詞語作為主語時,比如A如何,A怎麼,,,說這話的前提是你已經預設A的存在,但是實際上A是否存在還需要被論證,因此,如果你突然說出這段話,表示你在帶節奏。
根據維基百科定義:領域本體指的是那些屬於整個世界中的概念(英文:realm of the world),  關鍵取決於Realm和World世界看你怎麼理解,是真實客觀存在的世界,還是存在共識的主觀世界。
維基百科中領域本體舉例是生物學或政治,每個領域本體通常對術語的領域特定定義進行建模。例如,卡片這個詞有很多不同的含義。一個關於撲克領域的本體將其建模為“撲克牌”這個詞的含義,而一個關於計算機硬體領域的本體將建模其為“打孔卡”和“影片卡”的含義。
 
領域本體(Domain ontology)是不是 DDD 中所說的無所不在的通用語言(Ubiquitous Language)?
根據維基百科定義:由於領域本體是由不同的人編寫的,它們以非常具體和獨特的方式表示概念,並且在同一個專案中通常不相容。隨著依賴領域本體的系統的擴充套件,他們通常需要透過手動調整每個實體或使用軟體合併和手動調整的組合來合併領域本體。這對本體設計者提出了挑戰。由於語言不同,本體的預期用途不同,以及對領域的不同看法(基於文化背景、教育、意識形態等),同一領域中的不同本體就會出現。
 
有人將本體認為是知識庫,那還不如認為是知識呢,這些都屬於概念範疇,德國學者Studer在1998年給出了本體定義:“本體是共享概念模型的形式化規範說明”。這個定義說明了兩種:首先是一種概念,其次是形式化規範。形式化規範是否意味著形式邏輯?形式規範有嚴謹程度不同,數學是最嚴謹,其次是計算機語言,再次是英語,當然UML等屬於半形式化的語言。
 
領域本體可以認為類似DDD中的無所不在的通用語言UL:UL肯定是代表一種概念模型,而且UL名詞中有“通用語言”的定義,而通用語言是形式規範的一種。
既然將兩者劃上等號了,關鍵是如何用形式化規範表達概念模型了,目前有兩套方法:還原分析法和湧現法,還原分析法代表通用思路,比如前面談到本體=概念模型+形式化規範,這就是分解還原法,而領域本體本身也是一個複雜性系統,需要從概念關係和湧現等現象去捕捉,如果遵循傳統還原結構法,實現樹形結構的上、中、下層次分解,比如A中有A1和A2,A1中有A11和A12和A13,這些還原法只能會導致刻舟求劍的結果。
如何從整體性的系統高度去形式化規範概念模型呢?中國傳統神秘主義是:道可道非常道,名可名非常名,禪講究頓悟,直指人心,這些都是整體性戰略方法,其他還有Cynefin和Wardley Map等方法,當然DDD強調上下文為王!
 
補充:
茶與奶一起喝會降低鈣吸收?那奶茶豈不是沒有存在道理?需要把它看成一個複雜性系統,包括你人本身主體,外面的客觀世界客體,本質上的本體是一個複雜性系統。不用有上帝信仰,只需有複雜性系統認知。

 

相關文章