PCOM模块方案设计
总体构成
重新定位
PCOM模块的设计目标是软件总成Software Assembly。
实现基于特定域Domain的术语架构,提供已知术语的通用代理General Agent 功能。
基础是一套表达确定意义(Determinate meaning)的通用术语语言 Unified Term Language。它为任何领域Domain提供了域间交互的术语架构规范,并以此为基础提供了一个可以用于任何不同领域之间进行交互的通用代理的实现。
PCOM模块核心功能是:
为应用匹配可用的对象模型资源,为提供从应用立足点(起点)到这些应用的应用目标对象的动态设施--动态封装、 动态站点构建、动态线路运营,来演示可行的应用方案,在用户确定方案后配套成品原型或完成应用系统,并恢复现场。
前者的功能,就像一个演出的表演现场的舞台搭建和设施配套,在演出完毕后,将所有设备/设施归还所有者。而后者的功能,就相当于一个应用设计器和代码生成器。
基础Foundation
语义三角形--语义的确定表示
语义三角形是对任何一个知识体系中“专业术语Term”的完整语义的确定性表示。也就是说,人们使用的一个“单词Word”是否能在交流中具有确定的意义,充分必要条件是,这个单词有一个与之完全对应的语义三角形存在(“单词”对应顶点“个体”)。
分析: 三个顶点(个体、概念、符号),对应了语义范畴内的独立的3个子域,三个边表示了三个顶点之间的关系。这个关系是确定的。但问题是,每个顶点上,拥有一套自己的术语体系(“一个语义子域”)。如果有一个通用代理,具有每个语义子域的一对一的解释能力,就为实现每条边所表示的确定关系的实例化提供了条件,那么,表达中使用的“单词"("个体")就能拥有一个确定的语义三角形,也就是说,这个“单词”是具有完整语义的确定性表示,可以作为知识体系中的一个“术语”。
函数三要素--应用的确定表达
每个“Term”唯一标识一个有着特定的“确定”意义的元素,这种“确定”意义是通过函数三要素(定义域、对应法则和值域)来描述的。
具体参见“表5、PCOM点集”。
通用代理General Agent
“通用代理”的实现分四部分:
- 抽取广泛意义上的“术语”的词汇表结构,这是基础;
- 给出词汇表结构中各部分的完整模型(见下节的各种术语词汇表);
- 为每种模型提供对应的提供者基类的实例化手段和方法(其中“基类”参见下节的“关系型数据表”,手段和方法分别对应下节的两种TaggedValue“属性标记表/成品标记表”)。
- 通过“设施Facility”的实例化服务提供各种基类的基本实现手段和方法(参见下节的“术语设施及术语代理”)。
通用术语语言Unified Term Language
将语义三角形、函数三要素、通用代理作为统一规划目标,给出一套表达确定意义(Determinate meaning)的通用术语语言 Unified Term Language。基础内容是前面的“表9、PCOM原型”和“表4、PCOM概念图”。
术语集
为了提供一个收录术语的有效手段,必须使用比术语的特定意义更广泛、更通用的一个方式。在我的另一篇博文“闲话‘名词解释’”中,已经比较完整的说明了这个问题,并给出了用于收录术语的词汇表的结构。这个结构中同时也是了概念上的最顶级的分支法,那就是表示了性质(隐式意义)的具体/抽象的两个立面(目录Catalog/范畴Category),以及表示一个概念显式意义的两个层面-内涵/外延-的分类Classification/条目Entry。
设计方案中进一步细化如下:
Category 是一个Case运算,给定一个确定的Grouping法则(对应一个可运用的枚举计算)。可枚举的Case作为一个组,其中可以包含一个unkown,且有一个Defaule的Case。每个Case是Category的一个成员Member。 在一个特定域的一个Catalog中充当着确定的已知职责(行为能力),具体表达了这个特定领域在给定的Catalog中的一种可以区别的作用范围Range。一个Category及其所有Member作为一个整体(一个组合结构)同时表达了这个特定领域的某个Catalog中的一个确定的作用范围,即,对它所在的Catalog中, 这个组合结构和这个Category 同体。从面向面对编程的角度上, 这就是对象的封装性的Box特征。
Classification是一个Scope运算,描述了一个确定的鉴别器(对应一个可运用的布尔计算),通过明确的结构范围划分, 确定了这个特定域中的任一事物在它所在的目录Catalog中是确定的某个分类而不是其它任何一个。一个Classification构成这个分类的显式的部分Part构成,这些部分整体构成该分类。分类可以派生子类,子类还能派生子类,每个子类具有父类的所有结构,所以,分类给出一个层次结构,对它所在的Catalog来说,这个层次结构中的任何一个节点与它的上面的每一级上的任何一个节点同胞(和它的祖先有同样的组成部分Part) 。从面向面对编程的角度上, 这就是对象的继承性特征,即 “血统lineage”。
对外部来说,表示了一个事物的结构的Classification的任何Part和表示了一个事物的行为能力的Category 的任何一个Member都表达了这个事物在它所在的Catalog中的特征Feature,是这个领域中人们为了某种特定的目的(后面会说到,一个确定的目的,就是一个Catalog)去认识事物、谈论事物的基础。即:在这个领域中,一个具体事物和表示它结构特性的一个Category实例 和表达它行为特征的一个Classification实例,构成了一个这个领域中在某种特定目的下的完整的“种属”上的确定意义。
这里,“某种特定目的”则是一个特定领域可以具有确定意义的基础。即:一个领域的划分是按照某种更大范围下的不同的确定意义来划分的,每个领域都具有自己独特的确定意义,在于一个确定的领域提供了一组特定目的的活动区域(Activity Area)。这里的每个活动区域表示了一个不同的目的的活动交互场所。在术语体系中,它就是“分类目录Catalog”的意义和表示。即:一个Catalog 表示了一个特定目的的确定活动区域(Activity Area),它是一个特定领域的Management Grouping的公共设施,比如“omg”就位于这样的层次上。对应用系统来说,活动区域(Activity Area)是系统级别的架构单元,一个Catalog实例表示了一个Frame对象,是在架构设计阶段中确定的。在更大的范围上-站在通盘看待“软件”的角度上:“Frame”是“系统System”的成员Member,同时是“架构Architecture”的组成部分Part。
PCOM将整个软件作为一个领域来考虑,将表示特定目的的确定的活动单元的一个Frame作为“条目Entry”,为Entry(一个已知的特定目的的一个确定活动单元)给出它以“标架体系”为“分类目录Catalog”(软件公共空间)、以System为“范畴Category”(确定的软件能力空间)、以“架构Architecture”为“分类Classification”(一个确定类型的COM对象)的一个顶级(Top)软件术语字典索引表-“PCOM字典索引表PCOMTDI”,同时使用“站点地图SiteMap”描绘PCOMTDI中每个“条目Entry” 。PCOM模块基于“站点地图”为位于其中的各种COM对象之间的移动,提供静态或动态的“路线规划”和“设施配套”。
Entry是一个值Value运算(值表达式或一个确定值)。它描述了一个Catalog中一个已知的、构成确定意义的一种事物个体在这些确定意义,包括特征的表达(或呈现)以及目的/意图的产生和实现。
PCOM模块设计方案中包括两套术语架构:
- 架构基础 Architecture Foundation: “基础术语字典索引表FTDI”,它是PCOM模块作为SMG(软件管理组织Software Management Group)的手段和方法,同时也是通用代理的基础。FTDI由5个术语字典构成:1个文法无关的“单词术语字典”以及对应0~III型文法的4个“X型文法术语字典”。
- 对象设施Object Facility:“对象设施术语字典索引表OFTDI”,由COM对象公用的“PCOM模块基础设施术语字典”和“COM对象设施术语字典”组成:
- 前者给出PCOM模块为各种COM对象提供的相应的公共设施字典--“PCOM术语字典索引表PCOMTDI”,是以Top顶点上的“COM对象基础设施字典索引表”开始的,表中的一个“Entry条目” (双向)唯一对应了“站点地图”中的一个“站点Site”,每个站点(双向)唯一地提供一个COM对象实体的工作空间。
- 后者给出各种COM对象设施字典--“COM术语字典索引表COMTDI”,顶点上是应用系统实现特定目的两种“实元对象”--一个确定的“更新提供者Widget”或“服务提供者Servant”对象(参见前面的“表8”的最右列) ,它们是SiteMap中的一个确定“站点实体”上的“实元对象实例”(为最终用户达成确定目的/意图),它通过将自己置于其中来得以提供面向全网的服务和代理。COMTDI中的每一个“条目Entry”都是PCOM站点实例中的填充块(双向一一对应),但一个应用系统的完备性/PCOM模块的动态性都是通过对应于为实现最终用户确定目的/表达最终用户确定意图的 这两种“实对象”来提供/被激发和推动的。