:- dynamic husket/2. go:- write('Prototype på videnbaseret system'), nl, nl, try. try:- løsning(X), !, write('Årsagen til problemet kan være: '), write(X), nl, glem. try:- write('Sådan et problem har jeg aldrig hørt om'), nl, glem. glem:- retract(husket(_, _)), glem. løsning('Diagnose 1'):- positiv('Symptom 1'), positiv('Symptom 2'). løsning('Diagnose 2'):- negativ('Symptom 2'), positiv('Symptom 3'). positiv(X):- husket(X, ja), !. positiv(X):- husket(X, nej), !, fail. positiv(X):- write(X), write(': '), read(Svar), nl, ( (Svar == ja; Svar == j) -> assertz(husket(X, ja)) ; assertz(husket(X, nej)), fail). negativ(X):- husket(X, nej), !. negativ(X):- husket(X, ja), !, fail. negativ(X):- write(X), write(': '), read(Svar), nl, ( (Svar == nej; Svar == n) -> assertz(husket(X, nej)) ; assertz(husket(X, ja)), fail).