领域本体与DDD的UL语言

本体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强调上下文为王!
 
补充:
茶与奶一起喝会降低钙吸收?那奶茶岂不是没有存在道理?需要把它看成一个复杂性系统,包括你人本身主体,外面的客观世界客体,本质上的本体是一个复杂性系统。不用有上帝信仰,只需有复杂性系统认知。