Hier die Grammatik von Tina Boegel, die jetzt ordentlich den Dative-Shift kann. Aufgabe: eigene Grammatik anpassen, so dass die folgenden Sätze geparst werden können

Wenn man kein English macht, sondern Deutsch, dann sich an den folgenden Sätzen versuchen.


 


TOY    ENGLISH   CONFIG (1.0)
ROOTCAT  S.
FILES  .
LEXENTRIES   (TOY ENGLISH).
RULES   (TOY ENGLISH).
TEMPLATES   (TOY ENGLISH).
GOVERNABLERELATIONS    SUBJ OBJ OBJ-TH OBL OBL-?+ COMP XCOMP.
SEMANTICFUNCTIONS    ADJUNCT  TOPIC.
NONDISTRIBUTIVES    NUM PERS.
EPSILON   e.
OPTIMALITYORDER     NOGOOD  +PP-by PP-vp .


----
"Datei erstellt von Tina Boegel, modifiziert von Miriam Butt, 21.7.06"

TOY   ENGLISH   RULES (1.0)

   S --> e: (^ TENSE);
 	 (NP: (^ {XCOMP|COMP}* {OBJ|OBJ-TH})= !
	      (^ TOPIC)= !)
 	 (COMMA)
 	 NP: (^ SUBJ)=! 
	     (! CASE)=NOM; 
 	 { VP|VPaux}. 

   VPaux --> AUX {VP|VPaux}.

   VP --> V: ^=!;
 	  ({ NP: (^ OBJ)=! 
		 (! CASE)= ACC
 	    |NP: (^ OBJ) = !
		 (! CASE) = ACC; 
 	     NP:(^ OBJ-TH)= !
		(!CASE) = DAT
 	   | NP:(^ OBJ-TH)= ! "for just the dog was given a bone"
		(!CASE) = DAT}) 
 	  PP*: { ! $ (^ ADJUNCT) 
		 (! PTYPE) = SEM 
		 PP-vp $ o::*    "disprefer vp adjunction"
	       | (^ OBL)= !
	       | (^ OBL-AG) = ! 
		 (! PCASE) =c BY
		 PP-by $ o::*};   "prefer oblique by phrases"
 	  (CP: (^ COMP) =!)
 	  (VPinf: (^ XCOMP) = !).

   NP --> (D) 
 	  N
 	  PP*: ! $ (^ ADJUNCT) 
	       "$: nimm alles aus pp und tu es in die Menge"
	       (! PTYPE) = SEM
	       "PP-local $ o::*". 


   PP --> P
 	  NP: { (^ OBJ) = ! "semantische PPs: er rennt in den Garten"
		(! CASE)= ACC 
		(^ PTYPE) = SEM
	      | ^=! "nichtsemantische PPs: er wartete auf das Buch"
	      }.

   CP --> (C: ^=!)
 	  S: ^=!.

   VPinf --> PARTinf: ^=!;   "'to' etc."
	  VP: ^=!.
----

TOY   ENGLISH   TEMPLATES (1.0)

  
   N-SG(P) = "singular noun"
	  (^ PRED)='P'
	  (^ PERS) ~= 3
	  (^ DEF)
	  @(NUMBER SG).
   N-SG3(P) = "third person noun"
	  (^ PRED) = 'P'
	  (^ PERS) = 3
	  (^ DEF)
	  @(NUMBER SG).
   N-PL(P) = "Plural noun"
	  (^ PRED)='P'
	  "((^ DEF))"
	  @(NUMBER PL).
   N-PRON(P L N) = "Personal pronoun"
	  (^ PRED)= 'P'
	  ~(^ DEF)
	  (^ PERS) = L
	  (^ NUM)= N.
   NAME(P) = "Eigenname"
	  (^ PRED)= 'P'
	  ~(^ DEF)
	  (^ PERS) = 3
	  @(NUMBER SG).
   N-OBJSG(P) = "Object pers. Pronoun"
	  (^ PRED) = 'P'
	  (^ CASE)= ACC
	  ~(^ DEF) 
	  @(NUMBER SG).
   N-OBJPL(P) = (^PRED) = 'P'
	  (^ CASE) = ACC
	  ~(^ DEF)
	  @(NUMBER PL).

   NUMBER(P) = "assigns number"
               (^ NUM)=P.


   INTRANS(P) = (^ PRED)='P<(^ SUBJ)>'. 

   TRANS(P) = @(PASS (^ PRED)='P<(^ SUBJ) (^ OBJ)>'). "@(PASS" 

   OPTTRANS(P) = { @(INTRANS P)|@(TRANS P)}.

   DITRANS(P) = @(PASS @(DAT-SHIFT (^ PRED)='P<(^ SUBJ)(^ OBJ)(^ OBL)>')). 


   PASS(SCHEMATA) = { SCHEMATA 
                  |SCHEMATA 
                   (^ PARTICIPLE)=c PAST
                   (^ OBJ)-->(^ SUBJ)
                   { (^ SUBJ)-->(^ OBL-AG)
                    |(^ SUBJ)-->NULL}}.

   DAT-SHIFT(SCHEMATA) = { SCHEMATA
	    (^ OBL PCASE) =c TO
	   |SCHEMATA
	    (^ OBJ) -->(^ OBJ-TH)
	    (^ OBL)--> (^ OBJ)}.

   V3SG = (^ SUBJ NUM) = SG "Singular, 3.Person"
	  (^ SUBJ PERS) = 3
	  (^ TENSE) = PRES.

   NONV3SG = { (^ SUBJ NUM)=PL "alle anderen Formen"
	    (^ TENSE) = PRES
	   |(^ SUBJ NUM)=SG
	    (^ SUBJ PERS)~=3
	    (^ TENSE) = PRES
	   |(^ VFORM)= inf
	    (^ INF-TYPE) =c to}.

   VPAST = { (^ SUBJ NUM)=PL "alle anderen Formen"
	   |(^ SUBJ NUM)=SG }
	  (^ TENSE) = PAST.

   PRSEM(P) = (^ PRED)='P<(^ OBJ)>' "Semantic Preposition, P requires Object, adjunctPP"
	  (^ PTYPE)=SEM
	  (^ OBJ CASE) = ACC.

   PRNOSEM(P)= (^ PCASE)= P "Nonsematic P, Object of Verb, P assigns Argument"
	  (^ PTYPE)=NOSEM. 

   PART = (^ VFORM)= PARTICIPLE
	  (^ PARTICIPLE) = PAST.   
   ----

