第十章 语义分析

  
10.4 名 词

  一般来说,为了区分不同的实体,名词的词义用单目谓词就足以表示了,如man(x)。但有些名词涉及到两个事物间的关系,就要用双目谓词来表示,如:
  brother(X,Y)
  读作:"X是Y的兄弟"。
  另外,许多名词是从动词演变过来的,这类名词通常都带有与动词类似的补足语结构,如:
  John's belief that Mary knows Bill.
  (约翰对玛丽认识比尔的信心。)
  belief(john,know(mary,bill).

  在LFL中,专有名词对应于常量。在绝大多数情况下这些专有名词可以用Prolog的原子或数字来表示;当专有名词具有某种结构时,也可以用Prolog的复合项来表示。

  
10.5 限 定 词

  在英语中,名词的前置修饰成分有限定词、形容词和名词等几类。限定词构成一个封闭类,例如:
  a ,an , the,
  each,a11,some,no,few,many,…
  his,her,its,…
  this,that, these,those,
  which,What,whose,…

  从语义上来看,限定词相当于量词,在LFL中通常用双目谓词表示,其基本形式为:
  determiner (Base,Focus)
第一个变元叫做限定词的基,用来说明该限定词量化的范围;第二个变元叫做限定词的焦点,表达言谈的中心,在口语中句子的这部分往往被重读。下面是限定词"each"的几个例子:
  Each man knows Bill.(每个人都认识比尔)
  each(man(X),know(X,bill)).
  Each boy eats several apples.(每个男孩吃几个苹果)
  each(boy(X),several(apple(Y),eat(x,Y))).
  Each man that knows Mary knows Bill.
  (每个认识玛丽的人也都认识比尔)
  each(man(X)& know(X,Mary),know(X,bill)).
  Each man that owns a car washes it.
  (每个有汽车的人都擦洗它)
  each(man(X)&car(Y)& own<X,Y),wash(X,Y)).

  下面说明LFL的量词与一阶逻辑中的标准量词相比有什么区别。在一阶逻辑中,标准的全称量词all(X,P)含有两个运算对象,X是它所量化的单一变量,P是它的辖域。表达式的意思是:"对变量x的每一个值,谓词P都将保持为真"。采用这样的标准量词,语义表达式将改写如下:
  Each man knows Bill.
  a11(X,man(X)→know(X,bill)).

  LFL量词与此不同:(1)LFL量词的辖域被分割为基和焦点两部分,因此可以用a11(P,Q)或each(P,Q)取代标准的全称量词all(X,P→Q);(2)LFL量词可以同时对几个变量进行量化,例如上面给出的例句:"Each man that owns a car washes it",在量词each的基中出现的两个变量X和Y就被同时量化。
  LFL量词的以上特点在表达象"few"和"most"这样一些自然语言的量词时,显得更加必要。因为few(P,Q)的意思是:相对来说使P&Q为真的例比使P为真的例少得多,于是下面的例句可以用LFL量词分析为:
  Few tigers are tame.(几乎没有老虎是驯服的)
  few(tiger(X),tame(X)). 并进而对few的基和焦点给出如下合理的定义:
  few(Base,Focus):-card(Base,B),
            card(Base & Focus,BF),
            small(BF,B).

其中card(P,N)读作:"P的基数为N",其定义为:
  card(P,N) :-set_of(P,P,S),
         length(S,N).

谓词set-of(X,P,S)的意思是:使P为真的全体X的集合叫做S。small(M,N)可以定义为要求商M/N小于某个指定的分数。
  回过头来,如果沿用标准全称量词的模式,那么上述例句将分析为:
  few(X,tiger(X)→tame(X)).
根据蕴涵"→"的定义,式中第二个变元所表示的命题对于宇宙中的绝大多数事物(只要它们不是老虎)都将取真值。这个意思同原句的意思大相径庭。
  另一方面,从下面的例句可以看到对几个变量同时进行量化是必要的:
  Most people writing a letter mail it.
  (大多数写信的人都会寄走它)
  most(person(X)&letter(Y)&write(X,Y),mail(X,Y)).

most(Base,Focus)的定义同few(Base,Focus)类似,只不过要求Base &Focus取真的情况在Base取真的情况中应占很大的比重。这里量词most应管辖"写信的人",而不是分别管辖"人"或"信"。
  冠词"a"(及其变体"an")和"the"的情况比较复杂。有趣的是在某些自然语言(如中文、日文和俄文)中,并不存在相应的冠词。不定冠词"a"有时可以用存在量词ex来表示: