Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.
Wstęp
Prolog (od francuskiego Programmation en Logique) to język programowania logicznego -program w Prologu to opis reguły wnioskowania oraz celu do którego zmierzamy, a rola komputera polega na odpowiednim zastosowaniu reguł aby znaleźć rozwiązanie.
Prolog został stworzony w 1971 roku przez Alaina Colmeraurera i Phillipe’a Rousela. Używany w wielu programach z zakresu sztucznej inteligencji.
Programowanie w Prologu bardzo różni się od programowania w językach algorytmicznych. W Prologu podaje się bazę faktów i reguł. Potem można wykonywać zapytania na tej bazie. Podstawową jednostką w Prologu jest predykat. Predykat składa się z nagłówka i argumentów, na przykład:
ojciec(tomasz, agata).
gdzie oj ciec to nagłówek a tomas z i agata to argumenty.
Predykat może zostać użyty do wyrażenia pewnych faktów o świecie, które są znane dla programu. W tym przypadku programista musi nadać im znaczenie. Jedną z interpretacji zdania ojciec (tomasz, agata) jest "tomaszto ojciec agaty". Jednak równie dobrze mogłoby to znaczyć "ojcem tomasza jest agata". Prolog nie ma pojęcia, co oznaczają te stwierdzenia. Wszystko co robi to manipulacja symbolami w oparciu o reguły. Dlatego można wybrać dowolny sposób zapisu tego, że "tomasz to ojciec agaty", pod warunkiem konsekwentnego przestrzegania kolejności argumentów w całym programie.
Baza danych Prologu może też zawierać reguły. Przykład reguły to:
jest(światło) włączony(przycisk).
Zapis oznacza "wtedy, gdy" lub "jeśli".
Ta reguła oznacza, że zdanie j est (światło) jest prawdziwe wtedy, gdy prawdziwe jest zdanie
włączony(przycisk).
Reguły mogą używać zmiennych. Zmienne zapisuje się zaczynając od wielkiej litery, dla odróżnienia od stałych, zaczynających się z małej. Na przykład:
ojciec(X, Y) rodzic(X, Y), jest_rodzaju_męskiego(Y).
To oznacza: "dla każdych X i Y, jeśli rodzic(X, Y) i jest rodzaju męskiego(Y) to ojciec(X, Y)
Przygotowanie środowiska języka Prolog