ptree_desc(phrase,[dtr1,dtr2]).
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:sing)
                                                      )]),
                    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)).

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

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

phrase ==>  phon: [A|B],
            synsem:category:subcat:[],
            dtr1: phon:[A],
            dtr2: phon:B

          ; phon: [A|B],
            synsem:category:subcat:ne_list,
            dtr1: phon:B,
            dtr2: phon:[A]

          ; phon: [A1,A2|B],
            synsem:category:subcat:ne_list,
            dtr1: phon:B,
            dtr2: phon:[A1,A2].

phrase ==> synsem:content:C, dtr2:synsem:content:C.
phrase ==> synsem:category:head:H, dtr2:synsem:category:head:H.
phrase ==> synsem:category:subcat:Rest,
           dtr1:synsem:First,
           dtr2:synsem:category:subcat:[First|Rest].


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