格辨 格辨 8.0分

读《格辨》

向南方

1

昨天一晚上粗粗扫完,因为很多问题早已在想,所以看得较快。我当年学java时,懂得了所谓OOP设计,便联想到语言问题。就拿现代汉语而言,考虑一个动词“重启”。显而易见,没有电脑以前并没有这个词,空调和灯泡都能关掉再开,但那不是“重启”;换言之,“重启”是为“电脑”而生的。再考虑“开车”“开花”“开灯”“开会”,这四个“开”并没有关系(除非语源学上的)。要是我们说,“开”的可以是“车”、“花”、“灯”、“会”,虽然不错,似乎不科学。如果说“车”、“花”、“灯”、“会”都有“开”这种操作,比较合理,毕竟车的开相对是“停”,花是“谢”,灯是“关”,会是“休”。用OOP就很好办了,

电脑.重启();

车.开();

花.开();

灯.开();

会.开();

四个“开”function根本没有关系。现在考虑一句复杂的话,

小王把空调开到二十度。

我们的Object有两个选择 ,一是小王,一是空调。由于小王是人,而人类的语言里,人能干的事太多了,为了设计的便利,我们选择空调——“开”这行为属于人并不稀奇,作为“空调”的一种操作才有“落到实处”之感。所以...

显示全文

1

昨天一晚上粗粗扫完,因为很多问题早已在想,所以看得较快。我当年学java时,懂得了所谓OOP设计,便联想到语言问题。就拿现代汉语而言,考虑一个动词“重启”。显而易见,没有电脑以前并没有这个词,空调和灯泡都能关掉再开,但那不是“重启”;换言之,“重启”是为“电脑”而生的。再考虑“开车”“开花”“开灯”“开会”,这四个“开”并没有关系(除非语源学上的)。要是我们说,“开”的可以是“车”、“花”、“灯”、“会”,虽然不错,似乎不科学。如果说“车”、“花”、“灯”、“会”都有“开”这种操作,比较合理,毕竟车的开相对是“停”,花是“谢”,灯是“关”,会是“休”。用OOP就很好办了,

电脑.重启();

车.开();

花.开();

灯.开();

会.开();

四个“开”function根本没有关系。现在考虑一句复杂的话,

小王把空调开到二十度。

我们的Object有两个选择 ,一是小王,一是空调。由于小王是人,而人类的语言里,人能干的事太多了,为了设计的便利,我们选择空调——“开”这行为属于人并不稀奇,作为“空调”的一种操作才有“落到实处”之感。所以写下代码,

空调.开(小王,二十度);

“小王”和“二十度”是两个参数。我们可以说空调的“开”可以如下代码格式表出,

空调.开(施事,温度);

当然,在OOP里面,一种object也能有许多同名操作,只要它们的参数配置不同即可,所以我们有,

空调.开(施事,温度);//小王把空调开到二十度。

空调.开(施事);//小王开空调。......X

空调.开(温度);//空调开到了二十度。

至此说的是动词,相当于OOP里的function。名词自然相当于class。不过java的class必须上套下,一路管着,不及tagging的便利,而语义学的义素分析法就是tagging,似乎更好。比如上面标记X的那个“开”function,可以属于一应“电器”。又“施事”位置必须填入tagging为“人”的object,“温度”位置必须填入tagging为“温度”的object,等等。

以上包含了书中的两个思想。第一,用作格系统而不是宾格系统(即,一价动词的主语和高价动词的宾语都看作object,高价动词的其他配价物看作参数),因为主宾语不对称。第二,接近二期理论(这是附录那篇评述的说法),即不以有一套格系统能说明全部动词的用法,而以每个动词有其量身定制的参数配置。此外包含一种功能主义思想,即“词的用法等于意义”。比如“排电影票”,直接写作,

电影票.排();

这是第三。第四,以语言为出发点而非语义。所以“小王开空调”和“小王打开空调”涉及两个function,

空调.开(小王);

空调.打开(小王);

2

现在谈谈困难,只谈三个,虽然肯定不止这些。第一,高级投射是否参数。第二,形容词的地位。第三,实现的规则。

第一,考虑以下代码,

王语嫣.喜欢(段誉);//段誉喜欢王语嫣。

这个代码很容易。但是考虑“段誉可能喜欢王语嫣”、“段誉很喜欢王语嫣”、“段誉一直喜欢王语嫣”。在X-bar理论里,这是高级的投射;但在OOP里,我们应该怎么处理。如果再投射,等于OOP只能解决作者所谓“命题”层面的描述。一定要用OOP写也可以,就规定一个形式上的object,比如“宇宙”,给它一个“可能”的操作,参数为一基本命题,毕竟OOP里操作代码可以作为输出值使用,

宇宙.可能(王语嫣.喜欢(段誉));

难点在于时间、地点这些是高级投射吗?还是低级的参数呢?“段誉在曼陀山庄遇见王语嫣”可以说,但是“段誉在曼陀山庄喜欢王语嫣”不能说,因为“段誉喜欢王语嫣”这事件不管任何地点的事。那么,

宇宙.地点(王语嫣.遇见(段誉),曼陀山庄);//可以输出自然语言

宇宙.地点(王语嫣.喜欢(段誉),曼陀山庄);//无法输出自然语言

就要问上边“地点”这function的第一参数对事件有什么要求。换言之,“王语嫣.遇见(段誉);”跟“王语嫣.喜欢(段誉);”的输出值要有不同的tagging。这有些难办,因为我们也可以说“段誉在曼陀山庄喜欢王语嫣,在无量宫喜欢钟灵,在琅環仙洞喜欢神仙姐姐”以表示其花心。似乎表示“宇宙.地点(王语嫣.喜欢(段誉),曼陀山庄);”这个代码应该允许其运行,输出后再用别的理由去抑制。

第二,形容词附给名词本身不难,难在它是否做参数,怎样做参数。考虑,

小王把空调开太低了。

其他细节先不管,就说这个“低”,它不是附于空调的形容词,而是附于温度的。如果“低”是这个“开”function的参数,也可以,但是在X-bar理论里,诸如“小王打网球打得很好”的“好”是“小王打网球”以后的投射。在OOP设计里,“好”难道和“低”处于不同的层级么?又“小王打网球打得很开心”呢?

第三,只考虑一个例子,

空调.开(小王);“小王开空调”,不可“小王把空调开”

空调.打开(小王);“小王打开空调”或“小王把空调打开”

这笔帐应该在输出以前算,还是输出以后算?

3

这儿就想到的信手写来。OOP只是个比附叫法,“格语法”才是思想精髓。上面提的困难本身不必是格语法的困难,只是要问怎么把它们放到这个框架里处理。这本书的思想很超前,可惜都是英文例子,而中文竟不曾有如此的好书。原名case for case,翻译为“格辩”,有些失去原来的修辞意图,如果说“格之格物”之类,似乎更贴近。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

格辨的更多书评

推荐格辨的豆列

了解更多图书信息

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端