âèÌz[y[WÖßé
©R¾êüå
0. üÍi¢¶ÌXÆ`®ÖÌÏ·Aå¶E¬¶ÌAhñ`̵¢ÈÇj
1. ÈPȶ¬©R¶@Æcbfi¢íäéî{¶^̱üÆåiÖWã¼Ìj
2. ¶Ì\¢\¦Ì½ßÌZ@
3. ¶@f«Éæ鶬©R¶@Ìâi«AAiAlÌA§A®`ÔAIð§Àj
4. ¶@K¥Æêbf[^ÌØ裵Éæé«Ì®Æêbo^ÌÈf»
5. ®åÉ©©íé¶@f«i®Ì±üAè^â¶Ais`A®¹`Atosèj
6. Gapf«Ì±üiâ«^â¶ÆåiÈOÌÖWã¼ÈÇê©Ú®µÄ¢é©Éݦé
vf̵¢j
7. ¶@Ìg£(¶ÄAK¥Æ³À[vAOuåE`eåÌA»Ì¼ÌÁê\¶j
8. |óÌÛÌâèiú{êp¾ÌpEêöÌAÊ̵¢ÈÇ )
iPj¢¶üÍ
ÊíÌ¢¶`®Åü͵½¶ðPrologÅ·éXg`®ÉȨ·read_sent/1ðè`µÄÝæ¤B
?-read_sent(X).
It is a pen.
X=['It',is,a,pen]
XebvPFl¦û
@@BÍAüͶð½¾PÉAXL[R[hÉϦĵĢéÉ߬ȢB
It is a pen.¨73 116 32 105 115 32 97 32 112 101 110 46
µ©µlÔÍA¶ÍPê©çPêͶ©Å«Ä¢éiKw\¢ðȵĢéj±Æð
¼´IÉðµÄ¢éBµ½ªÁÄAAXL[R[hÌA½ð¶ÆµÄF¯³¹é½ß
ÉÍAPjǤâÁÄPêªìçêĢ̩AQj¢ÂPêªIíéÌ©ARj¢Â
¶ªIíéÌ©É¢ÄÌîñð@Bɳ¦ÄâçËÎÈçÈ¢BïÌIÉÍAÇ̶
ðÇÝñ¾Æ«ª»êÉ ½é̾뤩H
æʷ׫¶ÌíÞ
Êí̶FPêðìé
ó^üsF»ÌOÅPêªIé
sIh F»ÌOÅPêªIèA©Â»êª¶ÌIíèÅà é
XebvQFÇÝݶðAXL[R[hÉϦé
@¡©çìéread_sent/1ÌÅÍAܸæÊ©çÇÝñ¾¶ð@BÅ·éA
XL[R[hɼ³È¯êÎÈçÈ¢B»êÉÍgÝÝÖget0/1ðAܸg¤Kvª éB
?- get0(U).
iüÍÒ¿ÌóÔÉÈéÌÅ a ̶ðü͵Ä^[L[ðÅÂÆj
U = 97
XebvRFÖÉÍÇñÈø«ªKv©
@¶ªWÜÁÄPêðìèAPêªWÜÁÄA¶ðìéÆ¢¤Kw\¢ª éÌÅA
get0/1ÉæÁÄÇÝÜê½AXL[R[hðpµÄÀÛɶðìÁÄ¢ÖÉ
ÍA
PjÇÝñ¾AXL[R[hðüÍø«ÉÆÁÄæʷ׫¶ÌíÞÉ¢
Ä»f·éƱëA
Qjì¬ÌPêð~¦éƱëA
Rjì¬Ì¶ð~¦éƱëA
SjÅIIÉ®¬µ½¶ðԷƱëÌvSÂÌø«ªKvÉÈé¾ë¤B
XebvSFìÆ̬ê
It is a pen. ¨ 73 116 32 105 115 32 97 32 112 101 110 46
úóÔ
º°ÄÞðó¯ C @73 116 32 105 115 32 97 32 112 101 110 46
p®Æ±ë
Pêðìé [] 73 73 [] 105 105 [] 97 [] 112 112 112 []
Ʊë 116 115 101 101
110
¶ðìé [] It It It It It It []
Ʊë is is is
a
ÅIÊð X X X X X X X X X X X X X=[It,is,a,pen]
A·Æ±ë
úóÔ@@FPêì¬X^bNA¶ì¬X^bNÆà©çÅ éB
Êí̶@FPêì¬X^bNàÌR[hQɻ̶ÌR[h𯫷B
ó(32) FPêì¬X^bNÌÌR[hQðPêi¶jÉϦA¶ì¬X^bN
àÌPêQÌɯ«·B»ÌÊPêì¬X^bNÌÍA©çÉÈ
éB@@
sIh(46) FPêì¬X^bNÌÌR[hQðPêi¶jÉϦA¶ì¬X^bN
àÌPêQÌɯ«µ¶ð®¬·éB³çÉA»Ì®¬µ½¶SÌð
ÅIÊðԷƱëÉÚ·B
%%%%%%%%%%%% ¶ÇÝÝvOiC³³µj %%%%%%%%%%%%%%%
Dread_sent(X) :- get0(C),readin(C,[],[],X),!.
Ereadin(46,WC,S,X) :- !,
name(W,WC),append(S,[W],X).
Freadin(32,WC,S,X) :- !,
name(W,WC),append(S,[W],NS),
get0(NC),readin(NC,[],NS,X).
Greadin(13,WC,S,X) :- !,nl,
name(W,WC),append(S,[W],NS),
get0(NC),readin(NC,[],NS,X).
Hreadin(C,WC,S,X) :-
append(WC,[C],NWC),
get0(NC),readin(NC,NWC,S,X).
Dread_sent/1ÍgbvxÖBܸget0/1Åê¶ÇñÅA»êðÀÛÉ·é
Öread_in/4ÉéBȨAread_in/4Ìø«ÍAO©çAPj»f̽ß̶
R[hðóp®Æ±ëAQjPêðìéƱëARj¶ðìéƱëASjÅIÊð
ԷƱëÉ·éB
ER[h46ÍAsIhBµ½ªÁÄA»êÜÅreadin/3ÌæQø«É~¦çêÄ¢
½R [hXgðgÝqêname/2ÅPêÉϦAÅ«½Pêð»êÜÅæRø«
É~¦çêÄ¢½PêXgÌÉgÝqêappend/3ÅAµ¶ð®¬·éB®¬µ
½¶ðæSø«ÉÔµAI¹·éB±êªI¹ðB
FR[h32ÍAóBµ½ªÁÄA»êÜÅreadin/3ÌæQø«É~¦çêÄ¢½R
[hXgðgÝqêname/2ÅPêÉϦAÅ«½Pêð»êÜÅæRø«É~
¦çêÄ¢½PêXgÌÉgÝqêappend/3ÅA·éBR[hXgð~¦
Ä¢½æQø«ÍúóÔ·Èí¿óXgÉß·BæSø«ÍÏ»µÈ¢B±Ì
Vµ¢ðÌàÆÉÄxget0/1ŶR[hXgðÇÝAreadin/3ðÄAIÉJè
Ô·B
GR[h13ÍüsL[BAƯ¶ðµAgÝqênl/0ÅCtB[h·éB
H±±Å·éÌÍA»êÈOÌÇÝݶ·Èí¿At@xbgÅ éBÇñ¾
¶ÌR[hðgÝÖappend/3Å»êÜÅÉÇÜêÄAæQø«É~¦çê½R
[hXt¯Á¦éBæRAæSø«ÍÏ»µÈ¢B±ÌVµ¢ðÌàÆÉÄx
get0/1ŶR[hXgðÇÝAreadin/3ðÄAIÉJèÔ·
%%%%%%%%%%%% ¶ÇÝÝvOwith sàC³ %%%%%%%%%%%%%%
Dread_sent(X) :- get0(C),readin(C,[],[],X),!.
Ereadin(46,WC,S,X) :- !,
name(W,WC),append(S,[W],X).
Freadin(32,WC,S,X) :- !,
name(W,WC),append(S,[W],NS),
get0(NC),readin(NC,[],NS,X).
Greadin(13,WC,S,X) :- !,nl,
name(W,WC),append(S,[W],NS),
get0(NC),readin(NC,[],NS,X).
Ireadin(8,[],S,X) :- !,
put(32),put(8),append(OS,[L],S),name(L,WC),
get0(NC),readin(NC,WC,OS,X).
Jreadin(8,WC,S,X) :- !,
put(32),put(8),append(OWC,[_],WC),
get0(NC),readin(NC,OWC,S,X).
Hreadin(C,WC,S,X) :-
append(WC,[C],NWC),
get0(NC),readin(NC,NWC,S,X).
D|HÍãɯ¶B
IÍFÌìÆÌ¿å¤ÇtÅAóðÅÁÄ¢Á½ñPꪮ¬µ½àÌðÄÑ`¬óÔÉß·ìÆÅ éB
put(32) Æ put(8) ÌìÆÍAæÊãÌJ[\Êuð³Éß·½ßÌàÌÅ éPB
JÍHÌìÆÌ¿å¤ÇtÅ èAPêðìÁÄ¢érŶðêÂßÁÄÁ·êÅ éB
PFput/1ÍAAXL[R[hðüêéƻ̶ðæÊÉÅÂgÝÖÅ éB
iQj嶬¶Ì
[bp¾êÌ\L@ÅÍ´¥ÆµÄ¶ªÍå¶ÅnÜéB»Ì½ßA½Æ¦ÎIs he a student ? Æ He is a student. Ìñ¶ðärµÄí©éæ¤ÉA¯¶Pê is Æ he ªêûÅÍå¶Åêûͬ¶ÅnÜé`Ågíêé±ÆªæN±éBµ©µ@BãÅͶÍAXL[R[hųêÄ¢é½ßA±ÌÜÜÅͽƦΠisÆIsͯ¶PêÅ éÆF¯³êÈ¢B±Ì½ßAÇ¿ç©ÉêµÄâéKvª éBêÔÈPÈÌÍA·×ÄÌPêð¬¶Åo^µAå¶ÅnÜéꪻê½êÍA»êð¬¶É¼·±ÆÅ éB»±ÅAXgÌvfÌÌå¶ÅnÜéPêð¬¶É¼·ÈºÌæ¤ÈÖ letter_check/2 ðè`µÄÝæ¤B
?-letter_chek([*Is*,he,a,student],X).
X=[is,he,a,student]
l¦ûF
ܸXgÌ©çÅ̶ðæèoµA»êðêxAXL[R[hÉÎçµÄA»ÌÅÌR[hªå¶ÌR[hÅ êÎA»êð¬¶ÌR[hÉÏ·µA»¤ÅȯêλÌÜÜÉ·êÎÇ¢B±êðXgÌè@ÅAÄAIÉJèÔ¹ÎÇ¢BI¹ðÍAXgªóÉÈÁ½Æ«Å éB
¶ðR[hÉÎç·FgÝqêname/2ðg¤B
?-name(*He*,X).
X=[72,101]
嶬¶ÌÏ·FAXL[R[h ÍAå¶`|yFUT|XOA¬¶|FXV|PQQ.Bµ½ªÁÄAå¶ÌR[hÉRQð«¹ÎA¬¶R[hÉÏ·Å«éB
XgðÄAFüÍø«ð[H|T]ƨ¢ÄAêÂZ¢ÌÍÅ«½Æ©È·B
%%%%%%%%%%%%% å¶Ì¬¶ÖÌØèÖ¦ %%%%%%%%%%%%%%%%
letter_check([H|T],[H1|TR]) :-
name(H,[N|Nn]),
N>=65,N=<90,!,
N1 is N + 32,
name(H1,[N1|Nn]),
letter_check(T,TR).
letter_check([H|T],[H|TR]) :- !,
letter_check(T,TR).
letter_check([],[]) :- !.
iRjZk`
I*mHe*s You*reÌ¢íäéZk`àüÍÌÛÌâè_ÌêÂÅ éB«ÉÍAi,you,he,am,are,is ÌPêÍo^³êÄ¢éªAZk`©ÌÍêÂÌPêÅàAܵÄâåÈÇÌ\¬fÅ·çÈ¢ÌÅA«Éo^·é±ÆÍAÅ«È¢B©Æ¢ÁÄA»êðÐÆÂÃÂK¥»·éÆÉGÅAåµÄӡ̳¢K¥ª¦ÄµÜ¤B»±ÅAZk`ÍAªÍÉüéOÉ ç©¶ßZk³êÈ¢`ɼµÄâéB»Ì½ßÉÍȺÌæ¤ÈÖAcontraction/2ªKvÆÈéB
?-contraction([*you**re*, my, friend],X).
X=[you,are, my, friend]
l¦ûF
ܸXgÌ©çÅ̶ðæèoµA»êªAZk`ƵÄo^³êÄ¢é©Ç¤©²×éBo^³êÄ¢êÎA»êªAǤªð³ê驲×AZk`ðªð³ê½`iȺªð`ÆÄÔjÉß·BàµZk`ÅȯêλÌÜÜÉ·êÎÇ¢B±êðXgÌè@ÅAÄAIÉJèÔ¹ÎÇ¢BI¹ðÍAXgªóÉÈÁ½Æ«Å éB
Zk`Ìo^ÌÛÉâèÆÈéÌÍAZk`ƪð`ÌÔÉ éÖAðǤ¯é©Å éBêÂÌâèûÍA»ê¼êÊXÉAµ©µ¯¶Åo^µÄ¨«AâèÆÈé`ªAZk`Xg̽ÔÚÉ é©ð²×A»Ì¯¶ÔÌÉo^µÄ éªð`ðæèo·Æ¢¤û@Å éB
évfªXg̽ÔÚÉ é©ð²×éÖFnth_member/3
?-nth_member([a,b,c,d,e,f,g,h,i,j,k,l], X,g).
X=7
XgÌnÔÚÉ évfðæèo·ÖFnth_pick_up/3
?-nth_pick_up([a,b,c,d,e,f,g,h,i,j,k,l],7,X).
X=g
%%%%%%%%%%%%%%%% Zk`Ì %%%%%%%%%%%%%%%%%%%%%
contraction([],[]):-!.
contraction([H|T],[H1,H2|TR]):-
contraction_list1(L1),
nth_member(L1,N,H),!,
contraction_list2(L2),
nth_pick_up(L2,N,[H1,H2]),
contraction(T,TR).
contraction([H|T],[H|TR]):-
contraction(T,TR).
% Zk`Ìo^iÔÉÓj
contraction_list1(['i''m','i''ve','he''s','you''re','she''s','isn''t',
'aren''t','it''s','i''ll','he''ll','she''ll']).
% Zk`ðªðµ½àÌiÔÉÓj
contraction_list2([[i,am],[i,have],[he,is],[you,are],[she,is],[is,not],
[are,not],[it,is],[i,will],[he,will],[she,will]]).
% Xg̽ÔÚÉÜÜêĢ驲×é
nth_member([H|T],1,H):-!.
nth_member([X|T],N1,H):-!,
nth_member(T,N,H),
N1 is N +1.
% XgÌÔÚÌvfðæèo·
nth_pick_up([],_,[]).
nth_pick_up([X|T],1,X):-!.
nth_pick_up([_|T],N,X):-!,
N1 is N -1,
nth_pick_up(T,N1,X).
iSjüÍÌgbvxÖ
ÅãÉÈãÌRÂÌÖðâÖƵÄÄÑo·gbvxÖin_put/1ðè`·éB
in_put(X):-
read_sent(S1),
letter_check(S1,S2),
contraction(S2,X).
¶¬©R¶@(context free grammar)
LÀÌK¥ÅAlÔÌi_IÉÍj³À̾궬\ÍðྷéfÌã\áƵÄå\¢K¥ÉæÁĶ@ðLqµæ¤Æ·éå\¢¶@ª éB
å\¢¶@ÉÍAlXÈwIÈÁ¥ªmçêÄ¢éªA»ÌÅà¶ÓɽÁ½êÂÌñI[Lð¿»êðEÓÉWJ·é¢íä鶬©R¶@ÉÍA¶¬³ê½¶ª»Ì¶@©çìçê½àÌÅ é©Ç¤©ðiÂÜèA»Ì¶Ì¶@\¢ðjLÀÔàÉ»f·éASYªmçêÄ¢éB±±ÅÍA½Æ¦ÎA Every boy who reads a book writes a program. ̶ðªÍܽͶ¬·é±ÆÌÅ«éPȶ¬©R¶@ðPrologÅ\»µÄÝæ¤B
ȨAgp·éªÌÓ¡ÍȺÌƨèÅ éB
s:¶Anp:¼åAvp:®åAoptrel:IvViÈÖW¶A
iv:©®Atv:¼åðPµ©æçÈ¢¼®Adtv:¼åðQÂæé¼®A
pn:ã¼Ü½ÍÅL¼An:ʼArelp:ÖWã¼Adet:¥Þ
¶@P
%%% RULES %%%
s --> np,vp. ....................(1)
np --> pn. ....................(2)
np --> det,n,optrel. ....................(3)
vp --> iv. ....................(4)
vp --> tv,np. ....................(5)
vp --> dtv,np,np. ....................(6)
optrel --> relp,vp. ....................(7)
optrel --> []. ....................(8)
%%% LEXICON %%%
pn-->[pochi]. ....................(9)
pn-->[taro]. ....................(10)
pn-->[hanako]. ....................(11)
pn-->[i]. ....................(12)
n-->[book]. ....................(13)
n-->[program]. ....................(14)
n-->[boy]. ....................(15)
n-->[girl]. ....................(16)
det-->[a]. ....................(17)
det-->[every]. ....................(18)
det-->[the]. ....................(19)
iv --> [walks]. ....................(20)
iv --> [walk]. ....................(21)
tv --> [writes]. ....................(22)
tv --> [write]. ....................(23)
tv --> [reads]. ....................(24)
tv --> [read]. ....................(25)
dtv --> [gives]. ....................(26)
dtv --> [give]. ....................(27)
relp --> [that]. ....................(28)
relp --> [who]. ....................(29)
relp --> [which]. ....................(30)
-->Æ¢¤Iy[^ÅOÆãðÂÈ®±Ì\LÍAå\¢K¥»ÌÜÜ\»Å«éÌÅí©èâ·¢ªAPrologÌVXeàÅÍAÊíÌPrologÌ\LÉÏ·³êðß³êÄ¢éB½Æ¦ÎK¥(1) s-->np,vp.Í s(A,C):-np(A,B),vp(B,C).ÉÏ·³êéBȨA±±ÅAgíêÄ¢éñÂÌø«ÍAêÂÌXgðQÂÌÏÅ\··ªXgÅ éBµ½ªÁÄAK¥(1)ÍAu A-CÅ\³ê½sÌA½ÍAA-BÅ\³ê½npÌA½ÆB-CÅ\³ê½vpÌA½É«·¦çêév±ÆðÓ¡µAXgðA·éappend/3Ì@\ªgÜêÄ¢éB
ȺAãL̶@ª¢©ÉµÄEvery boy who reads a book writes a program.Æ¢¤¶ð¶¬·é©ð¦·BE[ÌÍA·¦ÌÛKp³ê½K¥ÌÔÅ éB
s --> np,vp.
s --> det,n,optrel,vp. (3)
s --> Every,n,optrel,vp. (18)
s --> Every,boy ,optrel,vp. (15)
s --> Every,boy, relp,vp ,vp. (7)
s --> Every,boy, who,vp ,vp. (29)
s --> Every,boy, who,tv,np ,vp. (5)
s --> Every,boy, who,reads,np ,vp. (24)
s --> Every,boy, who,reads,det,n,optrel ,vp. (3)
s --> Every,boy, who,reads,a,n,optrel ,vp. (17)
s --> Every,boy, who,reads,a,book,optrel ,vp. (13)
s --> Every,boy, who,reads,a,book,[ ],vp. (8)
s --> Every,boy, who,reads,a,book,[ ],tv,np. (5)
s --> Every,boy, who,reads,a,book,[ ],writes,np. (22)
s --> Every,boy, who,reads,a,book,[ ],writes,det,n,optrel (3)
s --> Every,boy, who,reads,a,book,[ ],writes,a,n,optrel (17)
s --> Every,boy, who,reads,a,book,[ ],writes,a,program,optrel (14)
s --> Every,boy, who,reads,a,book,[ ],writes,a,program,[ ]. (8)
±Ì᪦·æ¤ÉA±Ì¶@ÍA¶¤«·¦ÅAµ©à[³DæTõÌgbv_EðÍÅ éB
\¶ðÍ÷Ì\¦
¶@PÌprogramÍEvery,boy, who,reads,a,book,[ ],writes,a,program,[ ].Ìæ¤È¶ñð¶ÆµÄ¶¬ é¢ÍªÍ·é±ÆªÅ«½ªAÀÛÉÍA»Ìʾ¯ª¦³ê龯ÅA»ÌìÆßö𾦷é±ÆÍÅ«È¢B±ÌìÆßö·Èí¿¶Ì\¢ð\¦·éø«ðÁ¦A¶@Pðg£µÄÝæ¤B
³µ ½èæèoµ½¢\¢ÍAºLÌæ¤È\¶ðÍ÷Å éªAf[^ƵÄÍA±Ì\¢÷É¿Ì\¢Xgðìé±ÆÉ·éB±ÌXgÍAKÈ\¦pvOƹp·ê΢ÂÅàÀÛÌ\¢÷ÉÏ·Å«éB
\¢÷PF
S
|----------------|-----------------|
NP VP
|----|---------| |----|-----|
DET N REL TV NP
| | |----|----| | |-----|-----|
every boy that VP writes DET N REL
|----|----| | | |
TV NP a program e
| |----|---|
reads DET N REL
| | |
a book e
êÊɪØÍA»ÌØÌxÅ éêß_Æ»Ìêß_Éxz³êéPÂÈã̺̪ةçÈÁÄ¢éBµ½ªÁÄAêß_ðæêø«ÆµAºBÌ\¢ðQÂÚÈ~Ìø«ÆµÄ¶©çÉÈç×½XgÉæÁÄ\¢ØÌÂ\¢ð\»·é±ÆªÅ«éB
\¢÷PÌC^bNÌŦ³ê½ªØ̪É
ÚµA±ÌªªÇÌæ¤È\¢XgÉεĢé©ð¦·ÆȺÌæ¤ÉÈéB
VP [vp,A,B]
|----|-----| A=[tv,writes]
TV NP B=[C,D,E]
|-----|-----| ==> C=[det,a]
writes DET N REL D=[n,program
| | | E=[rel,e]
a program e [VP,[TV,writes],[NP,[DET,a],[N,program],[REL,e]]]
±±ÅåÈÌÍA±Ì\¢Xg̶¬ªAK¥ÉPÎPÉεĢé±ÆÅ éBêÊÉiðïÌIÈêÉWJ·éK¥Ó--> [word].ªK³êéƫɯÉ[Ó,word]Æ¢¤\¢ªìçêȯêÎÈçÈ¢B»Ì½ßAêÊÉêbÚ𶬷éK¥Ó--> [word].ÍȺÌæ¤ÉüϳêéB
Ó([Ó,word])--> [word].
±êÉεAêÊɶ@Íáe¾¯©çÈéK¥¿-->À,Á,Â...ÌêÍAEÓÌÌ»ê¼êªÀ(S1),Á(S2),Â(S3)...Ìæ¤É\¢Ìø«Snðóp®Æ·éƶÓÌ¿Ì\¢ÍA[¿,S1,S2,S3,...]ÆÈéÌÅAK¥¿-->À,Á,Â...ÍȺÌæ¤ÉüϳêéB
¿([¿,S1,S2,S3,...])--> À(S1),Á(S2),Â(S3)...
Ⱥ̶@QÍA¶@PÉ\¢Ìø«ðt¯Á¦½àÌÅ éBÏÌÎÖWð¼´Iɪ©èâ··é½ß±±ÅÍAY·éÍáeð嶻µÄgÁĨèAܽxàøp«Åå¶ÉµÄ¢éB
¶@Q
%%% RULES %%%
s([*S*,NP,VP]) --> np(NP),vp(VP). ....................(1)
np([*NP*,PN]) --> pn(PN). ....................(2)
np([*NP*,DET,N,REL]) --> det(DET),n(N),optrel(REL). ....................(3)
vp([*VP*,IV]) --> iv(IV). ....................(4)
vp([*VP,TV,NP]) --> tv(TV),np(NP). ....................(5)
vp([*VP*,DTV,NP1,NP2]) --> dtv(DTV),np(NP1),np(NP2). ....................(6)
optrel([*REL*,RELP,VP]) --> relp(RELP),vp(VP). ....................(7)
optrel([*REL*,[]]) --> []. ....................(8)
%%% LEXICON %%%
pn([*PN*,pochi])-->[pochi]. ....................(9)
pn([*PN*,taro])-->[taro]. ....................(10)
pn([*PN*,hanako])-->[hanako]. ....................(11)
pn([*PN*,i])-->[i]. ....................(12)
n([*N*,book]) -->[book]. ....................(13)
n([*N*,program]) -->[program]. ....................(14)
n([*N*,boy]) -->[boy]. ....................(15)
n([*N*,girl]) -->[girl]. ....................(16)
det([*DET*,a])-->[a]. ....................(17)
det([*DET*,every])-->[every]. ....................(18)
det([*DET*,the])-->[the]. ....................(19)
iv([*IV*,walks]) --> [walks]. ....................(20)
iv([*IV*,walk]) --> [walk]. ....................(21)
tv([*TV*,writes]) --> [writes]. ....................(22)
tv([*TV*,write]) --> [write]. ....................(23)
tv([*TV*,reads]) --> [reads]. ....................(24)
tv([*TV*,read]) --> [read]. ....................(25)
dtv([*DTV*,gives]) --> [gives]. ....................(26)
dtv([*DTV*,give]) --> [give]. ....................(27)
relp([*RELP*,that])--> [that]. ....................(28)
relp([*RELP*,who]) --> [who]. ....................(29)
relp([*RELP*,which]) --> [which]. ....................(30)
¶¬©R¶@Ìâi¶@f«{¶¬©R¶@j
¶@QÍApê̶𶬷é¶@ƵÄÍAܾ§Àª]èÉäé·¬éB»ÌÊA½Æ¦ÎAȺÌæ¤Èñ¶@IȶªYÝo³êéB
a) *Every boy read a book.
b) *The girl likes I.
c) *Every boy which reads a book write a program.
±êçÍ»ê¼êåêÆ®ÌêviagreementjA¼®ÌixzAÖWã¼ÆæsÌêvÌâèÅ èA»êÉÍA«EEiÌîñâ 鼪humanÌÁèÌÓ¡wWðÁÄ¢é©ÌîñªÖW·éB±êç̶@IÈîñ𶬩R¶@Ét¯Á¦APrologÌjtBP[ViPê»j@\ðpµÄ»êçÌîñª¨Ý¢Éeµ ¤K¥ÌKpÌÝð·é±ÆÉæÁÄA¶¬©R¶@ðâ·é±ÆªÅ«éBãLa)-c)̶ðr·é½ßɳµ ½èKvȶ@f«ÍAȺÌRÂÅ éB
«iGenderjFmasculine,feminine,neuter
iNumberjFplural,singluar
iiCasej Fnominative,accusative
lÌ(Person)F1,2,3
»Ì¼ F+human,-human
±êçÌf«ð»ê¼êȺ̪Å\·±ÆÉ·éB
g¬Ú ª l
« Gen mas,fem,neu
Num plur,sing
i Case nom,acc
lÌ Pers 1,2,3
lÔ Hum +hum,-hum
±êçÌf«Æ»ÌlÌo^ÌdûÅ éªAKvƳêéf«Ìªå·é±ÆÉηé½ßAܸAo^f«SÌðXgÌ`ÅÜÆßé±ÆÉ·éBi±Ìø«ÌÍ¢Á½ñ±¤Æß½çvOSÌÌÅêѳ¹Ä¨©È¯êÎÈçÈ¢BYêéÆ¢éÌÅvOãɵĨ¢½Ù¤ª¢¢B(áF ¶@f«Ìo^Í[«,,i,lÌ,lÔ]Å·)j±Ìf«XgÍAæPø«ÆµÄ¼Úü͵ÄàÇ¢iÀÛ»Ìûªø¦àÇ¢jªA±±ÅÍvOð©â··é½ßAæPø«ÉÍGFÌϾ¯ðüêA»ÌÀÛÌlÍA·¦K¥ÌãÉè`·é±ÆÉ·éB·¦K¥ÌªÆæÊ·é½ßA±ÌªÍA¼pÌgÊi{}jÅÍÞBÈãÌèŶ@QÌK¥(12)Æ(14)ð«·¦éÆȺÌæ¤ÉÈéBȨA±±ÅÍAsvÈÏÍA³L¼Ïi¼p̺üjÌÜÜÉµÄ éB
pn(GF,[*PN*,i]) --> [i],{ GF=[_,sing,nom,1,+hum]}. ......(12)
n(GF, [*N*,program]) --> [program],{ GF=[n,sing,_,3,-hum]}. ......(14)
±Ìf«Xgðg¦Îñ¶a)-c)ªrÅ«é±ÆðȺɦ·B
s(GF1,[*S*,NP,VP]) --> np(GF1,NP), vp(GF2,VP),
{GF1=[_,Num,nom,Pers,Hum],
GF2=[_,Num,_,Pers,Hum]}. .......(1)
ñ¶a)ÅâèÆÈÁ½åêÆ®ÔÅÌÆlÌÌêvÍAoûª¯¶ø«NumÆPersÆð¤Lµ ¤±ÆÉæÁÄÛسêéBȨAåêªåiÅ é±ÆÍnpÌf«XgGF1ÌæRø«Å énomÉæÁĦ³êA®ÉæéåêÌÓ¡IÈIð§ÀÍAHumÆ¢¤ø«Ìf«ÉæÁĦ³êéB
vp(GF1,[*VP,TV,NP]) --> tv(GF1,TV),np(GF2, NP),
{GF2=[_,_,acc,_,_]}. .......(5)
ñ¶b)ÅâèÆÈÁ½¼®ÌÚIêªÚIiÅ é±ÆÍAK¥(5)ÌEÓÉ énpf«XgGF2ÌæRø«accÉæÁĦ³êÄ¢éB¼®Ìf«Í»ÌÜÜ®åÉópªêéB
optrel(GF1, [*REL*,RELP,VP]) --> relp(GF2, RELP), vp(GF3, VP),
{GF1=[_,Num,_,3,Hum],
GF2=[_,Num,nom,3,Hum],
GF3=[_,Num,_,3,Hum]}. ..........(7)
ñ¶c)ÅâèÆÈÁ½ÖWã¼ÌÓ¡IÈIð§ÀÍAK¥i7jÌf«XgÌæSø«HumÌêvÉæÁĦ³êéBȨAåiÖWã¼Æ®åÌÔÉÍAåêE®ÔƯ¶êvªKvÆÈéBÖWã¼Ìf«ÍA»ÌÜÜÖW¶Ìf«ÉópªêéB
±êçÌf«ðt¯Á¦ÄA¶@Qðâµ½à̪¶@RÅ éB
¶@R
%%% RULES %%%
s(GF1,[*S*,NP,VP]) --> np(GF1,NP), vp(GF2,VP),
{GF1=[_,Num,nom,Pers,Hum],
GF2=[_,Num,_,Pers,Hum]}. ........(1)
np(GF,[*NP*,PN]) --> pn(GF,N). ........(2)
np(GF,[*NP*,DET,N,REL]) -->
det(GF,DET),n(GF,N),optrel(GF,REL). ........(3)
vp(GF,[*VP*,IV]) --> iv(GF,IV). ........(4)
vp(GF1,[*VP,TV,NP]) --> tv(GF1,TV),np(GF2, NP),
{GF2=[_,_,acc,_,_]}. ........(5)
vp(GF1,[*VP*,DTV,NP1,NP2]) -->
dtv(GF1,DTV),np(GF2,NP1),np(GF3,NP2),
{GF2=[_,_,acc,_,_],GF3=[_,_,acc,_,_]}. ........(6)
optrel(GF1, [*REL*,RELP,VP]) --> relp(GF2, RELP), vp(GF3, VP),
{GF1=[_,Num,_,3,Hum],
GF2=[_,Num,nom,3,Hum],
GF3=[_,Num,_,3,Hum]}. ........(7)
optrel(GF,[*REL*,[]]) --> []. ........(8)
%%% LEXICON %%%
pn(GF,[*PN*,pochi])-->[pochi], { GF=[n,sing,_,3,-hum]}. ........(9)
pn(GF,[*PN*,taro])-->[taro] ,{ GF=[m,sing,_,3,+hum]}. ........(10)
pn(GF,[*PN*,hanako])-->[hanako], { GF=[f,sing,_,3,+hum]}. .........(11)
pn(GF,[*PN*,i]) --> [i],{ GF=[_,sing,nom,1,+hum]}. .........(12)
n(GF, [*N*,book]) --> [book],{ GF=[n,sing,_,3,-hum]}. ........(13)
n(GF, [*N*,program]) --> [program],{ GF=[n,sing,_,3,-hum]}. .......(14)
n(GF, [*N*,boy]) --> [boy],{ GF=[m,sing,_,3,+hum]}. .......(15)
n(GF, [*N*,girl]) --> [girl],{ GF=[f,sing,_,3,+hum]}. .......(16)
det(GF,[*DET*,a])-->[a], { GF=[_,sing,_,3,_]}. .......(17)
det(GF,[*DET*,every])-->[every], { GF=[_,_,_,3,_]}. .......(18)
det(GF,[*DET*,the])-->[the], { GF=[_,_,_,3,_]}. .......(19)
iv(GF,[*IV*,walks]) --> [walks] , { GF=[_,sing,_,3,_]}. .......(20)
iv(GF,[*IV*,walk]) --> [walk],
{ GF=[_,Num,_,Pers,_],not_sg3(GF)}. .......(21)
tv(GF,[*TV*,writes]) --> [writes] , { GF=[_,sing,_,3,_]}. .......(22)
tv(GF,[*TV*,write]) --> [write],
{ GF=[_,Num,_,Pers,_],not_sg3(GF)}. .......(23)
tv(GF,[*TV*,reads]) --> [reads] , { GF=[_,sing,_,3,_]}. .......(24)
tv(GF,[*TV*,read]) --> [read],
{ GF=[_,Num,_,Pers,_],not_sg3(GF)}. ......(25)
dtv(GF,[*DTV*,gives]) --> [gives] , { GF=[_,sing,_,3,_]}. ......(26)
dtv(GF,[*DTV*,give]) --> [give],
{ GF=[_,Num,_,Pers,_],not_sg3(GF)}. ......(27)
relp(GF,[*RELP*,that])--> [that], { GF=[_,_,_,3,_]}. ......(28)
relp(GF,[*RELP*,who]) --> [who], { GF=[_,_,_,3,+hum]}. ......(29)
relp(GF,[*RELP*,which]) --> [which], { GF=[_,_,_,3,-hum]}. ......(30)
% RlÌPÅÍÈ¢±ÆÌmF
not_sg3([_,sing,_,1|_]). % PlÌP
not_sg3([_,sing,_,2|_]). % QlÌP
not_sg3([_,plur|_]). % ¡
«ÌLqðȪ»·éè@
¶@RÌ«ÚÌLqð©éÆA¯¶iÉֵľ¦ÎAèÔµª½¢B½Æ¦ÎAʼbookÆboyÌ«îñÅ éK¥(13)Æ(15)ÅÍAºüÈOÍA·×į¶îñÅ éB
n(GF, [*N*,book]) --> [book],{ GF=[n,sing,_,3,-hum]}. ........(13)
n(GF, [*N*,boy]) --> [boy],{ GF=[m,sing,_,3,+hum]}. .......(15)
±±ÅÍA±¤µ½«ÚÌç·«ðüPµA«ÚÌLqðȪ»·éû@É¢Äl¦éB«ÉPêðo^·éÛKvÆÈéÌÍAo^PêÌê`¨æÑ»ÌPê̶@f«Å éB
¶@f«XgÌp^[»ÆQÆÔÌt^
ܸ¶@f«É¢ÄÅ éªA»Ì½ÍPêÌiªÜé±ÆÉæÁÄ©®IÉÜèASÌƵÄàêèÌp^[É[Üé̪ÊÅ éB½Æ¦ÎAʼÌêCaseª¢èÅ é±Æ¨æÑPersonª3Å é±ÆÍAi©ç©®IÉí©éBâèÉÈéÌÍANumberÆGenderÆHumanÉ¢ÄÌîñ¾¯Å éBµ½ªÁÄA±ÌªÌÂ\ÈgÝí¹©çKvÆÈéʼ̶@f«Ìp^[ð 究ßAȺÌfeature/2Ìæ¤ÈÖ¼Åo^µÄ¨¯ÎA»ÌÇÌp^[ÉÈé©Æ¢¤îñ¾¯ð«o^ÌÛÉ^¦Äâ龯ÅAKvȶ@f«Xgðæèo·±ÆªÅ«éB
%%% ʼÌf«p^[
feature(1,[[n,sing,_,3,-hum],[_,plur,_,3,-hum]]). % áFbook,books
feature(2,[[m,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFboy,boys
feature(3,[[f,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFgirl,girls
feature(4,[[_,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFchild,children
±±ÅAfeature/2ÌæPø«ÍAf«p^[ÉANZX·é½ßÌ®ÔÅ èAæQø«ÌXgÉÍ»ê¼êAP`Æ¡`Ìf«ªüÁÄ¢éBPêo^ÌÛÉP`Æ¡`ðêÉo^·éÙ¤ªAsÇ¢ÌÅAf«Xgfeature/2ÅàêÂÌÖÅP`Æ¡`̼ûÌf«ÉANZXÅ«éæ¤ÉµÄ éB
QjPreterminal RuleÆLexicon̪£
f«p^[̪£o^ÉæÁÄAÀÛÉ«Éo^·éʼÌf[^ÍȺÌæ¤ÉÈéBo^ÚÍAo^PêÌê`»ÌàÌÆ»ÌPê̶@f«XgðQÆ·é½ßÌÔÉÀçêéB
% ʼ̫f[^
n([book,books],1).
n([program,programs],1).
n([boy,boys],2).
n([girl,girls],3).
n([child,children],4).
«ÌX»ÌÅãÌXebvÍA±Ìîñ©çAK¥(13)â(15)Ư¶æ¤È«xÌ·¦K¥ðÇÌæ¤ÉµÄìé©Æ¢¤±ÆÅ éB³«ÙǺüŦµ½æ¤ÉA±êç«xÌK¥ÅÍAo^Pê̪ƶ@f«Ìªð»ê¼êÏÅu«·¦ÄâêÎAK¥©ÌðêÊ»·é±ÆªÂ\Å éB¾¢·¦éÆA½Æ¦ÎAK¥(13)ÉÍAPjê`(Word)ªbookÅ è¶@f«(GF)ª[n,sing,_,3,-hum]Å éÆ¢¤îñ̼ÉAQj»êçÌîñªAn(GF, [*N*,Word]) --> [Word],{ ........ }.Æ¢¤êÊ`Å\»³êéðð½³È¯ê΢¯È¢Æ¢¤îñðÜñÅ¢é B±±Å±ÌãÒÌîñðÂXÌ«xîñ©çØ裵A Preterminal RuleƵÄƧ³¹ÄâêÎA«xÅ·K¥ðJèÔ·KvÍÈÈéBȺÍAʼÌPreterminal RuleÌáÅ éBͶßÌK¥ªP`AQÂÚª¡`ÌPê̪ÍE¶¬ÉKvÆÈéB
n(GF,['N',Word])-->[Word], {n([Word,_],N),feature(N,[GF,_])}.
n(GF,['N',Word])-->[Word], {n([_,Word],N),feature(N,[_,GF])}.
ÈãÌ´¥Ì{ÉA¶@RÌ«ªðüPµ½à̪AȺ̶@SÅ éBio^PêÍᱦĢéjB
¶@Siªj
%%%%%%%%%% PRETERMINAL RULE & LEXIKON %%%%%%%%%%
%%% f«p^[Ìo^
% ʼÅL¼
feature(1,[[n,sing,_,3,-hum],[_,plur,_,3,-hum]]). % áFbook,books
feature(2,[[m,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFboy,boys
feature(3,[[f,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFgirl,girls
feature(4,[[_,sing,_,3,+hum],[_,plur,_,3,+hum]]). % áFchild,children
% lÌã¼
feature(5,[[n,sing,nom,3,-hum],[_,plur,nom,3,-hum]]). % áFit,they
feature(6,[[n,sing,acc,3,-hum],[_,plur,acc,3,-hum]]). % áFit,them
feature(7,[[m,sing,nom,3,+hum],[_,plur,nom,3,+hum]]). % áFhe,they
feature(8,[[m,sing,acc,3,+hum],[_,plur,acc,3,+hum]]). % áFhim,them
feature(9,[[f,sing,nom,3,+hum],[_,plur,nom,3,+hum]]). % áFshe,they
feature(10,[[f,sing,acc,3,+hum],[_,plur,acc,3,+hum]]). % áFher,them
feature(11,[[_,sing,_,2,_],[_,plur,_,2,_]]). % áFyou,you
feature(12,[[_,sing,nom,1,+hum],[_,plur,nom,1,+hum]]). % áFI,we
feature(13,[[_,sing,acc,1,+hum],[_,plur,acc,1,+hum]]). % áFme,us
% ¥LiÖã
feature(14,[_,sing,_,3,_]). % áFa,every
feature(15,[_,_,_,3,_]). % áFthe,my,that
feature(16,[_,_,_,3,+hum]). % áFwho
feature(17,[_,_,_,3,-hum]). % áFwhich
feature(18,[_,_,acc,3,+hum]). % áFwhom
% ®
feature(19,[[_,sing,_,3,+hum],[_,Num,_,Pers,+hum]]). % áFreads,read
feature(20,[[_,sing,_,3,_],[_,Num,_,Pers,_]]). % áFwalks,walk
%%% PRETERMINAL RULE & LEXIKON %%%
% ã¼ÅL¼
pn(GF,['PN',Word])-->[Word], {pn([Word,_],N),feature(N,[GF,_])}.
pn(GF,['PN',Word])-->[Word], {pn([_,Word],N),feature(N,[_,GF])}.
pn([japan,'-'],1).
pn([pochi,'-'],1).
pn([taro,'-'],2).
pn([hanako,'-'],3).
pn([it,they],5).
pn([it,them],6).
pn([he,they],7).
pn([him,them],8).
pn([she,'-'],9). % she Ì pl` they Í he Ì pl `Ư¶Bo^sv
pn([her,'-'],10). % her Ì pl` them Í him Ì pl `Ư¶Bo^sv
pn([you,you],11).
pn([i,we],12).
pn([me,us],13).
% ʼ
n(GF,['N',Word])-->[Word], {n([Word,_],N),feature(N,[GF,_])}.
n(GF,['N',Word])-->[Word], {n([_,Word],N),feature(N,[_,GF])}.
n([book,books],1).
n([pen,pens],1).
n([dog,dogs],1).
n([program,programs],1).
n([boy,boys],2).
n([girl,girls],3).
n([child,children],4).
n([parent,parents],4).
% ¥Li
det(GF,['DET',Word])-->[Word], {det(Word,N),feature(N,GF)}.
det(a,14).
det(every,14).
det(the,15).
det(my,15).
det(you,15).
det(her,15).
det(his,15).
det(its,15).
det(their,15).
det(our,15).
% ©®
iv(GF,['IV',Word]) --> [Word] , {iv([Word,_],N),feature(N,[GF,_])}.
iv(GF,['IV',Word]) --> [Word] , {iv([_,Word],N),feature(N,[_,GF]),not_sg3(GF)}.
iv([walks,walk],20).
iv([sleeps,sleep],20).
% ÚIêðPÂæé¼®
tv(GF,['TV',Word]) --> [Word] , {tv([Word,_],N),feature(N,[GF,_])}.
tv(GF,['TV',Word])--> [Word] , {tv([_,Word],N),feature(N,[_,GF]),not_sg3(GF)}.
tv([likes,like],20).
tv([reads,read],19).
tv([writes,write],19).
% ÚIêðQÂæé¼®
dtv(GF,['DTV',Word]) --> [Word] , {dtv([Word,_],N),feature(N,[GF,_])}.
dtv(GF,['DTV',Word])-->[Word] ,
{dtv([_,Word],N),feature(N,[_,GF]),not_sg3(GF)}.
dtv([gives,give],20).
dtv([sends,send],20).
% ÖWã¼
relp(GF,['RELP',Word])--> [Word], {relp(Word,N),feature(N,GF)}.
relp(that,15).
relp(who,16).
relp(which,17).
relp(whom,18).
RjÓ¡f«Ìµ¢
¶@Râ¶@SÅÍȪµ½ªAf«HumanilÔÅ é±Æð¦·jÌlðPÉ+hum,-humÆ·éÌÉÍAá±Ìâèª éBÆ¢¤ÌÍA±±ÅÍA±Ìf«ÍAÖWã¼ÌwhoÆwhichÌg¢ª¯ð¦·È¶@f«ÆµÄgÁĢ龯ÅÈB½Æ¦ÎA¶@RÌK¥(1)ÅÌæ¤ÉA®ÌIð§Àf«i·Èí¿Ó¡f«jƵÄàgÁÄ¢é©çÅ éBÓ¡f«Æ¢¤Ï_©çÍA}ÉæéPÈQlf«ÅÍÈA½Æ¦ÎAread,writeÌæ¤ÈxÈmI®ðOñÉ·é®âAlike,goÌæ¤ÉAå̪¶½ÌÅ é±ÆðOñÉ·é®âAfall,flyÌæ¤ÉïΨðåêƵÄv·é®ðl¶µhuman,animate,concreteÌiKIÅàïÖWÉ éf«ªKvÆÈéBiÔÌÖWű±ÅÍâè_ðwE·é¾¯É¯ßéBj
Sjo^PêÌê\¦
o^Pꪦéɵ½ª¢Ao^PêªêÚÅí©éæ¤ÈXgAbvÌqêª éÆÖÅ éBȺÌlist_up_words/0ÍAgÝqêÌwriteÆfailðgÁ½Afail loop ÉæèAn/2,pn/2,iv/2,tv/2,dtv/2,det/2,relp/2Ìlª éÀèA·×ÄÌæPø«È¢µÍ»ÌêðæÊãÉ\¦µÄ¢BÅãÌÖÍA±ÌÖðyesÅI¹³¹é½ßÌàÌÅ éB
%%% o^PêÌê\¦ %%%
list_up_words:- nl,
write('%%% åvo^Pêê *),nl,nl,
write(' *** ʼ:'), n([Noun,_],_),write(Noun),write(','),fail.
list_up_words:- nl,
write(' *** ÅL¼ã¼:'),
pn([PN1,PN2],_),write_data(PN1),write_data(PN2),fail.
write_data('-'):-!.
write_data(DATA):-write(DATA),write(',').
list_up_words:- nl,
write(' *** ©®:'), iv([_,Verb],_),write(Verb),write(','),fail.
list_up_words:- nl,
write(' *** ¼®:'),tv([_,Verb],_),write(Verb),write(','),fail.
list_up_words:-
dtv([_,Verb],_),write(Verb),write(','),fail.
list_up_words:- nl,
write(' *** ¥Li:'), det(Det,_),write(Det),write(','),fail.
list_up_words:- nl,
write(' *** ÖWã¼:'), relp(Rel,_),write(Rel),write(','),fail.
list_up_words.
®Ì±ü
1)®`ÔÉÖ·éf«
pê̶ÉÍ®ðgÁ½à̪½¢BÁÉ^â¶âÛè¶ÈÇÅÍA doÈÇÌ®(auxiliary)ªKvÆÈéB±±ÅÍAȺÌæ¤È®ðÜñ¾¶ðó¯t¯éæ¤É¶@Sðg£·é±Æðl¦éB
a)The boy must have read the book.
b)He was writing the program.
c)I*ll give you the book.
®É¨¢ÄAܸâèÆÈéÌÍA®ªAêȩ̀â`ÔiÈã±êçð̵Į`ÔÆÄÔjðÁ½®ðv·é±ÆÅ éB½Æ¦ÎAis`ðìé®be̻ͮݪi¢íäéing`jðv·éÌÉεA®¹`ðìé®haveÍߪðKvÆ·éBܽcan,willÌlÌ®imodal auxiliaryj̴ͮ`ðv·éBµ©à±êçÌ®©ÌªAܽAÁèÌ®`Ôâp`ð¿AãLÌá¶a)ÌhaveÌæ¤ÉÊÌ®ÌÉß±Üêéêà éB½¾µARlÌP`Å éÌp`ÉÖ·éîñÍ·ÅÉlÌâÉÖ·éf«ÉæÁÄæÊÅ«é ÌÅA±±ÅV½É±ü·éKvª éÌÍA®`ÔÉÖ·éf«ÉÀçêéB
ȨAºÌ\ÅAªÅ\³êÄ¢élÍA»ê¼ê»Ý(present tense)Aß(past tense)Aߪ(past participle) A»Ýª(present participle)¨æÑ´`(infinitive)ÌTÂÅ éB
f«Ú ª l
®`Ô VFORM pres,past,pp,ppr,inf
®Ìê®`ÔÉÖ·éf«Í±ê¾¯ÅÇ¢ªAâèÍA®Å éBÆ¢¤ÌÍAùÉq×½æ¤ÉA®ÌêÇÌæ¤È®`Ôðv·é©Æ¢¤îñÆA©çªÇÌæ¤È®`ÔÅ é©Æ¢¤îñÌQÂðêÂÌf«Å\·Kvª é©çÅ éB±¤µ½QdÌÖWð\»·é½ßÉwÌævZÌêÊ®iáFa=a/b¥bjÉȼ禽\»ªæp³êéB±Ìû®Ì·ÍAv·é®`ÔðXbV
ÌE¤·Èí¿ªêƵÄæèA©çÌ®`ÔðXbV
̶¤·Èí¿ªqÉ·êÎAv³ê½®`Ôª»ê½Æ«ÉAªq·Èí¿©çÌ®`Ô¾¯ðvZi·Èí¿ñªjÌÊƵÄc·±ÆªÅ«é_Å éBȺɻÌáð °éB
vp = auxiliay ¥ verb 1 á
ß = ß/»Ýª ¥ »Ýª were reading
»Ý = »Ý/´` ¥ ´` can read
±Ìû®Å\·Æ®Ì®`Ôf«ÍȺÌæ¤ÉÈéB
f«Ú ª l
®`Ô VFORM pres/pp,past/pp,pp/pp,ppr/pp,inf/pp
pres/ppr,past/ppr,pp/ppr,ppr/ppr,inf/ppr
pres/inf,past/inf,pp/inf,ppr/inf,inf/inf
ȨA±Ìæ¤É¶@IÈÖWðizIÉjͽÁ½QÂÌPJeS[Ì[vZ®Å\·û®ÍJeS[¶@Ì`ÉR·éB
2)p`Å é©Ç¤©É¢ÄÌf«
®E®ÉÖµÄà¤êÂdvÉÈéf«ÍA»êªp`Å é©Ç¤©Æ¢¤îñÅ éBêÊÉA®ÍAlÌââ§ÉÖµÄpµ½`ÅÈ¢®åðv·éBãÌf«Å¾¦ÎAXbV
ÌE¤Éé±ÆªÅ«éÌÍAppÆpprÆinfÅ ÁÄA±êçÍÇêàlÌAA§ÉֵĽÌÀèà½È¢ B»êÉεAêÊÉnpªvpÆÑt¢ÄsªÅ«éÛA»ÌvpÌheadÍAíÉlÌââ§ÉÖµÄpµ½`ÅȯêÎÈçÈ¢B±Ìðð®ÉÖ·éà¤êÂÌf«ÆµÄ±ü·éB
f«Ú ª l
p`1 FIN +fin,-fin
±±ÅÍp`Æñp`i¢íäé´`jÌñÂð»ê¼ê}finÅæʵĢéB®`ÔÆp`Ìf«ÉæèA¶@SªÇÌæ¤ÉÏ»·é©ðȺɩĢ±¤B
3)«xÅÌ®E®Ìµ¢
ܸ®Ì«f[^ÅÍAo^µâ·¢æ¤ÉTÂÌê`ðñ·é±ÆÉ·éBê`Ìo^ÍARlÌP»Ý`,»Ý`,ß`,ߪ,»ÝªÅ éBȨA´`ÍA»Ý`Ư¶ÈÌÅê`ƵÄÍÁÊÉo^·éKvÍÈAf«ÌxÅÌÝæʵÄâêÎÇ¢B
tv([reads,read,read,read,reading],19).
®Ì«f[^ªÏX³ê½±Æɺ¢Af«QÆÔPXÉæÁÄQƳêéf«feature/2ÌæQø«Ìf«XgÌvfÌàAQ©çUɦéBf«XgÌvfÍAO©çÉRlÌP»Ý`,»Ý`,ß`,ߪ,»Ýª,´`ÌUÂÅ éB
% êÊ®Ìf«:RlÌP»Ý,»Ý,ß,ߪ,»Ýª,´`
feature(19,[[_,sing,_,3,+hum,pres,+fin],[_,_,_,_,+hum,pres,+fin],
[_,_,_,_,+hum,past,+fin],[_,_,_,_,+hum,pp,-fin],
[_,_,_,_,+hum,ppr,-fin],[_,_,_,_,+hum,inf,-fin]]).
±Ìo^f«Æ«f[^©çKvÈPêxÌK¥ðìé½ßÉA¼ð꾯æé¼®Ìpreterminal ruleàÌæ¤ÉÏX³êéB
tv(GF,['TV',Word]) --> [Word],{tv([Word,_,_,_,_],N),
feature(N,[GF,_,_,_,_,_])}. % RlÌP
tv(GF,['TV',Word]) --> [Word],{tv([_,Word,_,_,_],N),
feature(N,[_,GF,_,_,_,_]),not_sg3(GF)}. % »Ý`
tv(GF,['TV',Word]) --> [Word],{tv([_,_,Word,_,_],N),
feature(N,[_,_,GF,_,_,_])}. % ß`
tv(GF,['TV',Word]) --> [Word],{tv([_,_,_,Word,_],N),
feature(N,[_,_,_,GF,_,_])}. % ߪ
tv(GF,['TV',Word]) --> [Word],{tv([_,_,_,_,Word],N),
feature(N,[_,_,_,_,GF,_])}. % »Ýª
tv(GF,['TV',Word]) --> [Word],{tv([_,Word,_,_,_],N),
feature(N,[_,_,_,_,_,GF])}. % ´`
®Ìµ¢Í´¥ÆµÄÍA®ÆÏíçÈ¢B®ÆÌá¢ÍA®ÌíÞÉæÁÄÍA¢Â©Ìê`ªµÄ¢éà̪ é±ÆÅ éB®©gð»êªÂê`ÌðàÆɪ޷éÆȺÌTÂÉÈéB
(1)»Ý`Æß`ÌÝÌàÌ
can,will,must,may,shall
(2)RlÌ»Ý`Æ»Ý`Æß`ÌÝÌàÌ
do
(3) RlÌP»Ý`Æ»Ý`Æß`ƻݪ`Æ´`ðÂàÌ
have
(4)be®^Ìê`ðÂàÌ
copulaƵÄÌbe,is`ð±be
(5)PíÞÌê`µ©½È¢àÌ
to
ȺÉÍA(1)É®·é®canÌ«f[^Æo^f«¨æÑpreterminal ruleð °éBcanÌ^CvÌ®(modal auxiliary)ÍAlÌÆÉÖµÄAÁÊÈwèð½È¢ªA»êªªÆÍÙÈèAp`Å é±ÆÍAf«XgÌÅãÌvfÅ é+fin©çÇÝæêéB
% can Ì«f[^
aux([can,could],23).
% ®can,will,must,may,shall Ìo^f«
feature(23,[[_,_,_,_,_,pres/inf,+fin],
[_,_,_,_,_,past/inf,+fin]]).
% ®can,will,must,may,shall Ìpreterminal rule
aux(GF,['AUX',PRES]) --> [PRES],{aux([PRES,_],N),
feature(N,[GF,_])}.
aux(GF,['AUX',PAST]) --> [PAST],{aux([_,PAST],N),
feature(N,[_,GF])}.
4jå\¢K¥ãÅÌ®E®Ìµ¢
¶@Tiªj
s([Tens|GF1],['S',NP,VP]) --> np(GF1,NP), vp(GF2,VP),
{GF1=[_,Num,nom,Pers,Hum],
GF2=[_,Num,_,Pers,Hum,Tens,+fin]}.
±±Å̶@SÆÌá¢ÍA¶ªK¸êÂÌp`ð±ƪAvpÌf«XgGF2ÌæVvf+finŦ³êÄ¢é±ÆÅ éB±êÆÍtÉA®ªºÊÌvpÌheadƵÄíÉñp`ðæé±ÆÍAºÌK¥ÅAºÊÌvp̶@f«GF3ÌæVvfª-finÉÈÁÄ¢é±ÆŦ³êéB±ÌK¥ÌEÓƶÓɯ¶vpªÄ¢é±Æ©çí©éæ¤É±ÌK¥ÍÄAIÉK³ê¾éÌÅA®ð¡Â¶à¶¬·é±ÆªÅ«éBêû®`ÔÉÖ·éf«É¢ľ¦ÎAaux̶@f«ÌæUvfÅ éTens/VFORMÌXbV
̶¤ªæèãÊÌvpÉópªêé±ÆÉæÁÄA
p.24Ŧµ½JeS[¶@Ìl¦ûªvOãÉÚ³êÄ¢éB
vp(GF1,['VP',AUX,VP]) --> aux(GF2,AUX),vp(GF3,VP),
{GF1=[_,Num,_,Pers,Hum,Tens,FIN],
GF2=[_,Num,_,Pers,Hum,Tens/VFORM,FIN],
GF3=[_,_,_,_,Hum,VFORM,-fin]}.
5jcopulaƵÄÌbe̵¢
ÅãÉAcopulaiAjƵÄÌbei¢íäébe®j̵¢É¢ÄÈPÉGêéBcopulaƵÄÌbeÍêÊÉ®ÌêíƩȳêÄ¢éªA»Ì¶@IÈÁ«i1.|uÉæÁÄ^â¶ðìé,2.notƤɻÌÜÜÛè¶ðìêé,3.»ÌÜÜtÁ^â¶ðìêéj©ç·éÆAÞµë®Æl¦½ûªsª¢¢B»Ìê{®ÆµÄÍA¹`̳¢®ð¼è·éBܽ±Ì®Ì®`ÔÉ¢ÄÌf«ÆµÄAæɼ赽VFORMÌl pres,past,pp,ppr,inf ÌÙ©ÉA¹`̳¢®ð çí·noneðV½É±ü·éB VFORM ÌlƵÄnoneðæé®ð±ü·éK¥ð °éÆȺÌæ¤ÉÈéB±±Å±Ì®ª¹`ð½È¢±ÆÍAK¥ÌEÓ̶[ÌóXg [ ] ÉæÁĦ³êÄ¢éB
copulaƵÄÌbe®(®)ƤN·é¹`̳¢®
v(GF,['V','[]']) --> [],{GF1=[_,_,_,_,_,none,_]}.
copulaƵÄÌ®beÍAnoneðÁ½®ðv·éÌÅ®ÉàAnoneðÜÞȺÌæ¤ÈnñÌ®`Ôf«ðÁ¦éKvª éB
copulaƵÄÌbei®jÌ®`Ô
f«Ú ª l
®`Ô VFORM pres/none,past/none,pp/none,ppr/none,inf/none
beÆêÊ®Ìà¤êÂÌå«Èá¢ÍAbeªæè½Ì¾¦IÈp`ð±ÆÅ éBbeÌêARlÌP»Ý¾¯ÅÈAPlÌP»ÝAP¨æÑRlÌPßàV½ÉæÊ·éKvª éBµ½ªÁÄo^f«Ìp^[âpreterminal ruleª¦é¾¯ÅÈAlÌÆÉêèÌ`FbNðÁ¦éÖƵÄA]Ìnot_sg3/1ÉÁ¦AV½Ésg13/1Ænot_sg13/1ðÁ¦éKvªoÄéB±Ì_ÍA»Ýis`ð±®Ìbeà copulaƵÄÌ® be௶ŠéB±ÌQÂÌbeÌ̽ßÉKvÆÈÁ½vOiªjð °éÆȺÌæ¤ÉÈéB
% ®beÌ«f[^
aux([am,is,are,was,were,been,being,be],21). % copulaƵÄÌbe
aux([am,is,are,was,were,been,being,be],26). % is`ð±be
% copula ƵÄÌ ®be Ìf«Xg
% iPlÌP»Ý,RlÌP»Ý,»Ý,PERlÌPß,»êÈOÌß,
% ߪ,»Ýª,´`j
feature(21,[[_,sing,_,1,_,pres/none,+fin],[_,sing,_,3,_,pres/none,+fin],
[_,_,_,_,_,pres/none,+fin],
[_,sing,_,_,_,past/none,+fin],[_,_,_,_,_,past/none,+fin],
[_,_,_,_,_,pp/none,-fin],[_,_,_,_,_,ppr/none,-fin],
[_,_,_,_,_,inf/none,-fin]]). % áFam/is/are
% is`ð±®beÌf«Xg
feature(26,[[_,sing,_,1,_,pres/ppr,+fin],[_,sing,_,3,_,pres/ppr,+fin],
[_,_,_,_,_,pres/ppr,+fin],
[_,sing,_,_,_,past/ppr,+fin],[_,_,_,_,_,past/ppr,+fin],
[_,_,_,_,_,pp/ppr,-fin],[_,_,_,_,_,ppr/ppr,-fin],
[_,_,_,_,_,inf/ppr,-fin]]). % áFam/is/are
% ® beÌ preterminal rule
aux(GF,['AUX',SG1]) --> [SG1],{aux([SG1,_,_,_,_,_,_,_],N),
feature(N,[GF,_,_,_,_,_,_,_])}.
aux(GF,['AUX',SG3]) --> [SG3],{aux([_,SG3,_,_,_,_,_,_],N),
feature(N,[_,GF,_,_,_,_,_,_])}.
aux(GF,['AUX',PRES]) --> [PRES],{aux([_,_,PRES,_,_,_,_,_],N),
feature(N,[_,_,GF,_,_,_,_,_]),not_sg3(GF)}.
aux(GF,['AUX',PAST13]) --> [PAST13],{aux([_,_,_,PAST13,_,_,_,_],N),
feature(N,[_,_,_,GF,_,_,_,_]),sg13(GF)}.
aux(GF,['AUX',PAST]) --> [PAST],{aux([_,_,_,_,PAST,_,_,_],N),
feature(N,[_,_,_,_,GF,_,_,_]),not_sg13(GF)}.
aux(GF,['AUX',PP]) --> [PP],{aux([_,_,_,_,_,PP,_,_],N),
feature(N,[_,_,_,_,_,GF,_,_])}.
aux(GF,['AUX',PPR]) --> [PPR],{aux([_,_,_,_,_,_,PPR,_],N),
feature(N,[_,_,_,_,_,_,GF,_])}.
aux(GF,['AUX',INF]) --> [INF],{aux([_,_,_,_,_,_,_,INF],N),
feature(N,[_,_,_,_,_,_,_,GF])}.
% cf.PERlÌPÅÈ¢±ÆÌmF̽ßFwere
not_sg13([_,sing,_,2|_]).
not_sg13([_,plur|_]).
% cf.PERlÌPÅ é±ÆÌmF̽ßF was
sg13([_,sing,_,1|_]).
sg13([_,sing,_,3|_]).
gÚ®µÄ¢éæ¤É©¦é\¬fhÌ
1)âèÌÝ
±êÜÅÍåiÌÖWã¼ðÜÞ¶¾¯ðµÁÄ¢½ªA»êÈOÌÖW¶ÌÉÍAê©·éÆA ½©à¶ÌÌvfªAÚ®³êÄ¢éæ¤É©¦éà̪ éB·Èí¿Êí̶ÈçÎ{ é׫ƱëÉ»Ìvfª³A»êªÖWã¼ÆµÄ¶ªÉÚ®³êÄ¢éæ¤ÉݦéÌÅ éBÏ`¶@ÅÍA±êÍA¢íäéwhÚ®ÆÄÎêAÚ®µ½vfÍAÚ®³ÉÕ(traceAÊít ƪ·)ðc·Æ³êéBȺɻÌáð °éiáPjBȨAáQÍêÌär̽ßÉ °½½¶Ìå¶Å éB
áPFI know the girl whom he gave [ t ]the book.
áQFHe gave the girl the book.
¯¶lÈ»ÛÍAåiÈOÌ^âðÜÞ¶ÌÉà©çêéB
áRFWho do you like [t ] ?
áSFDo you like her ?
»à»à¢íäéÏ`¶¬¶@ªñ¥³êĽwiÉͱ¤µ½Ú®ðº¤»ÛÍAPÈéå\¢K¥Å\·±ÆªÅ«È¢Æ¢¤Oñª Á½Bµ©µÚ®Æ¢¤Ï`ìÍñíÉÍÈàÌÅ èA±êÉæÁÄÙÆñÇ·×Ä̻۪à¾Å«é©íèÉA¶@K¥ÉÖ·é§ÀªÉÈèA é^¦ç꽶ª»Ì¾ê̶@©ç¶¬Å«éà̩Ǥ©ðLÀÌÔàÉ»f·é±ÆªÅ«È¢êබé±ÆÆÈÁ½BÀÛÉÍAÏ`K¥ÌKpÉÍAå«ÈðªÛ¹çêé±ÆÉÈÁ½ªA»êɵÄàAÏ`ÍA»êðKpÂ\É·éêèÌððKvƵAµ½ªÁÄA豫ÌÉ˶·éã_ª Á½B»êÉεA±êÜũĽæ¤ÈAf«ÉæÁħÀ³ê½¶¬©R¶@ÌK¥ÅÍAf«ÌêvÍêvf«ªË«í³ê½Æ«ÉͶßÄN±èA»Ìûü«âêvÌÉ ç©¶ßw誳©Á½BK¥ÉÏ`ð±ü·éÆ¢¤±ÆÍAø¦Æ¢¤Ó¡ÅàA_IÈêÑ«Æ¢¤Ó¡ÅàA\¶ðÍãÌASYÆ¢¤Ó¡Åàå«ÈãÞÅ èA@BãÍÅ«êÎ𯽢±ÆÅ éBȺÉÍAê©Ú®Éݦé»ÛðÇÌæ¤ÉµÄAå\¢K¥Ì`Å\»·é©É¢Äl¦éB
2)gapÉÖ·éf«
Ú®ÅȢƷéÀèÍA»±É½©ª éƼè·é±ÆÉÈéBãÌáÅÍAÕƳêéƱëÉ©¦È¢vfigapjª éƼè·éBgapÍA{»±É é׫vfƯ¶¶@f«ð±ÆÉÈèA©¦È¢\¬fi·Èí¿óXgjðYÝo·K¥Ìűü³êéBȨAgapÌiƻ̶@f«ðêgÌjbgÆ·égapf«ÍAÆ©Ìø«ÉæÁÄK¥ÌÅópªêéBgapf«ÍAÊíÌXgÌvfƵÄ\»µÄà梪A±±ÅÍAø¦ÌRÅA·ªXgÌvfÌ`Å\·±ÆÉ·éB
NP-gapð±ü·éK¥ð °éÆȺÌæ¤ÉÈéB
np([[gap(np),GF]|GAP]-GAP,GF,['NP/NP','Ó']) --> [].
æPø«Ìgapf«Í·ªXg[[gap(np),GF]|GAP]-GAP Å\³êÄ¢éªAÀ¿IÉÍ[[gap(np),GF]]Å éBÖgap/1Ìø«Å énpÉæÁıÌgapÌiª\»³êAGFªæQø«É é¶@f«GFƯ¶ÏÅ é±ÆÉæÁıÌnpgíêéÛ̶@f«ªgapf«ÌÅópªêéBgapÌ\¢ÍAß_ƵÄÊíÌNPÅÍÈNP/NPªgí굩à»êªÓðxz·é±ÆÉæÁĦ³êéBiF\¢Ì\LÉXbV
i/jªgíêé±Æ©çAgapf«ÍAµÎµÎslashf«ÆàÄÎêéBjܽA±êª¹`ð½È¢êÅ é±ÆÍAEÓÌóXg[ ]ÉæÁÄ\³êéB±êÉεA½Æ¦ÎnpðpnÉWJ·éæ¤ÈgapðÜÜÈ¢K¥ÌêÍAgapf«ÍóXgGAP-GAPÉæÁÄ\³êéB
np(GAP-GAP,GF,['NP',PN]) --> pn(GF,PN).
gapª éÀè»ÌgapðÜÞåÍܾ®SÅÍÈ¢B¶@IÉ®SÈåÉÈé½ßÉÍA¢¸ê©Ì_ÅgapÌÂf«ð«·é\¬fªÈ¯êÎÈçÈ¢B±êÍA½Æ¦ÎÖWã¼â^âƱêçÌ媳êéå\¢K¥ÌÅÀ»³êéBȺÉgapðÜÞ¶ÌáƵÄI read every book which he gave meÌ\¢÷ð °éB
S
|---|----|
NP VP
| |----|-----|
PN TV NP
| | |-----|--------|
i read DET N REL
| | |---|----|
every book RELP S/NP
| |---|---|
which NP VP/NP
| |---|---|
PN DTV NP NP/NP
| | | |
he gave PN Ó
|
me
±±ÅÍAgapi³mÉÍANp-gapjðÜÞ\¢ðxz·éß_ÉÍA»êð±ü·éß_NP/NPƯlÉ/NPªt¯Á¦çêÄ¢éB/NPÍAgapf«ªóXgið\··ªXgjÉÈÁ½iKÅAãÌឦΠS/NPªARELPƵÄRELÉÈÁ½iKÅÁÅ·éB±ÌªÌK¥ðã°éÆȺÌæ¤ÉÈéB
optrel(GAP-GAP,GF1, ['REL',RELP,S])-->
relp(GF2, RELP), s([[gap(np),GF2]|GAP]-GAP,_, S),
{GF1=[_,Num,_,3,Hum],
GF2=[_,Num,_,3,Hum]}.
ãÌáÅÍAÖWã¼relp̶@f«GF2ÆAÖW¶sÉópªê½gapf«Ì̶@f«GF2ª¯¶ÏÅ é±ÆÉæÁÄAÖW㼪KvƳêéðð½·i½Æ¦ÎCaseâHumÉÖ·éf«ÉÖµÄj±ÆªÛسêéBȨAÅIÊƵÄÌÖW¶ðÜÞ¼åSÌ©çAgapîñªÁ¦½±ÆÍAnpÌæPvfªóXgGAP-GAPÉÈÁÄ¢é±ÆÉæÁĦ³êéB
ȨAÖ«Å éªAgapÌŬPÊͼå(NP)âOuå(PP)ÈÌÅAgapf«Ìø«ðÂÌÍåxÌK¥¾¯Å èA«ânontermianl ruleðÏX·éKvÍÈ¢B
ÅãÉAgapðÜÞ\¢ðxz·éß_ÉtÁ³êé/NPA/PPðìèo·ªÌvO̪ÆA»êªgíêÄ¢éÓÌêáÆµÄ vp -> tv + npÆ¢¤¶¬©RK¥ÉηévO̪ð °éB
%%% XbV
JeS[Ìxì¬p
% xo^
slash_node(np,'S','S/NP').
slash_node(np,'VP','VP/NP').
slash_node(np,'NP','NP/NP').
slash_node(np,'PP','PP/NP').
slash_node(np,'AP','AP/NP').
slash_node(pp,'S','S/PP').
slash_node(pp,'VP','VP/PP').
slash_node(pp,'NP','NP/PP').
slash_node(pp,'PP','PP/PP').
slash_node(pp,'AP','AP/PP').
% xì¬p
make_slash_node(GAP-GAP,Node,Node):- !.
make_slash_node([[gap(NPorPP)|_]|_]-_,Node1,Node2):-
slash_node(NPorPP,Node1,Node2).
% vp -> tv + np
vp(GAP1-GAP2,GF1,[NodeVP,TV,NP]) --> tv(GF1,TV),np(GAP1-GAP2,GF2, NP),
{GF2=[_,_,acc,_,_],make_slash_node(GAP1-GAP2,'VP',NodeVP)}.
3)yes-no^â¶Ìµ¢
^âðÜ޶𵤽ßÉÍA»ÌOñƵÄܸÈPÈyes-no^â¶ð·éK¥ð±üµÈ¯êÎÈçÈ¢Byes-no^â¶Ì½ßÉKvÆÈéK¥ðPÈå\¢K¥Å\·ÆȺÌæ¤ÉÈéB
s-> aux + np + vp
±±ÅauxÍA+finÌf«ðAܽvpÍ-finÌf«ð»ê¼êÂB±êçÌððl¶µÄprologÌK¥ÉÏ··éÆȺÌæ¤ÉÈéB
s(GAP1-GAP3,[Tens|GF1],['S',NP,VP]) --> aux(GF1,AUX),
np(GAP1-GAP2,GF2,NP),
vp(GAP2-GAP3,GF3,VP),
{ GF1=[_,Num,_,Pers,_,Tens/VFORM,+fin],
GF2=[_,Num,nom,Pers,Hum],
GF3=[_,_ ,_,Pers,Hum,VFORM,-fin]}.
4)â«^â¶Ìµ¢
â«^â¶i³µ ½è^âã¼ðº¤^â¶jð±ü·é½ßÉKvÆÈéK¥ðPÈå\¢K¥Å\·ÆȺÌæ¤ÉÈéB
s-> qpn+s(with NP-gap)
±±ÅqpnÍA^âã¼ÌªÅ éBEÓÌsÌÈ©Ìgapf«Xg̶@f«ÍA^â̶@f«Éêv·éBàµåêÌnpªMbvÉÈÁÄ¢éÆ«ÍA±Ìgapf«ð}îɵÄAauxÆåêÌnpÆÌÔÅÌlÌÆÌêv(agreement)ªÀ»³êéBÈãÌÖWðprologÌK¥ÉÏ··éÆȺÌæ¤ÉÈéB
s(GAP-GAP,GF2,['S',QPN,S]) --> qpn(GF1,QPN),
s([[gap(np),GF1]|GAP]-GAP ,GF2,S).
ȨA«ÌÉàAȺÌæ¤É^âã¼ðV½Éo^µÄâéKvª éBȨAfeature/3ÍA¥ELiÖWã¼Æ¤LÅ«éÌÅAV½Éo^·éKvÍÈ¢B
% ^âã¼
%%% PRETERMINAL RULE %%%
qpn(GF,['QPN',QPN])-->[QPN], {qpn(QPN,N),feature(N,GF,_)}.
%%% LEXIKON %%%
qpn(who,16).
qpn(what,17).
qpn(whom,18).
Pj`e̱üi¼ÌadjunctâqIp@j
a cute girl (adjunct) She is cute.iqIp@j
QjåâOuå̱ü(¼É©©écomplementܽÍadjunctƵÄ)
the destruction of Rom (complement) the girl with a telescope (adjunct)
the book here (adjunct)
RjåâOuå̱üi®É©©éêj
I saw (a girl with a telescope). I saw (a girl) with a telescope.
SjOuðº¤ÖWã¼AÖW/^âA^â`e̱ü
He will sell the house,in which he lives.
He will sell the house,which he lives in.
He will sell the house,where he lives.
Where does he live?
Which house do yo like? In which house does he live? etc.
Tj¼ÌLi(possessive)ƶÄAK¥
Ken*s book
Uj»Ì¼ÌÁê\¶
He is easy to please.
He tries to read the book.
He seems to read the book.
It seems that he reads the book.
It is interesting to read the book. etc.
±Ìy[WÌͶßÉWv