ROZDZIAŁ 1. PODSTAWY
?- ciezszy(pomarańcz,jabłko).
Yes
W ten oto sposób otrzymujemy twierdzącą odpowiedz na pytanie: Czy pomarańcz jest cięższa od jabłka?. Będąc precyzyjniejszym, to pytanie brzmi: Czy wiadomo coś na temat tego, że pomarańcz jest cięższa od jabłka?. Jest to istotne rozróżnienie, gdyż wówczas reakcję
?- ciezszy(winogrono,arbuz).
No
należy odczytywać jako: Nic nie wiadomo na temat tego, że winogrono jest cięższe od arbuza. Nie oznacza to jednak, że tak nie jest. Taka interpretacja jest właściwsza, co pokazuje kolejny przykład
?- ciezszy(arbuz,winogrono).
No
Z podanych faktów, przez przechodniość i znajomość pojęcia ciężaru możemy wywnioskować, że odpowiedź powinna być twierdząca, według rozumowania
ponieważ prawdą jest, że ciezszy(arbuz,pomarańcz) i prawdą jest, że ciezszy(pomarańcz,j ablko) i prawdą jest, że ciezszy(jabłko,winogrono). czyli
arbuz > pomarańcz > jabłko > winogrono inaczej
arbuz > ... > winogrono więc prawdą jest, że ciezszy(arbuz,winogrono)
Jednak Prolog nie wie, że w stosunku do relacji ciezszy może przechodniość stosować, w związku z czym, w świetle znanych faktów i związków, udziela odpowiedzi negatywnej. W ten oto sposób dochodzimy do sytuacji, gdy musimy poinformować Prolog o pewnych relacjach, czyli określić reguły.
Zajmijmy się zatem relacją przechodniości i utworzeniem dla niej odpowiednich reguł. W matematyce relacja (dwuargumentowa) R na zbiorze A, co zapisujemy R C A2 jest
Programowanie w logice. Prolog ©2007-2009 by P. Fulmański (ostatnia modyfikacja: 18 maja 2009)