TOY   ENGLISH   LEXICON (1.0)


walks 	  V * (^ PRED)= 'WALK<(^ SUBJ)>'
	      (^ SUBJ NUM)=SG
	      (^ SUBJ PERS)=3
	      (^ TENSE)=PRES;
	  N * (^ PRED)='A-WALK'
	      (^ NUM)=PL.
walk 	  V * (^ PRED)='WALK<(^ SUBJ)>'
	      (^ SUBJ NUM) = PL;
	  N * (^ PRED) = 'WALK'.

sleep 	  V * @(INTRANS SLEEP)
	      @NONV3SG.
sleeps 	  V * @(INTRANS SLEEP)
	      @V3SG.

devour 	  V * @(TRANS DEVOUR)
	      @NONV3SG.
devours   V * @(TRANS DEVOUR)
	      @V3SG.

eat 	  V * { @(INTRANS EAT)|@(TRANS EAT)}
	      @NONV3SG.
eats 	  V * { @(INTRANS EAT)|@(TRANS EAT)}
	      @V3SG.
ate 	  V * { @(INTRANS EAT)|@(TRANS EAT)}
	      (^ TENSE)= PAST.
eaten 	  V * @(TRANS EAT)
	      @PART.

killed 	  V * @(TRANS KILL)
	      { @PART
	       |(^ TENSE)= PAST}.


was 	  V * (^ PRED)= 'BE<(^ SUBJ)>' "das ist noch nicht korrekt"
	      (^ SUBJ NUM)=SG
	      { (^ SUBJ PERS)=1
	       |(^ SUBJ PERS)=3} 
	      (^ TENSE)=PAST;
	  AUX * (^ VFORM) =c PARTICIPLE
		(^ TENSE)= PAST
		(^ PASSIVE)= +.

give 	  V * @(DITRANS GIVE)
	      @NONV3SG.

gives 	  V * @(DITRANS GIVE)
	      @V3SG.

gave 	  V * @(DITRANS GIVE)
	      (^ TENSE)= PAST.

given 	  V * @(DITRANS GIVE) 
	      (^ VFORM) = PARTICIPLE
	      (^ PARTICIPLE) = PAST.

like 	  V * @(TRANS LIKE)
	      @NONV3SG.
liked 	  V * @(TRANS LIKE)
	      @VPAST.

leave 	  V * @(INTRANS LEAVE)
	      @NONV3SG.

bark 	  V * @(INTRANS BARK)
	      @NONV3SG.
barks 	  V * @(INTRANS BARK)
	      @V3SG.
barked 	  V * @(INTRANS BARK)
	      (^ TENSE)= PAST.

kick 	  V * { (^ PRED) = 'KICK<(^ SUBJ)(^ OBJ)>'
	      | (^ PRED) = 'KICK<(^ SUBJ)>'}
	      @NONV3SG.
kicks 	  V * { (^ PRED) = 'KICK<(^ SUBJ)(^ OBJ)>'
	      | (^ PRED) = 'KICK<(^ SUBJ)>'}
	      @V3SG.
	      
