Ciao a tutti/e,
mi sono iscritto da poco, sto imparando a usare il PROLOG (ho installato sul mio pc SWI prolog) ma ho problemi ad utilizzare il seguente sistema esperto. Ecco il codice:
/*-------------- SISTEMA ESPERTO SCRITTO IN PROLOG ---------------*/
/*--- Ispirato a "Introduzione Pratica al PROLOG" di Alessandro Mazzetti ---*/
/* ------------- MOTORE INFERENZIALE -------------*/
run :- obiettivo(X), verificato(X), scrivi_risultato(X), !.
run :- scrivi_risultato(non_ho_soddisfatto_alcun_obiettiv o).
verificato( (X,Y) ) :- !, verificato(X), verificato(Y).
verificato( (X;Y) ) :- !, verificato(X); verificato(Y).
verificato( not(X) ) :- !, not(verificato(X)).
verificato(X) :- vero(X), !.
verificato(X) :- falso(X), !, fail.
verificato(X) :- clause(X,Y), verificato(Y), assert(vero(X)), !.
verificato(X) :- poni_domanda(X,s), assert(vero(X)), !.
verificato(X) :- assert(falso(X)), !, fail.
/*--------------- INTERFACCIA UTENTE --------------*/
poni_domanda(X,R) :- not(clause(X,_)), write(X), write('? (s/n): '), read(R), !.
scrivi_risultato(X) :- nl, write(X), write(' !'), nl.
/*--------------- BASE DI CONOSCENZA --------------*/
hai_l_influenza :- hai_preso_freddo, hai_la_febbre, tossisci.
hai_il_raffreddore_da_fieno :- starnutisci, not(hai_preso_freddo), si_e_manifestato_in_primavera.
obiettivo(hai_l_influenza).
obiettivo(hai_il_raffreddore_da_fieno).
FINE FILE.
Il problema è il seguente: dopo aver attivato il programma da terminale con il comando "swipl" e caricato il file "[nomefile]." quando digito "run." mi esce
"ERROR: verificato/1: Undefined procedure: vero/1
Exception: (7) verificato(hai_l_influenza) ?"
E non so che significa.
C'è una persona sul forum che può aiutarmi?
Un saluto.