3# pred diagnosis(P,T) :: 'The diagnosis for @(P) with a temperature of @(T) is that:'.
4diagnosis(P,T) :- fever(P,T).
5diagnosis(P,T) :- no_fever(P,T).
6
7# pred fever(Person,Temp) :: '@(Person) has a fever'.
8# pred no_fever(Person,Temp) :: '@(Person) has no fever'.
9fever(Person,Temp) :-
10 temp(Person,Temp),
11 high_temp(Temp),
12 not no_fever(Person,Temp).
13
14no_fever(Person,Temp) :-
15 temp(Person,Temp),
16 not high_temp(Temp),
17 not fever(Person,Temp).
18
19high_temp(T) :- T #> 38.
20
21temp(P,T) :- reg_temp(P,T).
22temp(P,T) :- not reg_person(P).
23
24# pred reg_temp(Person,Temp) :: 'The registered temperarture of @(Person) is @(Temp)'.
25# pred not reg_temp(Person,Temp) :: 'We do not have a registered temperature for @(Person) of @(Temp)'.
26reg_temp('Juan',37).
27reg_temp('Pedro',39).
28
29
30# pred not reg_person(Person) :: 'There are no registerd temperature of @(Person)'.
31reg_person(P) :- reg_temp(P,T).
32
33
35?- diagnosis('Luisa',T).