http://www.jdon.com/42212 罗素摹状词理论与面向对象OO 2011-08-05 09:34 <span class="box12" "="" style="float: left; background-image: url(http://www.jdon.com/images/rbs.png); width: 18px; height: 18px; background-position: -23px 0px; background-repeat: no-repeat no-repeat;"> 7 顶 oo面向对象 四色彩色UML DDD领域驱动设计 形式逻辑 我个人认为:OO本质是逻辑分析。通过逻辑分析需求,寻求从需求到软件运行内部环节的内在一致性。逻辑分析是OO的元语言,正如它也是数学元元语言一样。逻辑分析是认识世界的基本手段,是软件建模分析的最基本的保障。 OO思维是一种逻辑分析思维,通过逻辑分析发现表达对象之间的关系,进行细粒度切分。 罗素是逻辑分析哲学的奠基人,其指称理论(reference)认为:名称的所指对象是与名称一一对应的客观事物(老子曰:名可名,非常名,不禁联想老子思想也是一种逻辑方法思想?)。就像我们OO软件世界中,对象有对象名称,这个名称在计算机内存中有一个与之一一对应内存地址段;当然,我们建模分析使用UML类图取类名时,客观世界必然有一个与之对应的事物。 罗素认为,20世纪产生的三大语义学难题的根源在于我们没有对专名和摹状词做出明确的区分。罗素提出对摹状词和专名进行划分:对于一个语句中的限定摹状词,当它是用来述说有关凡是如此这般(适合于该摹状词)的人或物的某件事情时,这是归属性使用;当它是说话者为了使听者能够辨认出他所谈论的是谁或是什么东西时,这是指称性作用,是专名。 联想到OO中的四色原型和DDD领域驱动设计,不禁联想:四色中description描述是不是一种摹状词(至少英文是同一个单词)?PPT是不是专名呢?。是否可以认为DDD中实体是一种专名,而值对象是一种摹状词呢? 如果是,那么罗素的摹状词理论是否可以为我们分析需求提供了一种有力确定的手段呢?下面我们以实例来说明其作用。 (1)“玫瑰是红的” (2)“北京是中国的首都” (3)“金山是不存在的” 这三种语句都是谓词表达法,“是”后面的语句都是可能在表达一种特征,比如第一句,我们可以认为红色是玫瑰对象的属性,如果从特征角度来看,红色是玫瑰的特征: 玫瑰{ 红的; } 那么,继续按照特征属性这个思路走下去:中国的首都是北京的特征: 北京{ 中国的首都; } 实际这是错的,“中国的首都”并不是“北京”的特性,而是它的同位语,换言之,我们是用这个句子表达这两个名词之间的等同关系,更准确地说,是这两个名称所指的对象之间的等同关系。 同样,在(3)中,“是不存在的”并不是“金山”的特性,它表明的是一种存在关系。 产生错误的原因是我们没有对摹状词(特征描述)进行严格区分,罗素在论文《摹状词》的第十五段落,他给的定义是:“(1)名字(专名)。一个名字是一个简单的符号,直接指一个个体,这个个体就是它的意义,并且凭它自身而有意义,与所有其它的字的意义无关;(2)摹状词。一个摹状词由几个字组成,这些字的意义已经确定,摹状词所有的意义 都是由这些意义而来。” 所以,“北京是中国的首都”中的“北京”是一个专名,而“中国的首都”是一种摹状词。如果用OO行话,“北京”指称refer的是一个具体存在的实例对象;而“中国的首都”也是另外一个description对象。 换言之,在OO中,我们不应该将“中国的首都”设计成”北京“的内部属性,而是应该是.....。 以上是我个人对摹状词的理解,可能是完全错误的,只供大家在实践中参考。 有些道理,但不是我表达的主要意思,我的意思如果写成: 北京{ 中国首都; } 是错误的,因为不管怎么写,这个结构都表明“中国首都”从属于“北京”,而两者是平等同一的,没有从属关系。 “是中国的首都”是摹状词,摹状词是一种描述,这种描述是“北京”的外部描述。 这里要引入罗素的直接知识和间接知识,直接知识(亲知知识)是对事物的认识,摹状词只能用于间接知识,通过摹状词描述事实,事实是对事物的性质关系的描述,事实需要判断,而事物只要命名(专名),不需要描述(摹状词)。 所以,“北京”是事物,不是事实,“是中国的首都”是事实。事实不是事物的内部属性或特征。所以,“是中国的首都”这个事实不能作为“北京”这个事物的内部,不是其天然本体直接属性,换句话说:是其社会属性,在唐朝,北京就不是中国首都。 红色是玫瑰的特征 ... 人脑的思维具有一定跳跃性,我们说某句话,陈述某个事实,可能忽略了显而易见的推理过程。 banq对特征与摹状词有些纠结的原因可能就在于此。之前,我也忽略了其细微的差别,这也是我对之前的争论感到困惑不解的原因,一个打交道这么久词汇,居然没能给别人解释清楚。 现在大抵想通了,在此补充解释一下。希望到可以让大家先抛开特征这个词,在谓词理论中一路走到黑,有必要时再跳出来看看特征的意义。 先亮观点:特征是摹状词(谓词)的一部分。 “红色是玫瑰的特征”,完整的描述是“红色是玫瑰的颜色特征”。 莱布尼茨区分了理性真理(或必然真理)和事实真理(或偶然真理)。 一个真理是必然的,若他的否定蕴含着矛盾;如果一个真理不是必然的,就称它是偶然的。 玫瑰是红色的,是一个事实真理。(玫瑰也有可能是黄色的、黑色的) 红色是一种颜色,是一个理性真理。(红色不可能不是一种颜色) “是中国首都”不是(北京的)一个特征,是一个谓词,“中国首都”,是(政治地位的)的一个特征,不是一个谓词。 “是红色的”也不是(玫瑰的)一个特征,是一个谓词;“红色”,是(颜色的)一个特征,不是一个谓词。 特征是不能直接描述事物的,只能间接描述事物。也就是说特征不能直接“靠近”事物,必须包含在谓词中,才能靠近并描述事物。 当我们说事物具有某种特征时,实际上是说事物的某一方面具有某种特征。 某一方面可能显而易见,在头脑中一闪而过,甚至给忽略了。而后,我们却在信息缺失的描述下,进行无跳跃性的推理过程,自然是不太流畅了。