Implementacja obiektu thermostatModel z przykładu [[pl:miw:miw08_ruleruntimeo:mvcthermostate|Termostat w modelu MVC]] :-object(thermostatModel, imports(properties)). :-public(get_temp/4). get_temp(Hour, Day, Month, T):- checkDayTime(Hour), season(S,Month), checkWorkingTime(Day, Hour, O), temperature(S, O, T), write(T). checkWorkingTime(Day, Hour, O):- workday(Day), Hour =< 17, Hour >= 9, operation(O,0). checkWorkingTime(Day, Hour, O):- workday(Day), Hour < 9, operation(O, 1). checkWorkingTime(Day, Hour, O):- workday(Day), Hour > 17, operation(O, 1). checkWorkingTime(Day, _, O):- \+ workday(Day), weekday(_, Day), operation(O, 1). checkDayTime(Hour):- Hour < 25, Hour > 0. operation(duringWorkingHours,0). operation(notDuringWorkingHours, 1). workday(Day):- weekday(D, Day), D \= sunday, D \= saturday. weekday(monday, 1). weekday(tuesday, 2). weekday(wednesday, 3). weekday(thursday, 4). weekday(friday, 5). weekday(saturday, 6). weekday(sunday, 7). season(winter, 1). season(winter, 2). season(autumn, 3). season(autumn, 4). season(autumn, 5). season(summer, 6). season(summer, 7). season(summer, 8). season(spring, 9). season(spring, 10). season(spring, 11). season(winter, 12). temperature(winter, duringWorkingHours, T):- T is 18, write('18 degrees'). temperature(winter, notDuringWorkingHours, T):- T is 14, write('14 degress'). temperature(autumn, duringWorkingHours, T):- T is 20, write('20 degress'). temperature(autumn, notDuringWorkingHours, T):- T is 16, write('16 degress'). temperature(summer, duringWorkingHours, T):- T is 24, write('24 degress'). temperature(summer, notDuringWorkingHours, T):- T is 27, write('27 degress'). temperature(spring, duringWorkingHours, T):- T is 20, write('20 degress'). temperature(spring, notDuringWorkingHours, T):- T is 15, write('15 degress'). :-end_object.