DEMO   ENGLISH   CONFIG (1.0)
  ROOTCAT   S.
  FILES  .
  LEXENTRIES   (DEMO ENGLISH).
  TEMPLATES (DEMO ENGLISH). 
  RULES   (DEMO ENGLISH).
  GOVERNABLERELATIONS    SUBJ OBJ OBJ2 COMP XCOMP OBL OBL-?+.
  SEMANTICFUNCTIONS    ADJUNCT  TOPIC FOCUS POSS STANDARD.
  NONDISTRIBUTIVES    NUM PERS CONJ-FORM.
  EPSILON   e.
OPTIMALITYORDER NOGOOD.

----

DEMO   ENGLISH   RULES (1.0)

   S --> NP: (^ SUBJ)=!
	     (! CASE)=NOM;
 	 VP: ^=!.

   VP --> (AUX)
 	  V: ^=!; 
 	  (NP: (^ OBJ)=! "direct object"
	       (! CASE)=ACC)
 	  (NP: (^ OBJ2)=! "secondary object"
	       (! CASE)=DAT)
 	  PP*: { ! $ (^ ADJUNCT) 
		" (! PTYPE) =c sem "  "see if we need it"
	       | (^ OBL) = !};
 	  (PP: (^ OBL-TO) = !
	       "example of a constraining equation: require a value with =c"
	       (! PFORM) =c to)
 	  (PP: (^ OBL-AG) = ! 
	       "example of a constraining equation: require a value with =c"
	       (! PFORM) =c by ). 


   NP --> (D)
 	  Adj*: ! $ (^ ADJUNCT);
 	  N. 

   PP --> { P: ^ = ! "head of PP"
	       (! PTYPE) =c sem; 
 	    NP: (^ OBJ) = !
	   |P: ^ = ! "head of PP"
	       (! PTYPE) =c nosem; 
 	    NP: ^ = !} . 

----
DEMO   ENGLISH   TEMPLATES (1.0)

   OPT-TRANS(P) = "template for verbs that can be trans or intrans"
	  { @(TRANS P) 
	  | @(INTRANS P) }. 
	  
 INTRANS(P) = (^ PRED) = 'P<(^SUBJ)>'.

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

"new TRANS Template allowing Passive Lexical Rule"

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

"new DITRANS template, allowing Dative Shift and Passive"
"DITRANS (P) = @(PASS @(DAT-SHIFT (^ PRED)='P<(^ SUBJ) (^ OBJ) (^ OBJ2)>'))."

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

   PASS(SCHEMATA) = { SCHEMATA 
	   |SCHEMATA 
	    (^ PASSIVE) = +
	    (^ PARTICIPLE)=c past
	    (^ OBJ)-->(^ SUBJ)
	    (^ OBJ2) --> (^ OBJ)  "for dative shift"
	    { (^ SUBJ)-->(^ OBL-AG)
	     |(^ SUBJ)-->NULL}}.

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


   VPRES = @(TENSE pres) 
	   @(MOOD indicative). 

   VPAST = @(TENSE past) 
	  @(MOOD indicative). 

   PASTP = (^ PARTICIPLE) = past. 

   BARE-AGR = { (^ SUBJ NUM) = pl "either it is plural"
	  | (^ SUBJ PERS) ~= 3 "or singular and not 3rd person"
	    (^ SUBJ NUM) = sg}.

   S-AGR = (^ SUBJ PERS) = 3  "for verbs in -s"
	  (^ SUBJ NUM) = sg. 
	  
   TENSE(T) = (^ TENSE) = T.  

   MOOD(M) = (^ MOOD) = M.

   PRED(P) = (^ PRED) = 'P'. 

   COUNT-NOUN(P N) = @(PRED P)
	  (^ NUM) = N
	  (^ PERS) = 3
	  (^ NTYPE) = count. 

----

DEMO ENGLISH LEXICON (1.0)

"all nouns here"

girl 	  N * @(COUNT-NOUN girl sg).

bench 	  N * @(COUNT-NOUN bench sg).

bone 	  N * @(COUNT-NOUN bone sg).

bones 	  N * @(COUNT-NOUN bone pl).

"bones 	  N * (^ PRED) = 'bone'
	      (^ NUM) = pl
	      (^ PERS) = 3. "

homework  N * @(COUNT-NOUN homework sg).

zookeeper N *  @(COUNT-NOUN zookeeper sg).

gorilla	  N *  @(COUNT-NOUN gorilla sg).

gorillas  N *  @(COUNT-NOUN gorilla pl).

banana	  N *  @(COUNT-NOUN banana sg).

bananas	  N *  @(COUNT-NOUN banana pl).

dog 	  N *  @(COUNT-NOUN dog sg).

dogs 	  N *  @(COUNT-NOUN dog pl).

"all adjectives here"

small	Adj * @(PRED small). 

smart	Adj * @(PRED smart). 

"all verbs here"

walk 	  V * @(INTRANS walk)
	      @VPRES
	      @BARE-AGR;
	  N * @(COUNT-NOUN walk sg).

"do NOT have duplicate headwords/lexical entries!!!" 
"walk      N * @(COUNT-NOUN walk sg)." 

	      
ate 	  V * @(OPT-TRANS eat) "optionally transitive verbs"
	      @VPAST.

eats 	  V * @(OPT-TRANS eat)
v	      @VPRES
              @S-AGR. 

drinks   V * @(OPT-TRANS drink)
             @VPRES
             @S-AGR. 

devour 	  V * @(TRANS devour) 
              "don't do this, do Lexical Rules instead"
	      "{ (^ PRED) = 'devour<(^SUBJ)(^OBJ)>' | 
		(^ PRED) = 'devour<(^OBJ)(^OBL)>' }"
	      @VPRES
	      @BARE-AGR. 

devours  V * @(TRANS devour) 
	     @VPRES
             @S-AGR.

devoured  V * @(TRANS devour) 
              @VPAST
              @PASTP. 

gave 	  V * @(DITRANS give)
	      @VPAST. 

gives     V * @(DITRANS give)
	      @VPRES
	      @S-AGR.

given     V * @(DITRANS give)
	      @VPAST
	      @PASTP.

sleeps 	  V * @(INTRANS sleep)
	      @VPRES
              @S-AGR. 

sleep 	  V * @(INTRANS sleep)
              @VPRES
              @BARE-AGR.

slept 	  V * @(INTRANS sleep)
	      @VPAST
	      @PASTP.

waited 	  V * {@(INTRANS wait) | @(INTRANS-OBL wait)}
	      @VPAST
	      @PASTP. 


"prepositions"

by 	  P * (^ PFORM) = by "needs to be more complicated" 
	      (^ PTYPE) = nosem. 

to 	  P * (^ PFORM) = to
	      (^ PTYPE) = nosem.

on 	  P * { (^ PRED) = 'on<(^OBJ)>' 
		(^ PTYPE) = sem
	      | (^ PTYPE) = nosem
		(^ PFORM) = on}.

"auxiliaries"

was 	  AUX * @(TENSE past)
		@S-AGR. 

"determiners here"

the  D *  (^DEF) = +.

a  D *  (^DEF) = -
        (^ NUM) = sg.

----