% LEXICON

word ==> (phon:[pase],synsem:verb);
         (phon:[pepa],synsem:(noun,case:nom));
         (phon:[kozu],synsem:(noun,case:acc)).

% RULE

phrase ==> (phon:append(First,Second),
            ((synsem:s,
              dtrs:(hd_dtr:(phon:Second,
                            synsem:vp),
                    nhd_dtr:(phon:First,
                             synsem:(noun,
                                     case:nom))))
             ;
             (synsem:vp,
              dtrs:(hd_dtr:(phon:First,
                            synsem:verb),
                    nhd_dtr:(phon:Second,
                             synsem:(noun,
                                     case:acc)))))).
        

% RELATION

%    declaration of types in the relation

append(list,list) **> list.

%    definition of the relation 

append([],L) := L.
append([H|T1],L2) := [H|append(T1,L2)]. 

% OUTPUT FORMATTING

%    order of features

feat_ord(phon,synsem).
feat_ord(synsem,dtrs).

%    tree output

ptree_desc(phrase,[dtrs:hd_dtr,dtrs:nhd_dtr]).
ptree_cat('V',(synsem:verb)).
ptree_cat('N',(synsem:noun)).
ptree_cat('S',(synsem:s)).
ptree_cat('VP',(synsem:vp)).


%    phonology identification

phon_feat(phon).
ptree_phon(phrase).