think 	  V * { (^ PRED)='think<(^ SUBJ) (^ OBJ)>'
	      | (^ PRED)='think<(^ SUBJ) (^ COMP)>'}
	      @NONV3SG.
thinks 	  V * { (^ PRED)='think<(^ SUBJ) (^ OBJ)>'
	      | (^ PRED)='think<(^ SUBJ) (^ COMP)>'}
	      @V3SG.
thought   V * { (^ PRED)='think<(^ SUBJ) (^ OBJ)>'
	      | (^ PRED)='think<(^ SUBJ) (^ COMP)>'}
	      (^ TENSE) = PAST.
persuade  V * (^ PRED) = 'persuade<(^ SUBJ) (^ OBJ) (^ XCOMP)>'
	      (^ XCOMP SUBJ) = (^ OBJ)
	      @NONV3SG.

persuaded V * (^ PRED) = 'persuade<(^ SUBJ) (^ OBJ) (^ XCOMP)>'
	      (^ XCOMP SUBJ) = (^ OBJ)
	      @VPAST.

promised  V * { (^ PRED) = 'promise<(^ SUBJ)(^ OBJ) (^ XCOMP)>'
	       |(^ PRED) = 'promise<(^ SUBJ) (^ XCOMP)>'}
	      (^ XCOMP SUBJ) = (^ SUBJ)
	      @VPAST.
promise   V * { (^ PRED) = 'promise<(^ SUBJ)(^ OBJ) (^ XCOMP)>'
	       |(^ PRED) = 'promise<(^ SUBJ) (^ XCOMP)>'}
	      (^ XCOMP SUBJ) = (^ SUBJ)
	      @NONV3SG.

wanted 	  V * { (^ PRED) = 'want<(^ SUBJ)(^ XCOMP)>'
		(^ XCOMP SUBJ) = (^ SUBJ)
	       |(^ PRED) = 'want<(^ SUBJ)(^ OBJ)(^ XCOMP)>'
		(^ XCOMP SUBJ) = (^ OBJ)}
	      @VPAST.
wants 	  V * { (^ PRED) = 'want<(^ SUBJ)(^ XCOMP)>'
		(^ XCOMP SUBJ) = (^ SUBJ)
	       |(^ PRED) = 'want<(^ SUBJ)(^ OBJ)(^ XCOMP)>'
		(^ XCOMP SUBJ) = (^ OBJ)}
	      @V3SG.

, 	  COMMA * .

Hans 	  N * @(NAME HANS). 

Mary 	  N * @(NAME MARY).

Bill 	  N * @(NAME BILL).

John 	  N * @(NAME JOHN).

I 	  N * @(N-PRON I 1 SG).

you 	  N * { @(N-PRON YOU 2 SG)|@(N-PRON YOU 2 PL) | @(N-OBJSG YOU)}. "!!"

he 	  N * @(N-PRON HE 3 SG).

me 	  N * @(N-OBJSG I).


him 	  N * @(N-OBJSG HE).

her 	  N * @(N-OBJSG SHE).

us 	  N * @(N-OBJPL WE).

them 	  N * @(N-OBJPL THEY).


sheep 	  N * { @(N-SG3 SHEEP)|@(N-PL SHEEP)}.

boy 	  N * @(N-SG3 BOY).

park 	  N * @(N-SG3 PARK).

computer  N * @(N-SG3 COMPUTER).

dog 	  N * @(N-SG3 DOG).

bone 	  N * @(N-SG3 BONE).

table 	  N * @(N-SG3 TABLE).

zoo 	  N * @(N-SG3 ZOO).

cage 	  N * @(N-SG3 CAGE).

woman 	  N * @(N-SG3 WOMAN).

tiger 	  N * @(N-SG3 TIGER).

banana 	  N * @(N-SG3 BANANA).

cake 	  N * @(N-SG3 CAKE).

boys 	  N * @(N-PL BOY).

girl 	  N * @(N-SG3 GIRL).

girls 	  N * @(N-PL GIRL).

beans 	  N * @(N-PL BEAN).



the 	  D * (^ DEF)=+.

a 	  D * (^ DEF)=+
	      (^ NUM)=SG.
              

in        P * @(PRSEM IN).

on 	  P * @(PRSEM ON).

by        P * { @(PRNOSEM BY) | @(PRSEM BY)}. 

to 	  P * @(PRNOSEM TO)
	      (^ CASE) = DAT;
	  PARTinf * "(^ COMP-FORM) = to"
		    (^ INF-TYPE) = to
		    (^ VFORM)=c inf.

"Complementizer"  
that 	  C * (^ COMP-FORM) = that.
----


NB: diese Grammatik enthät auch OT (Optimality Theory) Markierungen. Dies bändigt die PP Parsingmöglichkeiten ein wenig.