罗素摹状词理论与面向对象OO

11-08-05 banq
                   

我个人认为:OO本质是逻辑分析。通过逻辑分析需求,寻求从需求到软件运行内部环节的内在一致性。逻辑分析是OO的元语言,正如它也是数学元元语言一样。逻辑分析是认识世界的基本手段,是软件建模分析的最基本的保障。

OO思维是一种逻辑分析思维,通过逻辑分析发现表达对象之间的关系,进行细粒度切分。

罗素是逻辑分析哲学的奠基人,其指称理论(reference)认为:名称的所指对象是与名称一一对应的客观事物(老子曰:名可名,非常名,不禁联想老子思想也是一种逻辑方法思想?)。就像我们OO软件世界中,对象有对象名称,这个名称在计算机内存中有一个与之一一对应内存地址段;当然,我们建模分析使用UML类图取类名时,客观世界必然有一个与之对应的事物。

罗素认为,20世纪产生的三大语义学难题的根源在于我们没有对专名和摹状词做出明确的区分。罗素提出对摹状词和专名进行划分:对于一个语句中的限定摹状词,当它是用来述说有关凡是如此这般(适合于该摹状词)的人或物的某件事情时,这是归属性使用;当它是说话者为了使听者能够辨认出他所谈论的是谁或是什么东西时,这是指称性作用,是专名。

联想到OO中的四色原型和DDD领域驱动设计,不禁联想:四色中description描述是不是一种摹状词(至少英文是同一个单词)?PPT是不是专名呢?。是否可以认为DDD中实体是一种专名,而值对象是一种摹状词呢?

如果是,那么罗素的摹状词理论是否可以为我们分析需求提供了一种有力确定的手段呢?下面我们以实例来说明其作用。

(1)“玫瑰是红的”

(2)“北京是中国的首都”

(3)“金山是不存在的”

这三种语句都是谓词表达法,“是”后面的语句都是可能在表达一种特征,比如第一句,我们可以认为红色是玫瑰对象的属性,如果从特征角度来看,红色是玫瑰的特征:

玫瑰{

红的;

}

那么,继续按照特征属性这个思路走下去:中国的首都是北京的特征:

北京{

中国的首都;

}

实际这是错的,“中国的首都”并不是“北京”的特性,而是它的同位语,换言之,我们是用这个句子表达这两个名词之间的等同关系,更准确地说,是这两个名称所指的对象之间的等同关系。

同样,在(3)中,“是不存在的”并不是“金山”的特性,它表明的是一种存在关系。

产生错误的原因是我们没有对摹状词(特征描述)进行严格区分,罗素在论文《摹状词》的第十五段落,他给的定义是:“(1)名字(专名)。一个名字是一个简单的符号,直接指一个个体,这个个体就是它的意义,并且凭它自身而有意义,与所有其它的字的意义无关;(2)摹状词。一个摹状词由几个字组成,这些字的意义已经确定,摹状词所有的意义 都是由这些意义而来。”

所以,“北京是中国的首都”中的“北京”是一个专名,而“中国的首都”是一种摹状词。如果用OO行话,“北京”指称refer的是一个具体存在的实例对象;而“中国的首都”也是另外一个description对象。

换言之,在OO中,我们不应该将“中国的首都”设计成”北京“的内部属性,而是应该是.....。

以上是我个人对摹状词的理解,可能是完全错误的,只供大家在实践中参考。

参考:

当代英美语言哲学中的指称问题

简析摹状词

[该贴被banq于2011-08-05 09:36修改过]

[该贴被banq于2011-08-05 09:37修改过]

                   

7
SpeedVan
2011-08-05 10:02

2011年08月05日 09:34 "@banq"的内容
这三种语句都是谓词表达法,“是”后面的语句都是可能在表达一种特征,比如第一句,我们可以认为红色是玫瑰对象的属性,如果从特征角度来看,红色是玫瑰的特征:

玫瑰{

红的;

}

那么,继续按照特征属性这个思路走下去:中国的首都是北京的 ...

看似出现问题,其实可以考虑以准确地“特征”去理解,则可以解析了。

首先特征表现为一个真假命题。因为“是否红的”不能成为特征,特征本来就是确定的。

玫瑰是红的。

在这句话中,已经不是指称问题了——因为红的不是摹状词。

根据词性,名词(玫瑰)怎会等于形容词(红的)呢?所以这里的“是”不是“=”的意思,在banq提到的论文中,叫这是“归属”,“是红的”为归属性特征(就是我提到的特征,注意,“红的”不是特征)。

北京是中国的首都。

在这句话中,相当明显属指称问题了。当中的“是”明显是“=”的意思。而在“特征”的理解中,对应的对象是:

北京{

is中国的首都 = true;//真命题或者假命题,因为这是一个相对恒定的事实,所以可以考虑final。

}

北京是不是中国首都?北京是中国首都。那么“是中国首都”就是“北京”区别于其他的“特征”了。

banq
2011-08-05 11:19

2011年08月05日 10:02 "@SpeedVan"的内容
当中的“是”明显是“=”的意思。而在“特征”的理解中 ...

有些道理,但不是我表达的主要意思,我的意思如果写成:

北京{

中国首都;

}

是错误的,因为不管怎么写,这个结构都表明“中国首都”从属于“北京”,而两者是平等同一的,没有从属关系。

“是中国的首都”是摹状词,摹状词是一种描述,这种描述是“北京”的外部描述。

这里要引入罗素的直接知识和间接知识,直接知识(亲知知识)是对事物的认识,摹状词只能用于间接知识,通过摹状词描述事实,事实是对事物的性质关系的描述,事实需要判断,而事物只要命名(专名),不需要描述(摹状词)。

所以,“北京”是事物,不是事实,“是中国的首都”是事实。事实不是事物的内部属性或特征。所以,“是中国的首都”这个事实不能作为“北京”这个事物的内部,不是其天然本体直接属性,换句话说:是其社会属性,在唐朝,北京就不是中国首都。

uda1341
2011-08-05 11:28

“是中国的首都”不是事实,但可以当做一个谓词。

“北京是中国的首都”才是事实。

如果把“是中国的首都”看做一个谓词f

f(北京)是事实。

你可以进行查询f(X),也就是问,什么地方是中国的首都?

这里没有什么事物,只有词,这里叫做个体词。

SpeedVan
2011-08-05 11:48

2011年08月05日 11:28 "@uda1341"的内容
“是中国的首都”不是事实,但可以当做一个谓词。

“北京是中国的首都”才是事实。

如果把“是中国的首都”看做一个谓词f

f(北京)是事实。

你可以进行查询f(X),也就是问,什么地方是中国的首都?

这里没有什么事物, ...

恩,我也是这样理解,所以我提到特征时就明确了,必须是“是中国的首都”,从特征的角度说,正因为北京具有“是中国的首都”的特征,才使“北京是中国的首都”成立。其实特征也是事实的局部体现。

10Go 1 2 3 4 ... 10 下一页