0
:-unknown(trace,fail).

%----------------------- %BASE DES FAITS ETABLIS
%-----------------------
bois.
petite.
metal.
pierre.
grande.

%---------------------- %BASE DES REGLES %----------------------
bois:-petite.
metal:-grande.
pierre:-grande.

% MOTEUR D’INFERENCES
%-----------------------
si(C,P,_) :- C,!,P.
si(_,_,Q) :- Q.

expertiser(L) :-
  si(effacer(L),ecrire_succes(L),ecrire_echec(L)).

effacer([],[]).
effacer([But|AutresButs],[[But|TraceSousButs]|TraceAutresButs]):-
  rule(But,SousButs),
  effacer(SousButs,TraceSousButs),
  effacer(AutresButs,TraceAutresButs).

ecrire_succes(L, Trace) :-
  print_conjonction(L,succes),
  afficher_trace(Trace).

afficher_trace(T) :-
  write('COMMENT : '), nl,    % afficher la trace à partir de la première colonne
  afficher_trace(T,0).
afficher_trace([],_) :- !.

It must be:

?- expertiser([bois]).
le fait bois est etabli

But, it just return false, why ?

false
  • 10,264
  • 13
  • 101
  • 209
bj303931
  • 1
  • 1

0 Answers0