next up previous
Next: About this document ...


Utilização de DCGs



Utilização de DCGs



Utilização de DCGs



Utilização de DCGs



Utilizando DCGs: Análise sintática de sentenças


sentence(sentence(NP,VP)) --> 
        noun_phrase(NP),
        verb_phrase(VP).

noun_phrase(np(D,N,C)) --> 
        determiner(D),
        noun(N),
        rel_clause(C).
noun_phrase(np(PN)) --> 
        proper_noun(PN).



Utilizando DCGs: Análise sintática de sentenças


verb_phrase(vp(TV,NP)) --> 
        trans_verb(TV),
        noun_phrase(NP).
verb_phrase(vp(IT)) --> 
        intrans_verb(IT).

rel_clause(rc(that,VP)) -->
        [that],
        verb_phrase(VP).
rel_clause(rc([])) --> [].



Utilizando DCGs: Análise sintática de sentenças


determiner(det(every)) --> [every].
determiner(det(a)) --> [a].

noun(noun(man)) --> [man].
noun(noun(woman)) --> [woman].

proper_noun(pn(john)) --> [john].

trans_verb(tv(loves)) --> [loves].

intrans_verb(iv(lives)) --> [lives].



Utilizando DCGs: Transformação de sentenças


:-op(500,xfy,&).
:-op(600,xfy,'->').

sentence(P) --> 
        noun_phrase(X,P1,P),
        verb_phrase(X,P1).

noun_phrase(X,P1,P) --> 
        determiner(X,P2,P1,P),
        noun(X,P3),
        rel_clause(X,P3,P2).
noun_phrase(X,P,P) --> 
        proper_noun(X).



Utilizando DCGs: Transformação de sentenças


verb_phrase(X,P) --> 
        trans_verb(X,Y,P1),
        noun_phrase(Y,P1,P).
verb_phrase(X,P) --> 
        intrans_verb(X,P).

rel_clause(X,P1,(P1&P2)) -->
        [that],
        verb_phrase(X,P2).
rel_clause(_,P,P) --> [].



Utilizando DCGs: Transformação de sentenças


determiner(X,P1,P2,all(X,(P1->P2))) --> [every].
determiner(X,P1,P2,exists(X,(P1&P2))) --> [a].

noun(X,man(X)) --> [man].
noun(X,woman(X)) --> [woman].

proper_noun(john) --> [john].

trans_verb(X,Y,loves(X,Y)) --> [loves].

intrans_verb(X,lives(X)) --> [lives].



Problemas de Busca



Problemas de Busca



Problemas de Busca



Problemas de Busca



Problemas de Busca
Ex:

figure=busca.ps



Problemas de Busca


Problemas de Busca



Problemas de Busca



Problemas de Busca


% mv Top1 to St2 em Sit2
s(Stacks,[St1,[Top1|St2]|Otherstacks]) :- 
% [Top1|St1] e' uma pilha em Sit1
   del([Top1|St1],Stacks,Stacks1), 
% St2 e' uma pilha em Sit1
   del(St2,Stacks1,Otherstacks).


Problemas de Busca



Problemas de Busca



Problemas de Busca



Problemas de Busca





next up previous
Next: About this document ...
Ines de Castro Dutra
2000-01-10