%%% %%% Version DCG de la grammaire avec construction %%% de structures %%% p(ph(SN_Struct,SV_Struct)) --> sn(SN_Struct), sv(SV_Struct), % s'assurer que les SN avant et apràs le verbe sont différents {\+(SV_Struct = svb(_,SN_Struct))}. sn(snm(Det_Struct,N_Struct)) --> det(Det_Struct,Genre), n(N_Struct,Genre). sv(svb(vb(Mot))) --> v(vb(Mot,_),_). sv(svb(vb(Mot),SN_Struct)) --> v(vb(Mot,Comp),transitif), sn(SN_Struct), % vérifier que le complément est sémantiquement acceptable {SN_Struct = snm(_,nm(Nom)), (T =.. [Comp,Nom]), call(T)}. det(dt(le),masculin) --> [le]. det(dt(la),feminin) --> [la]. n(nm(souris),feminin) --> [souris]. n(nm(chat),masculin) --> [chat]. v(vb(mange,proie),transitif) --> [mange]. v(vb(trottine,_),intransitif) --> [trottine]. % la sémantique proie(souris).