% %[o,menino,comeu,o,bolo] % s(sn(d(o),n(menino)),sv(v(comeu),sn(d(o),n(bolo)))) % Regras Gramaticais % s --> sn, sv sentenca( S ) :- sintagma_nominal( SN ), sintagma_verbal( SV ), append( SN, SV, S ). % sn --> d, n sintagma_nominal( SN ) :- determinante( D ), nome( N ), append( D, N, SN ). % sv --> vt, sn sintagma_verbal( SV ) :- verbo_transitivo( VT ), sintagma_nominal( SN ), append( VT, SN, SV ). % Lexico % d --> "palavra" %determinante( [uma] ). %determinante( [um]). %determinante( [a] ). determinante( [o] ). % vt --> "palavra" verbo_transitivo( [comeu] ). % n --> "palavra" nome( [menino] ). nome( [bolo] ).