Šâè‚̃z[ƒ€ƒy[ƒW‚Ö–ß‚é


Ž©‘RŒ¾Œêˆ—“ü–å


0. “ü—͏ˆ—i‰¢•¶‚̃ŠƒX‚ÆŒ`Ž®‚Ö‚Ì•ÏŠ·A‘啶ŽšE¬•¶Žš‚̏ˆ—Ah–ñŒ`‚̈µ‚¢‚Ȃǁj
1. ŠÈ’P‚È•¶–¬Ž©—R•¶–@‚Æ‚c‚b‚fi‚¢‚í‚ä‚éŠî–{•¶Œ^‚Ì“±“ü‚ÆŽåŠiŠÖŒW‘ã–¼ŽŒ‚̏ˆ—j
2. •¶‚̍\‘¢•\Ž¦‚Ì‚½‚ß‚Ì‹Z–@
3. •¶–@‘f«‚É‚æ‚镶–¬Ž©—R•¶–@‚Ì•â‹­i«A”AŠiAlÌAŽž§A“®ŽŒŒ`‘ԁA‘I‘𐧌Àj
4. •¶–@‹K‘¥‚ÆŒêœbƒf[ƒ^‚̐؂藣‚µ‚É‚æ‚鎫‘‚̐®—‚ÆŒêœb“o˜^‚ÌŠÈ‘f‰»
5. “®ŽŒ‹å‚É‚©‚©‚í‚镶–@‘f«i•“®ŽŒ‚Ì“±“üAŒˆ’è‹^–╶AisŒ`AŠ®—¹Œ`Ato•s’莌j
6. Gap‘f«‚Ì“±“üi•â‘«‹^–╶‚ÆŽåŠiˆÈŠO‚ÌŠÖŒW‘ã–¼ŽŒ‚ȂLjꌩˆÚ“®‚µ‚Ä‚¢‚é‚©‚É‚Ý‚¦‚é —v‘f‚̈µ‚¢j
7. •¶–@‚ÌŠg’£(¶Ä‹A‹K‘¥‚Æ–³ŒÀƒ‹[ƒvA‘O’uŽŒ‹åEŒ`—eŽŒ‹å‚̏ˆ—A‚»‚Ì‘¼‚Ì“ÁŽê\•¶j
8. –|–ó‚̍ۂ̏”–â‘èi“ú–{Œê—pŒ¾‚ÌŠˆ—pEŒê”ö‚̏ˆ—A—ÊŽŒ‚̈µ‚¢‚È‚Ç )


“ü—͏ˆ—

i‚Pj‰¢•¶“ü—͏ˆ— 
’ʏí‚̉¢•¶Œ`Ž®‚Å“ü—Í‚µ‚½•¶‚ðProlog‚ŏˆ—‚·‚郊ƒXƒgŒ`Ž®‚É‚È‚¨‚·read_sent/1‚ð’è‹`‚µ‚Ă݂悤B

?-read_sent(X).
It is a pen.
X=['It',is,a,pen]

ƒXƒeƒbƒv‚PFl‚¦•û 
@‹@ŠB‚́A“ü—Í•¶Žš‚ð‚½‚¾’P‚ɃAƒXƒL[ƒR[ƒh‚É•Ï‚¦‚ďˆ—‚µ‚Ä‚¢‚é‚ɉ߂¬‚È‚¢B 
It is a pen.¨73 116 32 105 115 32 97 32 112 101 110 46  
‚µ‚©‚µlŠÔ‚́A•¶‚Í’PŒê‚©‚ç’PŒê‚Í•¶‚©‚Å‚«‚Ä‚¢‚éiŠK‘w\‘¢‚ð‚È‚µ‚Ä‚¢‚éj‚±‚Æ‚ð
’¼Š´“I‚É—‰ð‚µ‚Ä‚¢‚éB‚µ‚½‚ª‚Á‚āAƒAƒXƒL[ƒR[ƒh‚̘A½‚𕶂Ƃµ‚Ä”FŽ¯‚³‚¹‚邽‚ß
‚ɂ́A‚Pj‚Ç‚¤‚â‚Á‚Ä’PŒê‚ªì‚ç‚ê‚Ä‚¢‚­‚Ì‚©A‚Qj‚¢‚Â’PŒê‚ªI‚í‚é‚Ì‚©A‚Rj‚¢‚Â
•¶‚ªI‚í‚é‚Ì‚©‚ɂ‚¢‚Ă̏î•ñ‚ð‹@ŠB‚É‹³‚¦‚Ä‚â‚ç‚˂΂Ȃç‚È‚¢B‹ï‘Ì“I‚ɂ́A‚Ç‚Ì•¶
Žš‚ð“ǂݍž‚ñ‚¾‚Æ‚«‚ª‚»‚ê‚É‚ ‚½‚é‚Ì‚¾‚낤‚©H 

‹æ•Ê‚·‚ׂ«•¶Žš‚ÌŽí—Þ
’ʏí‚Ì•¶ŽšF’PŒê‚ðì‚é
‹ó”’^‰üsF‚»‚Ì‘O‚Å’PŒê‚ªI‚é
ƒsƒŠƒIƒh  F‚»‚Ì‘O‚Å’PŒê‚ªI‚èA‚©‚‚»‚ꂪ•¶‚̏I‚í‚è‚Å‚à‚ ‚é


ƒXƒeƒbƒv‚QF“ǂݍž‚Ý•¶Žš‚ðƒAƒXƒL[ƒR[ƒh‚É•Ï‚¦‚é
@¡‚©‚çì‚éread_sent/1‚Ì’†‚ł́A‚Ü‚¸‰æ–Ê‚©‚ç“ǂݍž‚ñ‚¾•¶Žš‚ð‹@ŠB‚ŏˆ—‚·‚éƒA
ƒXƒL[ƒR[ƒh‚É’¼‚³‚È‚¯‚ê‚΂Ȃç‚È‚¢B‚»‚ê‚É‚Í‘g‚ݍž‚݊֐”get0/1‚ðA‚Ü‚¸Žg‚¤•K—v‚ª‚ ‚éB
 
?- get0(U).
i“ü—Í‘Ò‚¿‚̏ó‘Ô‚É‚È‚é‚Ì‚Å a ‚Ì•¶Žš‚ð“ü—Í‚µ‚ăŠƒ^[ƒ“ƒL[‚ð‘ł‚Ɓj
U = 97



ƒXƒeƒbƒv‚RFˆ—ŠÖ”‚É‚Í‚Ç‚ñ‚Ȉø‚«”‚ª•K—v‚©
@•¶Žš‚ªW‚Ü‚Á‚Ä’PŒê‚ðì‚èA’PŒê‚ªW‚Ü‚Á‚āA•¶‚ðì‚é‚Æ‚¢‚¤ŠK‘w\‘¢‚ª‚ ‚é‚̂ŁA
get0/1‚É‚æ‚Á‚ēǂݍž‚܂ꂽƒAƒXƒL[ƒR[ƒh‚ð—˜—p‚µ‚ÄŽÀÛ‚É•¶‚ðì‚Á‚Ä‚¢‚­ŠÖ”‚É
‚́A
‚Pj“ǂݍž‚ñ‚¾ƒAƒXƒL[ƒR[ƒh‚ð“ü—͈ø‚«”‚É‚Æ‚Á‚Ä‹æ•Ê‚·‚ׂ«•¶Žš‚ÌŽí—ނɂ‚¢
    ‚Ä”»’f‚·‚é‚Æ‚±‚ëA
‚Qjì¬’†‚Ì’PŒê‚ð’~‚¦‚é‚Æ‚±‚ëA
‚Rjì¬’†‚Ì•¶‚ð’~‚¦‚é‚Æ‚±‚ëA
‚SjÅI“I‚ÉŠ®¬‚µ‚½•¶‚ð•Ô‚·‚Æ‚±‚ë‚ÌŒv‚S‚‚̈ø‚«”‚ª•K—v‚ɂȂ邾‚낤B

ƒXƒeƒbƒv‚SFì‹Æ‚Ì—¬‚ê
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‚·‚Æ‚±‚ë

‰Šúó‘ԁ@@F’PŒêì¬ƒXƒ^ƒbƒNA•¶ì¬ƒXƒ^ƒbƒN‚Æ‚à‚©‚ç‚Å‚ ‚éB
’ʏí‚Ì•¶Žš@F’PŒêì¬ƒXƒ^ƒbƒN“à‚̃R[ƒhŒQ––‚É‚»‚Ì•¶Žš‚̃R[ƒh‚ð‚‚¯‘«‚·B
‹ó”’(32)     F’PŒêì¬ƒXƒ^ƒbƒN‚Ì’†‚̃R[ƒhŒQ‚ð’PŒêi•¶Žšj‚É•Ï‚¦A•¶ì¬ƒXƒ^ƒbƒN
               “à‚Ì’PŒêŒQ‚Ì––‚ɂ‚¯‘«‚·B‚»‚ÌŒ‹‰Ê’PŒêì¬ƒXƒ^ƒbƒN‚Ì’†‚́A‚©‚ç‚É‚È        
               ‚éB@@
ƒsƒŠƒIƒh(46) F’PŒêì¬ƒXƒ^ƒbƒN‚Ì’†‚̃R[ƒhŒQ‚ð’PŒêi•¶Žšj‚É•Ï‚¦A•¶ì¬ƒXƒ^ƒbƒN
               “à‚Ì’PŒêŒQ‚Ì––‚ɂ‚¯‘«‚µ•¶‚ðŠ®¬‚·‚éB‚³‚ç‚ɁA‚»‚ÌŠ®¬‚µ‚½•¶‘S‘Ì‚ð
               ÅIŒ‹‰Ê‚ð•Ô‚·‚Æ‚±‚ë‚Ɉڂ·B

%%%%%%%%%%%% •¶“ǂݍž‚݃vƒƒOƒ‰ƒ€iC³–³‚µ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‚̓gƒbƒvƒŒƒxƒ‹ŠÖ”B‚Ü‚¸get0/1‚ňꕶŽš“Ç‚ñ‚ŁA‚»‚ê‚ðŽÀÛ‚ɏˆ—‚·‚é
   ŠÖ”read_in/4‚É‘—‚éB‚È‚¨Aread_in/4‚̈ø‚«”‚́A‘O‚©‚çA‚Pj”»’f‚Ì‚½‚ß‚Ì•¶Žš
   ƒR[ƒh‚ðŽóŒp‚®‚Æ‚±‚ëA‚Qj’PŒê‚ðì‚é‚Æ‚±‚ëA‚Rj•¶‚ðì‚é‚Æ‚±‚ëA‚SjÅIŒ‹‰Ê‚ð
   •Ô‚·‚Æ‚±‚ë‚É‘Š“–‚·‚éB
‡EƒR[ƒh46‚́AƒsƒŠƒIƒhB‚µ‚½‚ª‚Á‚āA‚»‚ê‚Ü‚Åreadin/3‚Ì‘æ‚Qˆø‚«”‚É’~‚¦‚ç‚ê‚Ä‚¢
  ‚½ƒR [ƒhƒŠƒXƒg‚ð‘gž‚ݏqŒêname/2‚Å’PŒê‚É•Ï‚¦A‚Å‚«‚½’PŒê‚ð‚»‚ê‚Ü‚Å‘æ‚Rˆø‚«”
  ‚É’~‚¦‚ç‚ê‚Ä‚¢‚½’PŒêƒŠƒXƒg‚Ì––‚É‘gž‚ݏqŒêappend/3‚ŘAŒ‹‚µ•¶‚ðŠ®¬‚·‚éBŠ®¬‚µ  
  ‚½•¶‚ð‘æ‚Sˆø‚«”‚É•Ô‚µAI—¹‚·‚éB‚±‚ꂪI—¹ðŒB
‡FƒR[ƒh32‚́A‹ó”’B‚µ‚½‚ª‚Á‚āA‚»‚ê‚Ü‚Åreadin/3‚Ì‘æ‚Qˆø‚«”‚É’~‚¦‚ç‚ê‚Ä‚¢‚½ƒR
   [ƒhƒŠƒXƒg‚ð‘gž‚ݏqŒêname/2‚Å’PŒê‚É•Ï‚¦A‚Å‚«‚½’PŒê‚ð‚»‚ê‚Ü‚Å‘æ‚Rˆø‚«”‚É’~
   ‚¦‚ç‚ê‚Ä‚¢‚½’PŒêƒŠƒXƒg‚Ì––‚É‘gž‚ݏqŒêappend/3‚ŘAŒ‹‚·‚éBƒR[ƒhƒŠƒXƒg‚ð’~‚¦
   ‚Ä‚¢‚½‘æ‚Qˆø‚«”‚͏‰Šúó‘Ô‚·‚È‚í‚¿‹óƒŠƒXƒg‚É–ß‚·B‘æ‚Sˆø‚«”‚͕ω»‚µ‚È‚¢B‚±‚Ì
   V‚µ‚¢ðŒ‚Ì‚à‚Ƃɍēxget0/1‚Å•¶ŽšƒR[ƒhƒŠƒXƒg‚ð“ǂ݁Areadin/3‚ðÄ‹A“I‚ÉŒJ‚è
   •Ô‚·B
‡GƒR[ƒh13‚͉üsƒL[B‡A‚Æ“¯‚¶ˆ—‚ð‚µA‘gž‚ݏqŒênl/0‚щƒCƒ“ƒtƒB[ƒh‚·‚éB
‡H‚±‚±‚ŏˆ—‚·‚é‚̂́A‚»‚êˆÈŠO‚̓ǂݍž‚Ý•¶Žš‚·‚È‚í‚¿ƒAƒ‹ƒtƒ@ƒxƒbƒg‚Å‚ ‚éB“Ç‚ñ‚¾  
  •¶Žš‚̃R[ƒh‚ð‘gž‚݊֐”append/3‚Å‚»‚ê‚Ü‚Å‚É“Ç‚Ü‚ê‚āA‘æ‚Qˆø‚«”‚É’~‚¦‚ç‚ꂽƒR
  [ƒhƒŠƒX•t‚¯‰Á‚¦‚éB‘æ‚RA‘æ‚Sˆø‚«”‚͕ω»‚µ‚È‚¢B‚±‚̐V‚µ‚¢ðŒ‚Ì‚à‚Ƃɍēx
  get0/1‚Å•¶ŽšƒR[ƒhƒŠƒXƒg‚ð“ǂ݁Areadin/3‚ðÄ‹A“I‚ÉŒJ‚è•Ô‚·

%%%%%%%%%%%% •¶“ǂݍž‚݃vƒƒOƒ‰ƒ€with 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‚ðŒ³‚É–ß‚·‚½‚ß‚Ì‚à‚Ì‚Å‚ ‚钐‚PB ‡J‚͇H‚̍ì‹Æ‚Ì‚¿‚傤‚Ç‹t‚Å‚ ‚èA’PŒê‚ðì‚Á‚Ä‚¢‚é“r’†‚Å•¶Žš‚ðˆê‚–߂Á‚ďÁ‚·ê‡‚Å‚ ‚éB ’‚PFput/1‚́AƒAƒXƒL[ƒR[ƒh‚ð“ü‚ê‚é‚Æ‚»‚Ì•¶Žš‚ð‰æ–ʂɑł‘gž‚݊֐”‚Å‚ ‚éB
i‚Qj‘啶Žš¬•¶Žš‚̏ˆ—
ƒˆ[ƒƒbƒpŒ¾Œê‚Ì•\‹L–@‚Å‚ÍŒ´‘¥‚Æ‚µ‚Ä•¶“ª‚͑啶Žš‚ÅŽn‚Ü‚éB‚»‚Ì‚½‚߁A‚½‚Æ‚¦‚ÎIs he a student ? ‚Æ He is a student. ‚Ì“ñ•¶‚ð”äŠr‚µ‚Ä‚í‚©‚é‚悤‚ɁA“¯‚¶’PŒê is ‚Æ he ‚ªˆê•û‚ł͑啶Žš‚ňê•û‚͏¬•¶Žš‚ÅŽn‚Ü‚éŒ`‚ÅŽg‚í‚ê‚邱‚Æ‚ª‚æ‚­‹N‚±‚éB‚µ‚©‚µ‹@ŠBã‚Å‚Í•¶Žš‚̓AƒXƒL[ƒR[ƒh‚ŏˆ—‚³‚ê‚Ä‚¢‚邽‚߁A‚±‚Ì‚Ü‚Ü‚Å‚Í‚½‚Æ‚¦‚Î is‚ÆIs‚Í“¯‚¶’PŒê‚Å‚ ‚é‚Æ”FŽ¯‚³‚ê‚È‚¢B‚±‚Ì‚½‚߁A‚Ç‚¿‚ç‚©‚É“ˆê‚µ‚Ä‚â‚é•K—v‚ª‚ ‚éBˆê”ÔŠÈ’P‚Ȃ̂́A‚·‚ׂĂ̒PŒê‚ð¬•¶Žš‚Å“o˜^‚µA‘啶Žš‚ÅŽn‚Ü‚éŒê‚ªŒ»‚ꂽê‡‚́A‚»‚ê‚ð¬•¶Žš‚É’¼‚·‚±‚Æ‚Å‚ ‚éB‚»‚±‚ŁAƒŠƒXƒg‚Ì—v‘f‚Ì’†‚̑啶Žš‚ÅŽn‚Ü‚é’PŒê‚ð¬•¶Žš‚É’¼‚·ˆÈ‰º‚̂悤‚Ȋ֐” letter_check/2 ‚ð’è‹`‚µ‚Ă݂悤B
?-letter_chek([*Is*,he,a,student],X).
X=[is,he,a,student]

l‚¦•ûF
‚Ü‚¸ƒŠƒXƒg‚Ì’†‚©‚çÅ‰‚Ì•¶Žš‚ðŽæ‚èo‚µA‚»‚ê‚ðˆê“xƒAƒXƒL[ƒR[ƒh‚ɂ΂炵‚āA‚»‚̍ŏ‰‚̃R[ƒh‚ª‘啶Žš‚̃R[ƒh‚Å‚ ‚ê‚΁A‚»‚ê‚ð¬•¶Žš‚̃R[ƒh‚É•ÏŠ·‚µA‚»‚¤‚Å‚È‚¯‚ê‚΂»‚Ì‚Ü‚Ü‚É‚·‚ê‚Ηǂ¢B‚±‚ê‚ðƒŠƒXƒgˆ—‚ÌŽè–@‚ŁAÄ‹A“I‚ÉŒJ‚è•Ô‚¹‚Ηǂ¢BI—¹ðŒ‚́AƒŠƒXƒg‚ª‹ó‚É‚È‚Á‚½‚Æ‚«‚Å‚ ‚éB
•¶Žš‚ðƒR[ƒh‚ɂ΂炷F‘gž‚ݏqŒêname/2‚ðŽg‚¤B
?-name(*He*,X).
X=[72,101]

‘啶Žš¬•¶Žš‚Ì•ÏŠ·FƒAƒXƒL[ƒR[ƒh ‚́A‘啶Žš‚`|‚yF‚U‚T|‚X‚OA¬•¶Žš‚|‚šF‚X‚V|‚P‚Q‚Q.B‚µ‚½‚ª‚Á‚āA‘啶Žš‚̃R[ƒh‚É‚R‚Q‚ð‘«‚¹‚΁A¬•¶ŽšƒR[ƒh‚É•ÏŠ·‚Å‚«‚éB
ƒŠƒXƒg‚ðÄ‹Aˆ—F“ü—͈ø‚«”‚ð[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([],[]) :- !.

i‚Rj’ZkŒ`ˆ—
I*mHe*s You*re“™‚Ì‚¢‚í‚ä‚é’ZkŒ`‚à“ü—͏ˆ—‚̍ۂ̖â‘è“_‚̈ê‚‚ł ‚éBŽ«‘‚ɂ́Ai,you,he,am,are,is “™‚Ì’PŒê‚Í“o˜^‚³‚ê‚Ä‚¢‚邪A’ZkŒ`Ž©‘͈̂ê‚‚̒PŒê‚Å‚àA‚Ü‚µ‚Ä‚â‹å‚Ȃǂ̍\¬‘f‚Å‚·‚ç‚È‚¢‚̂ŁAŽ«‘‚É“o˜^‚·‚邱‚Ƃ́A‚Å‚«‚È‚¢B‚©‚Æ‚¢‚Á‚āA‚»‚ê‚ð‚ЂƂ‚‹K‘¥‰»‚·‚é‚ƔɎG‚ŁA‘債‚ĈӖ¡‚Ì–³‚¢‹K‘¥‚ª‘‚¦‚Ä‚µ‚Ü‚¤B‚»‚±‚ŁA’ZkŒ`‚́A•ªÍ‚É“ü‚é‘O‚É‚ ‚ç‚©‚¶‚ß’Zk‚³‚ê‚È‚¢Œ`‚É’¼‚µ‚Ä‚â‚éB‚»‚Ì‚½‚߂ɂ͈ȉº‚̂悤‚Ȋ֐”Acontraction/2‚ª•K—v‚Æ‚È‚éB
?-contraction([*you**re*, my, friend],X).
X=[you,are, my, friend]

l‚¦•ûF
‚Ü‚¸ƒŠƒXƒg‚Ì’†‚©‚çÅ‰‚Ì•¶Žš‚ðŽæ‚èo‚µA‚»‚ꂪA’ZkŒ`‚Æ‚µ‚Ä“o˜^‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©’²‚ׂéB“o˜^‚³‚ê‚Ä‚¢‚ê‚΁A‚»‚ꂪA‚Ç‚¤•ª‰ð‚³‚ê‚é‚©’²‚ׁA’ZkŒ`‚ð•ª‰ð‚³‚ê‚½Œ`iˆÈ‰º•ª‰ðŒ`‚ƌĂԁj‚É–ß‚·B‚à‚µ’ZkŒ`‚Å‚È‚¯‚ê‚΂»‚Ì‚Ü‚Ü‚É‚·‚ê‚Ηǂ¢B‚±‚ê‚ðƒŠƒXƒgˆ—‚ÌŽè–@‚ŁAÄ‹A“I‚ÉŒJ‚è•Ô‚¹‚Ηǂ¢BI—¹ðŒ‚́AƒŠƒXƒg‚ª‹ó‚É‚È‚Á‚½‚Æ‚«‚Å‚ ‚éB
’ZkŒ`‚Ì“o˜^‚̍ۂɖâ‘è‚Æ‚È‚é‚̂́A’ZkŒ`‚Æ•ª‰ðŒ`‚ÌŠÔ‚É‚ ‚éŠÖ˜A‚ð‚Ç‚¤‚‚¯‚é‚©‚Å‚ ‚éBˆê‚‚̂â‚è•û‚́A‚»‚ꂼ‚ê•ÊX‚ɁA‚µ‚©‚µ“¯‚¶‡˜‚Å“o˜^‚µ‚Ä‚¨‚«A–â‘è‚Æ‚È‚éŒ`‚ªA’ZkŒ`ƒŠƒXƒg‚̉½”Ô–Ú‚É‚ ‚é‚©‚𒲂ׁA‚»‚Ì“¯‚¶‡”Ԃ̏Š‚É“o˜^‚µ‚Ä‚ ‚镪‰ðŒ`‚ðŽæ‚èo‚·‚Æ‚¢‚¤•û–@‚Å‚ ‚éB
‚ ‚é—v‘f‚ªƒŠƒXƒg‚̉½”Ô–Ú‚É‚ ‚é‚©‚𒲂ׂéŠÖ”Fnth_member/3
?-nth_member([a,b,c,d,e,f,g,h,i,j,k,l], X,g).
X=7

ƒŠƒXƒg‚Ìn”Ô–Ú‚É‚ ‚é—v‘f‚ðŽæ‚èo‚·ŠÖ”Fnth_pick_up/3
?-nth_pick_up([a,b,c,d,e,f,g,h,i,j,k,l],7,X).
X=g

%%%%%%%%%%%%%%%% ’ZkŒ`‚̏ˆ— %%%%%%%%%%%%%%%%%%%%%
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).

% ’ZkŒ`‚Ì“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']).
% ’ZkŒ`‚ð•ª‰ð‚µ‚½‚à‚́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]]).

% ƒŠƒXƒg‚̉½”Ô–Ú‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚é‚©’²‚ׂé
nth_member([H|T],1,H):-!.
nth_member([X|T],N1,H):-!,
     nth_member(T,N,H),
     N1 is N +1.
% ƒŠƒXƒg‚Ì‚Ž”Ô–Ú‚Ì—v‘f‚ðŽæ‚è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).

i‚Sj“ü—͏ˆ—‚̃gƒbƒvƒŒƒxƒ‹ŠÖ”

ÅŒã‚Ɉȏã‚Ì‚R‚‚̊֐”‚ð•â•ŠÖ”‚Æ‚µ‚ČĂяo‚·ƒgƒbƒvƒŒƒxƒ‹ŠÖ”in_put/1‚ð’è‹`‚·‚éB
in_put(X):-
     read_sent(S1),
     letter_check(S1,S2),
     contraction(S2,X).

Ž©‘RŒ¾Œêˆ—‚»‚Ì‚P

•¶–¬Ž©—R•¶–@(context free grammar)
—LŒÀ‚Ì‹K‘¥‚ŁAlŠÔ‚́i—˜_“I‚ɂ́j–³ŒÀ‚ÌŒ¾Œê¶¬”\—Í‚ðà–¾‚·‚郂ƒfƒ‹‚Ì‘ã•\—á‚Æ‚µ‚Ä‹å\‘¢‹K‘¥‚É‚æ‚Á‚Ä•¶–@‚ð‹Lq‚µ‚悤‚Æ‚·‚é‹å\‘¢•¶–@‚ª‚ ‚éB
‹å\‘¢•¶–@‚ɂ́A—lX‚Ȑ”Šw“I‚È“Á’¥‚ª’m‚ç‚ê‚Ä‚¢‚邪A‚»‚Ì’†‚Å‚à¶•Ó‚É‚½‚Á‚½ˆê‚‚̔ñI’[‹L†‚ðŽ‚¿‚»‚ê‚ð‰E•Ó‚É“WŠJ‚·‚é‚¢‚í‚ä‚镶–¬Ž©—R•¶–@‚ɂ́A¶¬‚³‚ꂽ•¶‚ª‚»‚Ì•¶–@‚©‚çì‚ç‚ꂽ‚à‚Ì‚Å‚ ‚é‚©‚Ç‚¤‚©‚ði‚‚܂èA‚»‚Ì•¶‚Ì•¶–@\‘¢‚ðj—LŒÀŽžŠÔ“à‚É”»’f‚·‚éƒAƒ‹ƒSƒŠƒYƒ€‚ª’m‚ç‚ê‚Ä‚¢‚éB‚±‚±‚ł́A‚½‚Æ‚¦‚΁A Every boy who reads a book writes a program. “™‚Ì•¶‚𕪐͂܂½‚͐¶¬‚·‚邱‚Æ‚Ì‚Å‚«‚é’Pƒ‚È•¶–¬Ž©—R•¶–@‚ðProlog‚Å•\Œ»‚µ‚Ă݂悤B ‚È‚¨AŽg—p‚·‚é—ª†‚̈Ӗ¡‚͈ȉº‚Ì‚Æ‚¨‚è‚Å‚ ‚éB

s:•¶Anp:–¼ŽŒ‹åAvp:“®ŽŒ‹åAoptrel:ƒIƒvƒVƒ‡ƒiƒ‹‚ÈŠÖŒ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)


-->‚Æ‚¢‚¤ƒIƒyƒŒ[ƒ^‚Å‘OŒ‚ƌ㌏‚ð‚‚Ȃ®‚±‚Ì•\‹L‚́A‹å\‘¢‹K‘¥‚»‚Ì‚Ü‚Ü•\Œ»‚Å‚«‚é‚Ì‚Å‚í‚©‚è‚â‚·‚¢‚ªAProlog‚̃VƒXƒeƒ€“à•”‚ł́A’ʏí‚ÌProlog‚Ì•\‹L‚É•ÏŠ·‚³‚ê‰ðŽß‚³‚ê‚Ä‚¢‚éB‚½‚Æ‚¦‚΋K‘¥(1) s-->np,vp.‚Í s(A,C):-np(A,B),vp(B,C).‚É•ÏŠ·‚³‚ê‚éB‚È‚¨A‚±‚±‚ŁAŽg‚í‚ê‚Ä‚¢‚é“ñ‚‚̈ø‚«”‚́Aˆê‚‚̃ŠƒXƒg‚ð‚Q‚‚̕ϐ”‚Å•\‚··•ªƒŠƒXƒg‚Å‚ ‚éB‚µ‚½‚ª‚Á‚āA‹K‘¥(1)‚́Au A-C‚Å•\‚³‚ꂽs‚̘A½‚́AA-B‚Å•\‚³‚ꂽnp‚̘A½‚ÆB-C‚Å•\‚³‚ꂽvp‚̘A½‚ɏ‘‚«Š·‚¦‚ç‚ê‚év‚±‚Æ‚ðˆÓ–¡‚µAƒŠƒXƒg‚ð˜AŒ‹‚·‚éappend/3‚Ì‹@”\‚ª‘gž‚Ü‚ê‚Ä‚¢‚éB
ˆÈ‰ºAã‹L‚Ì•¶–@‚ª‚¢‚©‚É‚µ‚ÄEvery boy who reads a book writes a program.‚Æ‚¢‚¤•¶‚𐶐¬‚·‚é‚©‚ðŽ¦‚·B‰E’[‚̐”Žš‚́A‘Š·‚¦‚̍ۓK—p‚³‚ꂽ‹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õ‚̃gƒbƒvƒ_ƒEƒ“‰ðÍ‚Å‚ ‚éB

Ž©‘RŒ¾Œêˆ—‚»‚Ì‚Q

\•¶‰ðÍŽ÷‚Ì•\Ž¦
•¶–@‚P‚Ìprogram‚ÍEvery,boy, who,reads,a,book,[ ],writes,a,program,[ ].‚̂悤‚È•¶Žš—ñ‚𕶂Ƃµ‚ж¬‚ ‚é‚¢‚Í•ªÍ‚·‚邱‚Æ‚ª‚Å‚«‚½‚ªAŽÀÛ‚ɂ́A‚»‚ÌŒ‹‰Ê‚¾‚¯‚ªŽ¦‚³‚ê‚邾‚¯‚ŁA‚»‚̍ì‹Æ‰ß’ö‚𖾎¦‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢B‚±‚̍ì‹Æ‰ß’ö‚·‚È‚í‚¿•¶‚̍\‘¢‚ð•\Ž¦‚·‚éˆø‚«”‚ð‰Á‚¦A•¶–@‚P‚ðŠg’£‚µ‚Ă݂悤B
‚³‚µ‚ ‚½‚èŽæ‚èo‚µ‚½‚¢\‘¢‚́A‰º‹L‚̂悤‚ȍ\•¶‰ðÍŽ÷‚Å‚ ‚邪Aƒf[ƒ^‚Æ‚µ‚ẮA‚±‚̍\‘¢Ž÷‚É“™‰¿‚̍\‘¢ƒŠƒXƒg‚ðì‚邱‚Æ‚É‚·‚éB‚±‚̃ŠƒXƒg‚́A“K“–‚È•\Ž¦—pƒvƒƒOƒ‰ƒ€‚Æ•¹—p‚·‚ê‚΂¢‚‚łàŽÀÛ‚̍\‘¢Ž÷‚É•ÏŠ·‚Å‚«‚éB
\‘¢Ž÷‚PF
                           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ƒ‹‚Å‚ ‚é•êß“_‚Æ‚»‚Ì•êß“_‚ÉŽx”z‚³‚ê‚é‚P‚ˆȏã‚Ì–º‚Ì•”•ª–Ø‚©‚ç‚È‚Á‚Ä‚¢‚éB‚µ‚½‚ª‚Á‚āA•êß“_‚ð‘æˆêˆø‚«”‚Æ‚µA–º’B‚̍\‘¢‚ð‚Q‚–ڈȍ~‚̈ø‚«”‚Æ‚µ‚趂©‚珇‚É‚È‚ç‚ׂ½ƒŠƒXƒg‚É‚æ‚Á‚č\‘¢–Ø‚ÌŽ‚\‘¢‚ð•\Œ»‚·‚邱‚Æ‚ª‚Å‚«‚éB
\‘¢Ž÷‚P‚̃Cƒ^ƒŠƒbƒN‘Ì‚ÅŽ¦‚³‚ꂽ•”•ª–Ø‚Ì•”•ª‚É’…–Ú‚µA‚±‚Ì•”•ª‚ª‚ǂ̂悤‚ȍ\‘¢ƒŠƒXƒg‚ɑΉž‚µ‚Ä‚¢‚é‚©‚ðŽ¦‚·‚ƈȉº‚̂悤‚É‚È‚é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‚±‚̍\‘¢ƒŠƒXƒg‚̐¶¬‚ªA‹K‘¥‚É‚P‘΂P‚ɑΉž‚µ‚Ä‚¢‚邱‚Æ‚Å‚ ‚éBˆê”Ê‚É•iŽŒ‚ð‹ï‘Ì“I‚ÈŒê‚É“WŠJ‚·‚é‹K‘¥ƒÓ--> [word].‚ª“K‰ž‚³‚ê‚é‚Æ‚«‚É“¯Žž‚É[ƒÓ,word]‚Æ‚¢‚¤\‘¢‚ªì‚ç‚ê‚È‚¯‚ê‚΂Ȃç‚È‚¢B‚»‚Ì‚½‚߁Aˆê”Ê‚ÉŒêœb€–ڂ𐶐¬‚·‚é‹K‘¥ƒÓ--> [word].‚͈ȉº‚̂悤‚ɉü•Ï‚³‚ê‚éB
ƒÓ([ƒÓ,word])--> [word].

‚±‚ê‚ɑ΂µAˆê”Ê‚É•¶–@”Íáe‚¾‚¯‚©‚ç‚È‚é‹K‘¥ƒ¿-->ƒÀ,ƒÁ,ƒÂ...‚̏ꍇ‚́A‰E•Ó‚̍€‚Ì‚»‚ꂼ‚ꂪƒÀ(S1),ƒÁ(S2),ƒÂ(S3)...‚̂悤‚ɍ\‘¢‚̈ø‚«”Sn‚ðŽóŒp‚®‚Æ‚·‚é‚ƍ¶•Ó‚̃¿‚̍\‘¢‚́A[ƒ¿,S1,S2,S3,...]‚Æ‚È‚é‚̂ŁA‹K‘¥ƒ¿-->ƒÀ,ƒÁ,ƒÂ...‚͈ȉº‚̂悤‚ɉü•Ï‚³‚ê‚éB
ƒ¿([ƒ¿,S1,S2,S3,...])--> ƒÀ(S1),ƒÁ(S2),ƒÂ(S3)...

ˆÈ‰º‚Ì•¶–@‚Q‚́A•¶–@‚P‚ɍ\‘¢‚̈ø‚«”‚ð•t‚¯‰Á‚¦‚½‚à‚Ì‚Å‚ ‚éB•Ï”‚̑ΉžŠÖŒW‚𒼊´“I‚É•ª‚©‚è‚â‚·‚­‚·‚邽‚ß‚±‚±‚ł́AŠY“–‚·‚é”Íá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Œ¾Œêˆ—‚»‚Ì‚R

•¶–¬Ž©—R•¶–@‚Ì•â‹­i•¶–@‘f«{•¶–¬Ž©—R•¶–@j
•¶–@‚Q‚́A‰pŒê‚Ì•¶‚𐶐¬‚·‚镶–@‚Æ‚µ‚Ắ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.

‚±‚ê‚ç‚Í‚»‚ꂼ‚êŽåŒê‚Æ“®ŽŒ‚̈ê’viagreementjA‘¼“®ŽŒ‚ÌŠiŽx”zAŠÖŒW‘ã–¼ŽŒ‚ƐæsŽŒ‚̈ê’v‚Ì–â‘è‚Å‚ ‚èA‚»‚ê‚ɂ́A«E”EŠi‚̏î•ñ‚â‚ ‚é–¼ŽŒ‚ªhuman“™‚Ì“Á’è‚̈Ӗ¡Žw•W‚ðŽ‚Á‚Ä‚¢‚é‚©‚̏î•ñ‚ªŠÖŒW‚·‚éB‚±‚ê‚ç‚Ì•¶–@“I‚ȏî•ñ‚𕶖¬Ž©—R•¶–@‚É•t‚¯‰Á‚¦AProlog‚̃†ƒjƒtƒBƒP[ƒVƒ‡ƒ“i’Pˆê‰»j‹@”\‚ð—˜—p‚µ‚Ä‚»‚ê‚ç‚̏î•ñ‚ª‚¨ŒÝ‚¢‚É‹–—e‚µ‚ ‚¤‹K‘¥‚Ì“K—p‚Ì‚Ý‚ð‹–‰Â‚·‚邱‚Æ‚É‚æ‚Á‚āA•¶–¬Ž©—R•¶–@‚ð•â‹­‚·‚邱‚Æ‚ª‚Å‚«‚éBã‹La)-c)‚Ì•¶‚ð”rœ‚·‚邽‚ß‚É‚³‚µ‚ ‚½‚è•K—v‚È•¶–@‘f«‚́AˆÈ‰º‚Ì‚R‚‚ł ‚éB

«iGenderjFmasculine,feminine,neuter
”iNumberjFplural,singluar
ŠiiCasej  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•û‚Å‚ ‚邪A•K—v‚Æ‚³‚ê‚é‘f«‚̐”‚ª‘‘å‚·‚邱‚ƂɑΉž‚·‚邽‚߁A‚Ü‚¸A“o˜^‘f«‘S‘Ì‚ðƒŠƒXƒg‚ÌŒ`‚ł܂Ƃ߂邱‚Æ‚É‚·‚éBi‚±‚̈ø‚«”‚̏‡˜‚Í‚¢‚Á‚½‚ñ‚±‚¤‚ÆŒˆ‚ß‚½‚çƒvƒƒOƒ‰ƒ€‘S‘Ì‚Ì’†‚ňêŠÑ‚³‚¹‚Ä‚¨‚©‚È‚¯‚ê‚΂Ȃç‚È‚¢B–Y‚ê‚é‚ƍ¢‚é‚̂ŃvƒƒOƒ‰ƒ€ã‚Ƀƒ‚‚µ‚Ä‚¨‚¢‚½‚Ù‚¤‚ª‚¢‚¢B(—áF •¶–@‘f«‚Ì“o˜^‡˜‚Í[«,”,Ši,lÌ,lŠÔ]‚Å‚·)j‚±‚Ì‘f«ƒŠƒXƒg‚́A‘æ‚Pˆø‚«”‚Æ‚µ‚Ä’¼Ú“ü—Í‚µ‚Ä‚à—Ç‚¢iŽÀÛ‚»‚Ì•û‚ªŒø—¦‚à—Ç‚¢j‚ªA‚±‚±‚ł̓vƒƒOƒ‰ƒ€‚ðŒ©‚â‚·‚­‚·‚邽‚߁A‘æ‚Pˆø‚«”‚É‚ÍGF“™‚̕ϐ”‚¾‚¯‚ð“ü‚êA‚»‚ÌŽÀÛ‚Ì’l‚́A‘Š·‚¦‹K‘¥‚ÌŒã‚É’è‹`‚·‚邱‚Æ‚É‚·‚éB‘Š·‚¦‹K‘¥‚Ì•”•ª‚Æ‹æ•Ê‚·‚邽‚߁A‚±‚Ì•”•ª‚́A”¼Šp‚Ì”gŠ‡ŒÊi{}j‚ň͂ށBˆÈã‚̎菇‚Å•¶–@‚Q‚Ì‹K‘¥(12)‚Æ(14)‚ð‘‚«Š·‚¦‚é‚ƈȉº‚̂悤‚É‚È‚éB‚È‚¨A‚±‚±‚ł́A•s—v‚ȕϐ”‚́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«ƒŠƒXƒg‚ðŽ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‚́A‘o•û‚ª“¯‚¶ˆø‚«”Num‚ÆPers‚Æ‚ð‹¤—L‚µ‚ ‚¤‚±‚Æ‚É‚æ‚Á‚ĕۏ؂³‚ê‚éB‚È‚¨AŽåŒê‚ªŽåŠi‚Å‚ ‚邱‚Æ‚Ínp‚Ì‘f«ƒŠƒXƒgGF1‚Ì‘æ‚Rˆø‚«”‚Å‚ ‚énom‚É‚æ‚Á‚ÄŽ¦‚³‚êA“®ŽŒ‚É‚æ‚éŽåŒê‚̈Ӗ¡“I‚È‘I‘𐧌À‚́AHum‚Æ‚¢‚¤ˆø‚«”‚Ì‘f«‚É‚æ‚Á‚ÄŽ¦‚³‚ê‚éB
vp(GF1,[*VP,TV,NP])  -->  tv(GF1,TV),np(GF2, NP),
           {GF2=[_,_,acc,_,_]}.                               .......(5)      

”ñ•¶b)‚Å–â‘è‚Æ‚È‚Á‚½‘¼“®ŽŒ‚Ì–Ú“IŒê‚ª–Ú“IŠi‚Å‚ ‚邱‚Ƃ́A‹K‘¥(5)‚̉E•Ó‚É‚ ‚énp‘f«ƒŠƒXƒgGF2‚Ì‘æ‚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‘𐧌À‚́A‹K‘¥i7j‚Ì‘f«ƒŠƒXƒg‚Ì‘æ‚Sˆø‚«”Hum‚̈ê’v‚É‚æ‚Á‚ÄŽ¦‚³‚ê‚éB‚È‚¨AŽåŠiŠÖŒW‘ã–¼ŽŒ‚Æ“®ŽŒ‹å‚̊Ԃɂ́AŽåŒêE“®ŽŒŠÔ‚Æ“¯‚¶ˆê’v‚ª•K—v‚Æ‚È‚é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)
% ‚RlÌ’P”‚Å‚Í‚È‚¢‚±‚Æ‚ÌŠm”F
not_sg3([_,sing,_,1|_]).           % ‚PlÌ’P” 
not_sg3([_,sing,_,2|_]).           % ‚QlÌ’P”
not_sg3([_,plur|_]).              % •¡”

Ž©‘RŒ¾Œêˆ—‚»‚Ì‚S

Ž«‘‚Ì‹Lq‚ðŠÈ—ª‰»‚·‚éŽè–@
•¶–@‚R‚ÌŽ«‘€–Ú‚Ì‹Lq‚ðŒ©‚é‚Ɓ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Ž«‘€–Ú‚Ì‹Lq‚ðŠÈ—ª‰»‚·‚é•û–@‚ɂ‚¢‚čl‚¦‚éBŽ«‘‚É’PŒê‚ð“o˜^‚·‚éÛ•K—v‚Æ‚È‚é‚̂́A“o˜^’PŒê‚ÌŒêŒ`‚¨‚æ‚Ñ‚»‚Ì’PŒê‚ÌŽ‚•¶–@‘f«‚Å‚ ‚éB

•¶–@‘f«ƒŠƒXƒg‚̃pƒ^[ƒ“‰»‚ÆŽQÆ”ԍ†‚Ì•t—^
‚Ü‚¸•¶–@‘f«‚ɂ‚¢‚Ä‚Å‚ ‚邪A‚»‚Ì‘½‚­‚Í’PŒê‚Ì•iŽŒ‚ªŒˆ‚܂邱‚Æ‚É‚æ‚Á‚ÄŽ©“®“I‚ÉŒˆ‚Ü‚èA‘S‘Ì‚Æ‚µ‚Ä‚àˆê’è‚̃pƒ^[ƒ“‚É”[‚Ü‚é‚Ì‚ª•’Ê‚Å‚ ‚éB‚½‚Æ‚¦‚΁A•’Ê–¼ŽŒ‚̏ꍇCase‚ª–¢’è‚Å‚ ‚邱‚Æ‚¨‚æ‚ÑPerson‚ª3‚Å‚ ‚邱‚Ƃ́A•iŽŒ‚©‚玩“®“I‚É‚í‚©‚éB–â‘è‚É‚È‚é‚̂́ANumber‚ÆGender‚ÆHuman‚ɂ‚¢‚Ă̏î•ñ‚¾‚¯‚Å‚ ‚éB‚µ‚½‚ª‚Á‚āA‚±‚Ì•”•ª‚̉”\‚È‘g‚ݍ‡‚킹‚©‚ç•K—v‚ƂȂ镁’Ê–¼ŽŒ‚Ì•¶–@‘f«‚̃pƒ^[ƒ“‚ð‚ ‚ç‚©‚¶‚߁AˆÈ‰º‚Ìfeature/2‚̂悤‚Ȋ֐”–¼‚Å“o˜^‚µ‚Ä‚¨‚¯‚΁A‚»‚̂ǂ̃pƒ^[ƒ“‚É‚È‚é‚©‚Æ‚¢‚¤î•ñ‚¾‚¯‚ðŽ«‘“o˜^‚̍ۂɗ^‚¦‚Ä‚â‚邾‚¯‚ŁA•K—v‚È•¶–@‘f«ƒŠƒXƒg‚ðŽæ‚è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ˆø‚«”‚́A‘f«ƒpƒ^[ƒ“‚ɃAƒNƒZƒX‚·‚邽‚߂̐®—”ԍ†‚Å‚ ‚èA‘æ‚Qˆø‚«”‚̃ŠƒXƒg‚É‚Í‚»‚ꂼ‚êA’P”Œ`‚Æ•¡”Œ`‚Ì‘f«‚ª“ü‚Á‚Ä‚¢‚éB’PŒê“o˜^‚̍ۂɒP”Œ`‚Æ•¡”Œ`‚ðˆê‚É“o˜^‚·‚é‚Ù‚¤‚ªA“s‡—Ç‚¢‚̂ŁA‘f«ƒŠƒXƒgfeature/2‚Å‚àˆê‚‚̊֐”‚Å’P”Œ`‚Æ•¡”Œ`‚Ì—¼•û‚Ì‘f«‚ɃAƒNƒZƒX‚Å‚«‚é‚悤‚É‚µ‚Ä‚ ‚éB

‚QjPreterminal Rule‚ÆLexicon‚Ì•ª—£
‘f«ƒpƒ^[ƒ“‚Ì•ª—£“o˜^‚É‚æ‚Á‚āAŽÀÛ‚ÉŽ«‘‚É“o˜^‚·‚镁’Ê–¼ŽŒ‚̃f[ƒ^‚͈ȉº‚̂悤‚É‚È‚éB“o˜^€–ڂ́A“o˜^’PŒê‚ÌŒêŒ`‚»‚Ì‚à‚Ì‚Æ‚»‚Ì’PŒê‚Ì•¶–@‘f«ƒŠƒXƒg‚ðŽQÆ‚·‚邽‚߂̔ԍ†‚ÉŒÀ‚ç‚ê‚éB
% •’Ê–¼ŽŒ‚ÌŽ«‘ƒf[ƒ^
n([book,books],1).
n([program,programs],1).
n([boy,boys],2).
n([girl,girls],3).
n([child,children],4).

Ž«‘‚̃XƒŠƒ€‰»‚̍Ōã‚̃Xƒeƒbƒv‚́A‚±‚̏î•ñ‚©‚çA‹K‘¥(13)‚â(15)‚Æ“¯‚¶‚悤‚ÈŽ«‘ƒŒƒxƒ‹‚̏‘Š·‚¦‹K‘¥‚ð‚ǂ̂悤‚É‚µ‚čì‚é‚©‚Æ‚¢‚¤‚±‚Æ‚Å‚ ‚éB‚³‚«‚قljºü‚ÅŽ¦‚µ‚½‚悤‚ɁA‚±‚ê‚玫‘ƒŒƒxƒ‹‚Ì‹K‘¥‚ł́A“o˜^’PŒê‚Ì•”•ª‚Æ•¶–@‘f«‚Ì•”•ª‚ð‚»‚ê‚¼‚ê•Ï”‚Å’u‚«Š·‚¦‚Ä‚â‚ê‚΁A‹K‘¥Ž©‘Ì‚ðˆê”ʉ»‚·‚邱‚Æ‚ª‰Â”\‚Å‚ ‚éBŒ¾‚¢Š·‚¦‚é‚ƁA‚½‚Æ‚¦‚΁A‹K‘¥(13)‚ɂ́A‚PjŒêŒ`(Word)‚ªbook‚Å‚ ‚蕶–@‘f«(GF)‚ª[n,sing,_,3,-hum]‚Å‚ ‚é‚Æ‚¢‚¤î•ñ‚Ì‘¼‚ɁA‚Qj‚»‚ê‚ç‚̏î•ñ‚ªAn(GF, [*N*,Word]) --> [Word],{ ........ }.‚Æ‚¢‚¤ˆê”ÊŒ`‚Å•\Œ»‚³‚ê‚éðŒ‚ð–ž‚½‚³‚È‚¯‚ê‚΂¢‚¯‚È‚¢‚Æ‚¢‚¤î•ñ‚ðŠÜ‚ñ‚Å‚¢‚é B‚±‚±‚Å‚±‚ÌŒãŽÒ‚̏î•ñ‚ðŒÂX‚ÌŽ«‘ƒŒƒxƒ‹î•ñ‚©‚çØ‚è—£‚µA Preterminal Rule‚Æ‚µ‚Ä“Æ—§‚³‚¹‚Ä‚â‚ê‚΁AŽ«‘ƒŒƒxƒ‹‚ŏ‘Š·‹K‘¥‚ðŒJ‚è•Ô‚·•K—v‚Í‚È‚­‚È‚éBˆÈ‰º‚́A•’Ê–¼ŽŒ‚ÌPreterminal Rule‚Ì—á‚Å‚ ‚éB‚Í‚¶‚ß‚Ì‹K‘¥‚ª’P”Œ`A‚Q‚–ڂª•¡”Œ`‚Ì’PŒê‚Ì•ªÍE¶¬‚É•K—v‚Æ‚È‚é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‚Å‚ ‚éBi“o˜^’PŒê”‚͎኱‘‚¦‚Ä‚¢‚éjB
•¶–@‚Si•”•ª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
% Š¥ŽŒ•Š—LŠi•ŠÖ‘ã
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 Œ`‚Æ“¯‚¶B“o˜^•s—v
pn([her,'-'],10).     % her ‚Ì plŒ` them ‚Í him ‚Ì pl Œ`‚Æ“¯‚¶B“o˜^•s—v
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).

% Š¥ŽŒ•Š—LŠi
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).

‚RjˆÓ–¡‘f«‚̈µ‚¢
•¶–@‚R‚╶–@‚S‚ł͏ȗª‚µ‚½‚ªA‘f«HumanilŠÔ‚Å‚ ‚邱‚Æ‚ðŽ¦‚·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ƒ‚È‚Q’l‘f«‚Å‚Í‚È‚­A‚½‚Æ‚¦‚΁Aread,write‚̂悤‚ȍ‚“x‚È’m“IŠˆ“®‚ð‘O’ñ‚É‚·‚é“®ŽŒ‚âAlike,go‚̂悤‚ɁAŽå‘Ì‚ª¶–½‘Ì‚Å‚ ‚邱‚Æ‚ð‘O’ñ‚É‚·‚é“®ŽŒ‚âAfall,fly‚̂悤‚É‹ï‘Ε¨‚ðŽåŒê‚Æ‚µ‚Ä—v‹‚·‚é“®ŽŒ“™‚ðl—¶‚µhuman,animate,concrete“™‚Ì’iŠK“I‚Å“à•ïŠÖŒW‚É‚ ‚é‘f«‚ª•K—v‚Æ‚È‚éBiŽžŠÔ‚ÌŠÖŒW‚Å‚±‚±‚Å‚Í–â‘è“_‚ðŽw“E‚·‚邾‚¯‚É—¯‚ß‚éBj
‚Sj“o˜^’PŒê‚̈ꗗ•\Ž¦
“o˜^’PŒê”‚ª‘‚¦‚é‚É‚µ‚½‚ª‚¢A“o˜^’PŒê‚ªˆê–Ú‚Å‚í‚©‚é‚悤‚ȃŠƒXƒgƒAƒbƒv‚̏qŒê‚ª‚ ‚é‚Æ•Ö—˜‚Å‚ ‚éBˆÈ‰º‚Ìlist_up_words/0‚́A‘gž‚ݏ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('%%% Žå—v“o˜^’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(' *** Š¥ŽŒ•Š—LŠi:'), det(Det,_),write(Det),write(','),fail.

list_up_words:- nl,
     write(' *** ŠÖŒW‘ã–¼ŽŒ:'), relp(Rel,_),write(Rel),write(','),fail.

list_up_words.

Ž©‘RŒ¾Œêˆ—‚»‚Ì‚T

•“®ŽŒ‚Ì“±“ü
1)“®ŽŒŒ`‘Ô‚ÉŠÖ‚·‚é‘f«
‰pŒê‚Ì•¶‚ɂ͏•“®ŽŒ‚ðŽg‚Á‚½‚à‚Ì‚ª‘½‚¢B“Á‚É‹^–╶‚â”ے蕶‚Ȃǂł́A do‚Ȃǂ̏•“®ŽŒ(auxiliary)‚ª•K—v‚Æ‚È‚é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‚½‚Æ‚¦‚΁AisŒ`‚ðì‚鏕“®ŽŒbe‚Í“®ŽŒ‚ÌŒ»Ý•ªŽŒi‚¢‚í‚ä‚éingŒ`j‚ð—v‹‚·‚é‚̂ɑ΂µAŠ®—¹Œ`‚ðì‚鏕“®ŽŒhave‚͉ߋŽ•ªŽŒ‚ð•K—v‚Æ‚·‚éB‚Ü‚½can,will“™‚Ì—l‘Š‚̏•“®ŽŒimodal auxiliaryj‚Í“®ŽŒ‚ÌŒ´Œ`‚ð—v‹‚·‚éB‚µ‚©‚à‚±‚ê‚ç‚̏•“®ŽŒŽ©‘Ì‚ªA‚Ü‚½A“Á’è‚Ì“®ŽŒŒ`‘Ԃ⊈—pŒ`‚ðŽ‚¿Aã‹L‚̗ᕶa)‚Ìhave‚̂悤‚ɕʂ̏•“®ŽŒ‚Ì’†‚É–„‚ß‚±‚Ü‚ê‚éê‡‚à‚ ‚éB‚½‚¾‚µA‚RlÌ’P”Œ`‚Å‚ ‚é“™‚ÌŠˆ—pŒ`‚ÉŠÖ‚·‚éî•ñ‚Í‚·‚łɐlÌ‚␔‚ÉŠÖ‚·‚é‘f«‚É‚æ‚Á‚Ä‹æ•Ê‚Å‚«‚é ‚Ì‚ÅA‚±‚±‚ŐV‚½‚É“±“ü‚·‚é•K—v‚ª‚ ‚é‚̂́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«‚Å•\‚·•K—v‚ª‚ ‚é‚©‚ç‚Å‚ ‚éB‚±‚¤‚µ‚½‚Qd‚ÌŠÖŒW‚ð•\Œ»‚·‚邽‚߂ɐ”Šw‚̏揜ŒvŽZ‚̈ê”ÊŽ®i—áFa=a/b¥bj‚É‚È‚¼‚炦‚½•\Œ»‚ª‚æ‚­—˜—p‚³‚ê‚éB‚±‚Ì•ûŽ®‚Ì’·Š‚́A—v‹‚·‚é“®ŽŒŒ`‘Ô‚ðƒXƒ‰ƒbƒVƒ…‚̉E‘¤‚·‚È‚í‚¿•ª•ê‚Æ‚µ‚ÄŽæ‚èAŽ©‚ç‚Ì“®ŽŒŒ`‘Ô‚ðƒXƒ‰ƒbƒVƒ…‚̍¶‘¤‚·‚È‚í‚¿•ªŽq‚É‚·‚ê‚΁A—v‹‚³‚ꂽ“®ŽŒŒ`‘Ô‚ªŒ»‚ꂽ‚Æ‚«‚ɁA•ªŽq‚·‚È‚í‚¿Ž©‚ç‚Ì“®ŽŒŒ`‘Ô‚¾‚¯‚ðŒvŽZi‚·‚È‚í‚¿–ñ•ª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‚ði—‘z“I‚Ɂj‚Í‚½‚Á‚½‚Q‚‚̒PƒƒJƒeƒSƒŠ[‚Ì‹[Ž—ŒvŽZŽ®‚Å•\‚·•ûŽ®‚̓JƒeƒSƒŠ[•¶–@‚Ì“`“‚É—R—ˆ‚·‚éB
2)Šˆ—pŒ`‚Å‚ ‚é‚©‚Ç‚¤‚©‚ɂ‚¢‚Ä‚Ì‘f«
“®ŽŒE•“®ŽŒ‚ÉŠÖ‚µ‚Ä‚à‚¤ˆê‚d—v‚É‚È‚é‘f«‚́A‚»‚ꂪŠˆ—pŒ`‚Å‚ ‚é‚©‚Ç‚¤‚©‚Æ‚¢‚¤î•ñ‚Å‚ ‚éBˆê”ʂɁA•“®ŽŒ‚́AlÌ‚␔‚⎞§‚ÉŠÖ‚µ‚ÄŠˆ—p‚µ‚½Œ`‚Å‚È‚¢“®ŽŒ‹å‚ð—v‹‚·‚éBã‚Ì‘f«‚ÅŒ¾‚¦‚΁AƒXƒ‰ƒbƒVƒ…‚̉E‘¤‚É—ˆ‚邱‚Æ‚ª‚Å‚«‚é‚̂́App‚Æppr‚Æinf‚Å‚ ‚Á‚āA‚±‚ê‚ç‚Í‚Ç‚ê‚àlÌA”AŽž§‚ÉŠÖ‚µ‚ĉ½‚ÌŒÀ’è‚àŽ‚½‚È‚¢ 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[ƒ^‚ł́A“o˜^‚µ‚â‚·‚¢‚悤‚É‚T‚‚̌êŒ`‚ð—ñ‹“‚·‚邱‚Æ‚É‚·‚éBŒêŒ`‚Ì“o˜^‡‚́A‚RlÌ’P”Œ»ÝŒ`,Œ»ÝŒ`,‰ß‹ŽŒ`,‰ß‹Ž•ªŽŒ,Œ»Ý•ªŽŒ‚Å‚ ‚éB‚È‚¨AŒ´Œ`‚́AŒ»ÝŒ`‚Æ“¯‚¶‚È‚Ì‚ÅŒêŒ`‚Æ‚µ‚Ä‚Í“Á•Ê‚É“o˜^‚·‚é•K—v‚Í‚È‚­A‘f«‚̃Œƒxƒ‹‚Å‚Ì‚Ý‹æ•Ê‚µ‚Ä‚â‚ê‚Ηǂ¢B

tv([reads,read,read,read,reading],19).

“®ŽŒ‚ÌŽ«‘ƒf[ƒ^‚ª•ÏX‚³‚ꂽ‚±‚Æ‚É”º‚¢A‘f«ŽQÆ”ԍ†‚P‚X‚É‚æ‚Á‚ÄŽQÆ‚³‚ê‚é‘f«feature/2‚Ì‘æ‚Qˆø‚«”‚Ì‘f«ƒŠƒXƒg‚Ì—v‘f‚̐”‚àA‚Q‚©‚ç‚U‚É‘‚¦‚éB‘f«ƒŠƒXƒg‚Ì—v‘f‚́A‘O‚©‚珇‚É‚RlÌ’P”Œ»ÝŒ`,Œ»ÝŒ`,‰ß‹ŽŒ`,‰ß‹Ž•ªŽŒ,Œ»Ý•ªŽŒ,Œ´Œ`‚Ì‚U‚‚ł ‚éB
% ˆê”Ê“®ŽŒ‚Ì‘f«:‚RlÌ’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[ƒ^‚©‚ç•K—v‚È’PŒêƒŒƒxƒ‹‚Ì‹K‘¥‚ðì‚邽‚߂ɁA–¼ŽŒ‚ðˆê‚‚¾‚¯Žæ‚鑼“®ŽŒ‚Ìpreterminal rule‚àŽŸ‚̂悤‚ɕύX‚³‚ê‚éB
tv(GF,['TV',Word]) --> [Word],{tv([Word,_,_,_,_],N),
     feature(N,[GF,_,_,_,_,_])}.                          % ‚RlÌ’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)‚RlÌŒ»ÝŒ`‚ÆŒ»ÝŒ`‚ƉߋŽŒ`‚Ì‚Ý‚Ì‚à‚Ì
do
(3) ‚RlÌ’P”Œ»ÝŒ`‚ÆŒ»ÝŒ`‚ƉߋŽŒ`‚ÆŒ»Ý•ªŽŒŒ`‚ÆŒ´Œ`‚ðŽ‚Â‚à‚Ì
have
(4)be“®ŽŒŒ^‚ÌŒêŒ`‚ðŽ‚Â‚à‚Ì
copula‚Æ‚µ‚Ä‚Ìbe,isŒ`‚𓱂­be
(5)‚PŽí—Þ‚ÌŒêŒ`‚µ‚©Ž‚½‚È‚¢‚à‚Ì
to

ˆÈ‰º‚ɂ́A(1)‚É‘®‚·‚鏕“®ŽŒcan‚ÌŽ«‘ƒf[ƒ^‚Æ“o˜^‘f«‚¨‚æ‚Ñpreterminal rule‚ð‚ ‚°‚éBcan‚̃^ƒCƒv‚̏•“®ŽŒ(modal auxiliary)‚́AlÌ‚Ɛ”‚ÉŠÖ‚µ‚āA“Á•Ê‚ÈŽw’è‚ðŽ‚½‚È‚¢‚ªA‚»‚ꂪ•ªŽŒ‚Ƃ͈قȂèAŠˆ—pŒ`‚Å‚ ‚邱‚Ƃ́A‘f«ƒŠƒXƒg‚̍Ōã‚Ì—v‘f‚Å‚ ‚é+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])}.

4j‹å\‘¢‹K‘¥ã‚Å‚Ì“®ŽŒE•“®ŽŒ‚̈µ‚¢
•¶–@‚Ti•”•ª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«ƒŠƒXƒgGF2‚Ì‘æ‚V—v‘f+fin‚ÅŽ¦‚³‚ê‚Ä‚¢‚邱‚Æ‚Å‚ ‚éB‚±‚ê‚Æ‚Í‹t‚ɁA•“®ŽŒ‚ª‰ºˆÊ‚Ìvp‚Ìhead‚Æ‚µ‚ďí‚É”ñŠˆ—pŒ`‚ðŽæ‚邱‚Ƃ́A‰º‚Ì‹K‘¥‚ŁA‰ºˆÊ‚Ìvp‚Ì•¶–@‘f«GF3‚Ì‘æ‚V—v‘f‚ª-fin‚É‚È‚Á‚Ä‚¢‚邱‚Æ‚ÅŽ¦‚³‚ê‚éB‚±‚Ì‹K‘¥‚̉E•Ó‚ƍ¶•Ó‚É“¯‚¶vp‚ª—ˆ‚Ä‚¢‚邱‚Æ‚©‚ç‚í‚©‚é‚悤‚É‚±‚Ì‹K‘¥‚͍ċA“I‚É“K‰ž‚³‚꓾‚é‚̂ŁA•“®ŽŒ‚𕡐”Ž‚•¶‚à¶¬‚·‚邱‚Æ‚ª‚Å‚«‚éBˆê•û“®ŽŒŒ`‘Ô‚ÉŠÖ‚·‚é‘f«‚ɂ‚¢‚ÄŒ¾‚¦‚΁Aaux‚Ì•¶–@‘f«‚Ì‘æ‚U—v‘f‚Å‚ ‚éTens/VFORM‚̃Xƒ‰ƒbƒVƒ…‚̍¶‘¤‚ª‚æ‚èãˆÊ‚Ìvp‚ÉŽóŒp‚ª‚ê‚邱‚Æ‚É‚æ‚Á‚āA p.24‚ÅŽ¦‚µ‚½ƒJƒeƒSƒŠ[•¶–@‚̍l‚¦•û‚ªƒvƒƒOƒ‰ƒ€ã‚Ɉڂ³‚ê‚Ä‚¢‚é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]}.

5jcopula‚Æ‚µ‚Ä‚Ìbe‚̈µ‚¢

ÅŒã‚ɁAcopulai˜AŒ‹ŽŒj‚Æ‚µ‚Ä‚Ìbei‚¢‚í‚ä‚é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‚±‚±‚Å‚±‚Ì“®ŽŒ‚ª‰¹Œ`‚ðŽ‚½‚È‚¢‚±‚Ƃ́A‹K‘¥‚̉E•Ó‚̍¶’[‚̋󃊃Xƒg [ ] ‚É‚æ‚Á‚ÄŽ¦‚³‚ê‚Ä‚¢‚éB
 copula‚Æ‚µ‚Ä‚Ìbe“®ŽŒ(•“®ŽŒ)‚Æ‹¤‹N‚·‚鉹Œ`‚Ì–³‚¢“®ŽŒ
v(GF,['V','[]']) --> [],{GF1=[_,_,_,_,_,none,_]}.

copula‚Æ‚µ‚Ă̏•“®ŽŒbe‚́Anone‚ðŽ‚Á‚½“®ŽŒ‚ð—v‹‚·‚é‚̂ŏ•“®ŽŒ‚É‚àAnone‚ðŠÜ‚ވȉº‚̂悤‚ÈŒn—ñ‚Ì“®ŽŒŒ`‘Ô‘f«‚ð‰Á‚¦‚é•K—v‚ª‚ ‚éB
copula‚Æ‚µ‚Ä‚Ìbei•“®ŽŒj‚Ì“®ŽŒŒ`‘Ô
‘f«€–Ú        —ª†                     ’l
“®ŽŒŒ`‘Ô       VFORM    pres/none,past/none,pp/none,ppr/none,inf/none

be‚ƈê”Ê“®ŽŒ‚Ì‚à‚¤ˆê‚‚̑傫‚ȈႢ‚́Abe‚ª‚æ‚葽‚­‚Ì–¾Ž¦“I‚ÈŠˆ—pŒ`‚ðŽ‚Â‚±‚Æ‚Å‚ ‚éBbe‚̏ꍇA‚RlÌ’P”Œ»Ý‚¾‚¯‚Å‚È‚­A‚PlÌ’P”Œ»ÝA‚P‚¨‚æ‚Ñ‚RlÌ’P”‰ß‹Ž‚àV‚½‚É‹æ•Ê‚·‚é•K—v‚ª‚ ‚éB‚µ‚½‚ª‚Á‚Ä“o˜^‘f«‚̃pƒ^[ƒ“‚âpreterminal rule‚ª‘‚¦‚邾‚¯‚Å‚È‚­AlÌ‚Ɛ”‚Ɉê’è‚̃`ƒFƒbƒN‚ð‰Á‚¦‚éŠÖ”‚Æ‚µ‚āA]—ˆ‚Ìnot_sg3/1‚ɉÁ‚¦AV‚½‚Ésg13/1‚Ænot_sg13/1‚ð‰Á‚¦‚é•K—v‚ªo‚Ä‚­‚éB‚±‚Ì“_‚́AŒ»ÝisŒ`‚𓱂­•“®ŽŒ‚Ìbe‚à copula‚Æ‚µ‚Ă̏•“®ŽŒ be‚à“¯‚¶‚Å‚ ‚éB‚±‚Ì‚Q‚‚Ìbe‚̏ˆ—‚Ì‚½‚ß‚É•K—v‚Æ‚È‚Á‚½ƒvƒƒOƒ‰ƒ€i•”•ª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). % isŒ`‚𓱂­be

% copula ‚Æ‚µ‚Ä‚Ì •“®ŽŒbe ‚Ì‘f«ƒŠƒXƒg
% i‚PlÌ’P”Œ»Ý,‚RlÌ’P”Œ»Ý,Œ»Ý,‚PE‚RlÌ’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

% isŒ`‚𓱂­•“®ŽŒbe‚Ì‘f«ƒŠƒXƒg
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.‚PE‚RlÌ’P”‚Å‚È‚¢‚±‚Æ‚ÌŠm”F‚Ì‚½‚߁Fwere
not_sg13([_,sing,_,2|_]).
not_sg13([_,plur|_]).
% cf.‚PE‚RlÌ’P”‚Å‚ ‚邱‚Æ‚ÌŠm”F‚Ì‚½‚߁F was
sg13([_,sing,_,1|_]).
sg13([_,sing,_,3|_]).


Ž©‘RŒ¾Œêˆ—‚»‚Ì‚U

gˆÚ“®‚µ‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚é\¬‘fh‚̏ˆ—
1)–â‘è‚̏ŠÝ
‚±‚ê‚Ü‚Å‚ÍŽåŠi‚ÌŠÖŒW‘ã–¼ŽŒ‚ðŠÜ‚Þ•¶‚¾‚¯‚ðˆµ‚Á‚Ä‚¢‚½‚ªA‚»‚êˆÈŠO‚ÌŠÖŒW•¶‚Ì’†‚ɂ́AˆêŒ©‚·‚é‚ƁA‚ ‚½‚©‚à•¶‚Ì’†‚Ì—v‘f‚ªAˆÚ“®‚³‚ê‚Ä‚¢‚é‚悤‚ÉŒ©‚¦‚é‚à‚Ì‚ª‚ ‚éB‚·‚È‚í‚¿’ʏí‚Ì•¶‚È‚ç‚Ζ{—ˆ‚ ‚é‚ׂ«‚Æ‚±‚ë‚É‚»‚Ì—v‘f‚ª–³‚­A‚»‚ꂪŠÖŒW‘ã–¼ŽŒ‚Æ‚µ‚Ä•¶“ª‚Ɉړ®‚³‚ê‚Ä‚¢‚é‚悤‚É‚Ý‚¦‚é‚Ì‚Å‚ ‚éB•ÏŒ`•¶–@‚ł́A‚±‚ê‚́A‚¢‚í‚ä‚éwhˆÚ“®‚ƌĂ΂êAˆÚ“®‚µ‚½—v‘f‚́AˆÚ“®Œ³‚ɍ­Õ(traceA’ʏít ‚Æ—ª‚·)‚ðŽc‚·‚Æ‚³‚ê‚éBˆÈ‰º‚É‚»‚Ì—á‚ð‚ ‚°‚éi—á‚PjB‚È‚¨A—á‚Q‚͌ꏇ‚Ì”äŠr‚Ì‚½‚ß‚É‚ ‚°‚½•½–•¶‚̎啶‚Å‚ ‚éB
—á‚PFI know the girl whom he gave [ t ]the book.
—á‚QFHe gave the girl the book.

“¯‚¶—l‚ÈŒ»Û‚́AŽåŠiˆÈŠO‚Ì‹^–⎌‚ðŠÜ‚Þ•¶‚Ì’†‚É‚àŒ©‚ç‚ê‚éB
—á‚RFWho do you like [t ] ?
—á‚SFDo you like her ?

‚»‚à‚»‚à‚¢‚í‚ä‚é•ÏŒ`¶¬•¶–@‚ª’ñ¥‚³‚ê‚Ä—ˆ‚½”wŒi‚É‚Í‚±‚¤‚µ‚½ˆÚ“®‚𔺂¤Œ»Û‚́A’P‚È‚é‹å\‘¢‹K‘¥‚Å•\‚·‚±‚Æ‚ª‚Å‚«‚È‚¢‚Æ‚¢‚¤‘O’ñ‚ª‚ ‚Á‚½B‚µ‚©‚µˆÚ“®‚Æ‚¢‚¤•ÏŒ`‘€ì‚Í”ñí‚É‹­—Í‚È‚à‚Ì‚Å‚ ‚èA‚±‚ê‚É‚æ‚Á‚Ä‚Ù‚Æ‚ñ‚Ç‚·‚ׂĂ̌»Û‚ªà–¾‚Å‚«‚é‚©‚í‚è‚ɁA•¶–@‹K‘¥‚ÉŠÖ‚·‚鐧ŒÀ‚ªŠÉ‚­‚È‚èA‚ ‚é—^‚¦‚ç‚ꂽ•¶‚ª‚»‚ÌŒ¾Œê‚Ì•¶–@‚©‚琶¬‚Å‚«‚é‚à‚Ì‚©‚Ç‚¤‚©‚ð—LŒÀ‚ÌŽžŠÔ“à‚É”»’f‚·‚邱‚Æ‚ª‚Å‚«‚È‚¢ê‡‚à¶‚¶‚邱‚Æ‚Æ‚È‚Á‚½BŽÀÛ‚ɂ́A•ÏŒ`‹K‘¥‚Ì“K—p‚ɂ́A‘å‚«‚ÈðŒ‚ª‰Û‚¹‚ç‚ê‚邱‚Æ‚É‚È‚Á‚½‚ªA‚»‚ê‚É‚µ‚Ä‚àA•ÏŒ`‚́A‚»‚ê‚ð“K—p‰Â”\‚É‚·‚éˆê’è‚ÌðŒ‚ð•K—v‚Æ‚µA‚µ‚½‚ª‚Á‚āAŽè‘±‚«‚̏‡˜‚Ɉˑ¶‚·‚éŽã“_‚ª‚ ‚Á‚½B‚»‚ê‚ɑ΂µA‚±‚ê‚Ü‚ÅŒ©‚Ä—ˆ‚½‚悤‚ȁA‘f«‚É‚æ‚Á‚ЧŒÀ‚³‚ꂽ•¶–¬Ž©—R•¶–@‚Ì‹K‘¥‚ł́A‘f«‚̈ê’v‚͈ê’v‘f«‚ª“Ë‚«‡‚킳‚ꂽ‚Æ‚«‚É‚Í‚¶‚ß‚Ä‹N‚±‚èA‚»‚Ì•ûŒü«‚âˆê’v‚̏‡˜‚É‚ ‚ç‚©‚¶‚ߎw’肪–³‚©‚Á‚½B‹K‘¥‚É•ÏŒ`‚𓱓ü‚·‚é‚Æ‚¢‚¤‚±‚Ƃ́AŒø—¦‚Æ‚¢‚¤ˆÓ–¡‚Å‚àA—˜_“I‚ȈêŠÑ«‚Æ‚¢‚¤ˆÓ–¡‚Å‚àA\•¶‰ðÍã‚̃Aƒ‹ƒSƒŠƒYƒ€‚Æ‚¢‚¤ˆÓ–¡‚Å‚à‘å‚«‚ÈŒã‘Þ‚Å‚ ‚èA‹@ŠBˆ—ã‚Í‚Å‚«‚ê‚Î”ð‚¯‚½‚¢‚±‚Æ‚Å‚ ‚éBˆÈ‰º‚ɂ́AˆêŒ©ˆÚ“®‚É‚Ý‚¦‚錻Û‚ð‚ǂ̂悤‚É‚µ‚āA‹å\‘¢‹K‘¥‚ÌŒ`‚Å•\Œ»‚·‚é‚©‚ɂ‚¢‚čl‚¦‚éB
2)gap‚ÉŠÖ‚·‚é‘f«
ˆÚ“®‚Å‚È‚¢‚Æ‚·‚éŒÀ‚è‚́A‚»‚±‚ɉ½‚©‚ª‚ ‚é‚Ɖ¼’è‚·‚邱‚Æ‚É‚È‚éBã‚Ì—á‚ł́A­Õ‚Æ‚³‚ê‚é‚Æ‚±‚ë‚ÉŒ©‚¦‚È‚¢—v‘figapj‚ª‚ ‚é‚Ɖ¼’è‚·‚éBgap‚́A–{—ˆ‚»‚±‚É‚ ‚é‚ׂ«—v‘f‚Æ“¯‚¶•¶–@‘f«‚ðŽ‚Â‚±‚Æ‚É‚È‚èAŒ©‚¦‚È‚¢\¬‘fi‚·‚È‚í‚¿‹óƒŠƒXƒgj‚ðŽY‚ݏo‚·‹K‘¥‚Ì’†‚Å“±“ü‚³‚ê‚éB‚È‚¨Agap‚Ì•iŽŒ‚Æ‚»‚Ì•¶–@‘f«‚ðˆê‘g‚̃†ƒjƒbƒg‚Æ‚·‚égap‘f«‚́A“ÆŽ©‚̈ø‚«”‚É‚æ‚Á‚Ä‹K‘¥‚Ì’†‚ÅŽóŒp‚ª‚ê‚éBgap‘f«‚́A’ʏí‚̃ŠƒXƒg‚Ì—v‘f‚Æ‚µ‚Ä•\Œ»‚µ‚Ä‚à‚æ‚¢‚ªA‚±‚±‚ł́AŒø—¦“™‚Ì——R‚ŁA·•ªƒŠƒXƒg‚Ì—v‘f‚ÌŒ`‚Å•\‚·‚±‚Æ‚É‚·‚éB
NP-gap‚𓱓ü‚·‚é‹K‘¥‚ð‚ ‚°‚é‚ƈȉº‚̂悤‚É‚È‚éB

np([[gap(np),GF]|GAP]-GAP,GF,['NP/NP','ƒÓ']) --> [].

‘æ‚Pˆø‚«”‚Ìgap‘f«‚͍·•ªƒŠƒXƒg[[gap(np),GF]|GAP]-GAP ‚Å•\‚³‚ê‚Ä‚¢‚邪AŽÀŽ¿“I‚É‚Í[[gap(np),GF]]‚Å‚ ‚éBŠÖ”gap/1‚̈ø‚«”‚Å‚ ‚énp‚É‚æ‚Á‚Ä‚±‚Ìgap‚Ì•iŽŒ‚ª•\Œ»‚³‚êAGF‚ª‘æ‚Qˆø‚«”‚É‚ ‚镶–@‘f«GF‚Æ“¯‚¶•Ï”‚Å‚ ‚邱‚Æ‚É‚æ‚Á‚Ä‚±‚ÌnpŽg‚í‚ê‚éÛ‚Ì•¶–@‘f«‚ªgap‘f«‚Ì’†‚ÅŽóŒp‚ª‚ê‚éBgap‚̍\‘¢‚́Aß“_‚Æ‚µ‚Ēʏí‚ÌNP‚Å‚Í‚È‚­NP/NP‚ªŽg‚í‚ꂵ‚©‚à‚»‚ꂪƒÓ‚ðŽx”z‚·‚邱‚Æ‚É‚æ‚Á‚ÄŽ¦‚³‚ê‚éBi’F\‘¢‚Ì•\‹L‚ɃXƒ‰ƒbƒVƒ…i/j‚ªŽg‚í‚ê‚邱‚Æ‚©‚çAgap‘f«‚́A‚µ‚΂µ‚Îslash‘f«‚Æ‚àŒÄ‚΂ê‚éBj‚Ü‚½A‚±‚ꂪ‰¹Œ`‚ðŽ‚½‚È‚¢Œê‚Å‚ ‚邱‚Ƃ́A‰E•Ó‚̋󃊃Xƒg[ ]‚É‚æ‚Á‚Ä•\‚³‚ê‚éB‚±‚ê‚ɑ΂µA‚½‚Æ‚¦‚Înp‚ðpn‚É“WŠJ‚·‚é‚悤‚Ègap‚ðŠÜ‚Ü‚È‚¢‹K‘¥‚̏ꍇ‚́Agap‘f«‚͋󃊃XƒgGAP-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

‚±‚±‚ł́Agapi³Šm‚ɂ́ANp-gapj‚ðŠÜ‚ލ\‘¢‚ðŽx”z‚·‚éß“_‚ɂ́A‚»‚ê‚𓱓ü‚·‚éß“_NP/NP‚Æ“¯—l‚É/NP‚ª•t‚¯‰Á‚¦‚ç‚ê‚Ä‚¢‚éB/NP‚́Agap‘f«‚ª‹óƒŠƒXƒgi‚ð•\‚··•ªƒŠƒXƒgj‚É‚È‚Á‚½’iŠK‚ŁAã‚Ì—á‚ÅŒ¾‚¦‚Î S/NP‚ªARELP‚ÆŒ‹‡‚µ‚ÄREL‚É‚È‚Á‚½’iŠK‚ŏÁ–Å‚·‚é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‚ª‚ꂽgap‘f«‚Ì’†‚Ì•¶–@‘f«GF2‚ª“¯‚¶•Ï”‚Å‚ ‚邱‚Æ‚É‚æ‚Á‚āAŠÖŒW‘ã–¼ŽŒ‚ª•K—v‚Æ‚³‚ê‚éðŒ‚ð–ž‚½‚·i‚½‚Æ‚¦‚ÎCase‚âHum‚ÉŠÖ‚·‚é‘f«‚ÉŠÖ‚µ‚āj‚±‚Æ‚ª•ÛØ‚³‚ê‚éB‚È‚¨AÅIŒ‹‰Ê‚Æ‚µ‚Ä‚ÌŠÖŒW•¶‚ðŠÜ‚Þ–¼ŽŒ‹å‘S‘Ì‚©‚çAgapî•ñ‚ªÁ‚¦‚½‚±‚Ƃ́Anp‚Ì‘æ‚P—v‘f‚ª‹óƒŠƒXƒgGAP-GAP‚É‚È‚Á‚Ä‚¢‚邱‚Æ‚É‚æ‚Á‚ÄŽ¦‚³‚ê‚éB
‚È‚¨AŽÖ‘«‚Å‚ ‚邪Agap‚̍ŏ¬’PˆÊ‚Í–¼ŽŒ‹å(NP)‚â‘O’uŽŒ‹å(PP)‚Ȃ̂ŁAgap‘f«‚̈ø‚«”‚ðŽ‚Â‚Ì‚Í‹åƒŒƒxƒ‹‚Ì‹K‘¥‚¾‚¯‚Å‚ ‚èAŽ«‘‚ânontermianl rule‚ð•ÏX‚·‚é•K—v‚Í‚È‚¢B
ÅŒã‚ɁAgap‚ðŠÜ‚ލ\‘¢‚ðŽx”z‚·‚éß“_‚É•t‰Á‚³‚ê‚é/NPA/PP“™‚ðì‚èo‚·•”•ª‚̃vƒƒOƒ‰ƒ€‚Ì•”•ª‚ƁA‚»‚ꂪŽg‚í‚ê‚Ä‚¢‚é‰ÓŠ‚̈ê—á‚Æ‚µ‚Ä vp -> tv + np‚Æ‚¢‚¤•¶–¬Ž©—R‹K‘¥‚ɑΉž‚·‚éƒvƒƒOƒ‰ƒ€‚Ì•”•ª‚ð‚ ‚°‚éB

%%% ƒXƒ‰ƒbƒVƒ…ƒJƒeƒSƒŠ[‚̃‰ƒxƒ‹ì¬—p
% ƒ‰ƒxƒ‹“o˜^
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‹^–╶‚Ì‚½‚ß‚É•K—v‚Æ‚È‚é‹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‚𓱓ü‚·‚邽‚ß‚É•K—v‚Æ‚È‚é‹K‘¥‚ð’Pƒ‚È‹å\‘¢‹K‘¥‚Å•\‚·‚ƈȉº‚̂悤‚É‚È‚éB

s-> qpn+s(with NP-gap)

‚±‚±‚Åqpn‚́A‹^–â‘ã–¼ŽŒ‚Ì—ª†‚Å‚ ‚éB‰E•Ó‚Ìs‚Ì‚È‚©‚Ìgap‘f«ƒŠƒXƒg‚ÌŽ‚•¶–@‘f«‚́A‹^–⎌‚Ì•¶–@‘f«‚Ɉê’v‚·‚éB‚à‚µŽåŒê‚Ìnp‚ªƒMƒƒƒbƒv‚É‚È‚Á‚Ä‚¢‚é‚Æ‚«‚́A‚±‚Ìgap‘f«‚ð”}‰î‚É‚µ‚ā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˜^‚µ‚Ä‚â‚é•K—v‚ª‚ ‚éB‚È‚¨Afeature/3‚́AŠ¥ŽŒEŠ—LŠiŠÖŒW‘ã–¼ŽŒ‚Æ‹¤—L‚Å‚«‚é‚̂ŁAV‚½‚É“o˜^‚·‚é•K—v‚Í‚È‚¢B

% ‹^–â‘ã–¼ŽŒ
%%% PRETERMINAL RULE %%%
qpn(GF,['QPN',QPN])-->[QPN], {qpn(QPN,N),feature(N,GF,_)}.

%%% LEXIKON %%%
qpn(who,16).
qpn(what,17). 
qpn(whom,18).

•¶–@‚ÌŠg‘å

‚PjŒ`—eŽŒ‚Ì“±“üi–¼ŽŒ‚Ìadjunct‚⏖q“I—p–@j
    a cute girl  (adjunct)                             She is cute.i–q“I—p–@j
‚Qj•›ŽŒ‹å‚â‘O’uŽŒ‹å‚Ì“±“ü(–¼ŽŒ‚É‚©‚©‚écomplement‚Ü‚½‚Íadjunct‚Æ‚µ‚Ä)
    the destruction of Rom  (complement)             the girl with a telescope  (adjunct)
    the book here (adjunct)
‚Rj•›ŽŒ‹å‚â‘O’uŽŒ‹å‚Ì“±“üi“®ŽŒ‚É‚©‚©‚éê‡j
    I saw (a girl with a telescope).                     I saw (a girl) with a telescope.
‚Sj‘O’uŽŒ‚𔺂¤ŠÖŒ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.
‚Tj–¼ŽŒ‚̏Š—LŠi(possessive)‚ƍ¶Ä‹A‹K‘¥
    Ken*s book
‚Uj‚»‚Ì‘¼‚Ì“ÁŽê\•¶
    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‚Ì‚Í‚¶‚߂ɃWƒƒƒ“ƒv