lexicon_type(word).
lexicon_style(X,Y,(phon:[X],Y)).

i --->     synsem:(category:(head:case:nom,
                             subcat:e_list),
                   content:(index: (X,(person:first,
                                       number:sing))),
                   context:(backgr:[(speaker_rel,arg1:X)])).

me --->    synsem:(category:(head:case:(acc;dat),
                              subcat:e_list),
                    content:(index: (X,(person:first,
                                        number:sing))),
                    context:(backgr:[(speaker_rel,arg1:X)])).

she --->   synsem:(category:(head:case:nom,
                             subcat:e_list),
                   content:(index: (X,(person:third,
                                       number:sing;
                                       gender:fem))),
                   context:(backgr:[(female_rel,arg1:X)])).

her --->   synsem:(category:(head:case:(acc;dat),
                              subcat:e_list),
                    content:(index: (X,(person:third,
                                        number:sing,
                                        gender:fem))),
                    context:(backgr:[(female_rel,arg1:X)])).

milk --->  synsem:(category:(head:noun,
                             subcat:e_list),
                    content:(index:(person:third,
                                    number:sing))).

walk --->  synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:nom),
                                       content:index:(X,
                                                      person:first,
                                                      number:sng)
                                                      )]),
                    content:(walk_rel,
                             arg1:X)).

walks --->  synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:nom),
                                       content:index:(X,
                                                      person:third,
                                                      number:sing)
                                                      )]),
                    content:(walk_rel,
                             arg1:X)).

love ---> synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:acc),
                                       content:index: Y),
                                      (category:(head:case:nom),
                                       content:index: (X,
                                                       person:first,
                                                       number:sing)
                                                       )]),
                    content:(love_rel,
                             arg1:X,
                             arg2:Y)).

loves  ---> synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:acc),
                                       content:index: Y),
                                      (category:(head:case:nom),
                                       content:index: (X,
                                                       person:third,
                                                       number:sing)
                                                       )]),
                    content:(love_rel,
                             arg1:X,
                             arg2:Y)).

give ---> synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:dat),
                                       content:index: Z),
                                      (category:(head:case:acc),
                                       content:index: Y),
                                      (category:(head:case:nom),
                                       content:index: (X,
                                                       person:first,
                                                       number:sing)
                                                       )]),
                    content:(give_rel,
                             arg1:X,
                             arg2:Y,
                             arg3:Z)).

gives --->  synsem:(category:(head:vform:fin,
                              subcat:[(category:(head:case:dat),
                                       content:index: Z),
                                      (category:(head:case:acc),
                                       content:index: Y),
                                      (category:(head:case:nom),
                                       content:index: (X,
                                                       person:third,
                                                       number:sing)
                                                       )]),
                    content:(give_rel,
                             arg1:X,
                             arg2:Y,
                             arg3:Z)).



phrase ==>  phon: [A|B],
            synsem:(category:(head:H,
                              subcat:[]),
                    content:C),
            dtr1: (phon:[A],
                   synsem:X),
            dtr2: (phon:B,
                   synsem:(category:(head:H,
	                           subcat:[X]),
                           content:C))
          ; 
            phon: [A|B],
            synsem:(category:(head:H,
                              subcat:Rest),
                    content:C),
            dtr1: (phon:B,
                   synsem:First),
            dtr2: (phon:[A],
                   synsem:(category:(head:H,
                                     subcat:[First|Rest]),
                           content:C))
          ; 
            phon: [A1,A2|B],
            synsem:(category:(head:H,
                              subcat:Rest),
                    content:C),
            dtr1: (phon:B,
                   synsem:First),
            dtr2: (phon:[A1|A2],
                   synsem:(category:(head:H,
                                     subcat:[First|Rest]),
                           content:C)).



feat_ord(phon,synsem).
feat_ord(synsem,dtr1).
feat_ord(dtr1,dtr2).
