PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau.
Umgangssprache PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss. Das Vergissmeinnicht ist blau. Das Veilchen ist blau. rot(rose). gelb(tulpe). weiss(nelke). blau(vergissmeinnicht) blau(veilchen).
Syntax Objekte u. Prädikate werden klein geschrieben Am Ende Punkt, Return Variablen werden groß geschrieben UND als Komma ODER als Semikolon
Regeln zur Definition von Prädikaten Y ist Mutter von x, falls Y ElternteilvonX ist und Y weiblich ist. Y ist Kind von X, falls X Elternteil von Y ist. mutter(X,Y):- elter(X,Y), weibl(Y). kind(X,Y):- elter(Y,X).
Regeln zur Mitteilung von neuen Fakten Opa mag alles was Oma hasst Romeo fährt über- all hin, wo Beate hinfährt mag(opa,X):- hasst(oma,X). faehrt_nach(romeo,X):- faehrt_nach(beate,X).
Regeln zum Formulieren von Problemen 4 Gebiete sollen mit drei Farben (rot, gelb, blau) eingefärbt werden, so dass keine zwei gleichfarbenen Gebiete längs einer Linie aneinander grenzen. 1 2 3 4
Prolog-Programm farbe(rot). farbe(gelb). farbe(blau). einfaerbung(F1,F2,F3,F4):- farbe(F1), farbe(F2), farbe(F3), farbe(F4), F1\=F2, F1\=F3, F2\=F3, F2\=F4, F3\=F4. 1 2 3 4
Aufgabe 51 Fritz, Hans, Karl. Der Besitzer des roten Autos ist Vetter von Fritz. Hans hat kein grünes Auto. Fritz streitet mit dem Besitzer des grünen Autos. junge(fritz). junge(hans). junge(karl). loesung(Rot,Gruen,Blau):- junge(Rot), junge(Gruen), junge(Blau), Rot\=Gruen, Rot\=Blau, Gruen\=Blau, Rot\=fritz, hans\=Gruen, Gruen\=fritz.
4.4 So arbeitet PROLOG
Suche per Computer schuhgr(adelheid,34). schuhgr(aschenputtel,26). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(aschenputtel,26).
Suche per Computer schuhgr(adelheid,34). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(aschenputtel,26).
Suche per Computer schuhgr(adelheid,34). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(aschenputtel,26). Yes
Suche per Computer schuhgr(adelheid,34). schuhgr(Gesuchte,26). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(Gesuchte,26).
Suche per Computer schuhgr(adelheid,34). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(Gesuchte,26).
Suche per Computer schuhgr(adelheid,34). schuhgr(agnes,28). schuhgr(aschenputtel,26). schuhgr(brunhilde,44). schuhgr(kunigunde,28). schuhgr(walburga,38). schuhgr(Gesuchte,26). Gesuchte = aschenputtel
Suche nach der Mutter von daisy ?- elter(daisy,X), weibl(X). Der Interpreter versucht zu matchen (anzupassen). Gelingt das nicht, wird die Variable wieder freigegeben und eine andere versucht (Backtracking).