Prolog-ohjelmointia
Prolog
on logiikkaohjelmointikieli, joka etsii ratkaisuja ohjelmassa esittyjen
tosiasioiden (faktojen) ja sääntölauseiden perusteella.
Tee seuraava työ Java-pohjaisella JLogilla. Tallenna jokaisesta tehtävästä vähintään yksi ohjelmaversio verkkokansioosi (kopioi toimiva ohjelma ensin Muistioon).
1. Kopioi alla oleva Prolog-ohjelma JLogin Source- ikkunaan
(Consult-välilehti). Ohjelmassa esitetaan faktoja sukulaisuussuhteista.
Rivi isa('Pekka', 'Isä') tarkoittaa, että Pekan isä on Isä. Pekan äiti
on Äiti jne. Faktojen alapuolella on lause, joka kertoo, mitä sisaruus
(tässä ohjelmassa) tarkoittaa: Henk ja Sisarus ovat sisaruksia,
jos molemmilla on sama äiti ja sama isä. Viimeisenä määritellään käsite
isoisä.
isa('Pekka', 'Isä').
isa('Liisa', 'Isä').
aiti('Pekka', 'Äiti').
aiti('Liisa', 'Äiti').
isa('Isä', 'Jaakko').
sisarus(Henk, Sisarus) :- aiti(Henk, A), aiti(Sisarus, A),
isa(Henk, B), isa(Sisarus, B).
isoisa(Henk,Isoisa) :- isa(Henk, A), isa(A, Isoisa).
Paina Consult-nappia. JLog lukee ohjelman ja muodostaa tiedoista
tietokannan (Status-ikkunassa pitäisi lukea "consulting. completed.").
Kirjoita Query-välilehden Query-riville: sisarus(X,Y). ja paina
Query-nappia. Huomaa,että komennon lopussa on piste! Ohjelma etsii
arvot muuttujille X ja Y, jotka sopivat ehtoihin. Output-ikkunassa
pitäisi lukea:
sisarus(X,Y)
X = Pekka
Y = Pekka
yes
Ohjelman mukaan Pekka on siis itsensä sisarus! Viimeisen rivin "yes"
tarkoittaa, että tuloksia on lisää. Paina Retry-nappia kunnes ohjelma
ilmoittaa "no".
3, Kirjoita ylempään ruutuun isoisa(X,Y). Huomaa, että ohjelma löytää
kaikki mahdolliset vaihtoehdot.
4. Muuta ohjelmaa niin, että käytät omia (sukulaisten) nimiä.
Lisää faktoja.