Sisteme Expert

(Deadline: -)

Daca nu sunteti logati exercitiile nu se mai afiseaza.

Reguli DCG

Regulile DCG (Definite clause grammar) pentru Sicstus Prolog sunt o forma de scriere prescurtata a regulilor prolog. Regulile DCG se folosesc in special in prelucrarea limbajului natural. Pentru a defini reguli dcg, vom folosi operatorul special -->.

O regula DCG de forma:

elem --> subelem1, subelem2.
e de fapt o prescurtare pentru
elem(A,C):-subelem1(A,B),subelem2(B,C).
Iar o regula de forma
elem --> [frunza]. % cu sensul ca nu se mai descompune.
e de fapt o prescurtare pentru
elem(A,Codita):-A=[frunza|Codita].

Un exemplu:

prop_simpla --> subst, verb.
subst --> [catelul].
subst --> [pisica].
verb --> [latra].
verb --> [miauna].
Cu outputul:
| ?- prop_simpla(L,[]).
L = [catelul,latra] ? ;
L = [catelul,miauna] ? ;
L = [pisica,latra] ? ;
L = [pisica,miauna] ? ;
no
| ?-