Hallo,
Erste Schritte:
der PROLOG-Interpreter und die dazugehörige Dokumentation kann unter
http://www.swi-prolog.org/ heruntergeladen werden.
Ach ja: Prolog unter Mac os x starten: 'swipl' (startet SWI-Prolog).
Code:
neos-Mac:~ neo$swipl
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.25)
Copyright (c) 1990-2006 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?-
Den technischen Ablauf einer PROLOG-Programmentwicklung kann man wie folgt beschreiben:
1. Man entwickelt eine Wissensbasis in Form von Regeln und Fakten. Regeln und Fakten bezeichnet man als Klauseln. Die Gesamtheit aller Klauseln nennt man ein PROLOG-Programm.
2. Die Wissensbasis wird in einer Datei gespeichert und kompiliert.
3. Der Benutzer kann im Konsolen-Fenster einige Fragen über das gespeicherte Wissen stellen.
4. PROLOG beantwortet unsere Anfragen mit Yes (bedeutet, dass die Frage aufgrund der Datenbasis bewiesen werden konnte) oder No (wenn keine Lösung der Anfrage möglich ist). Verhält sich das Programm nicht wie gewünscht, so wird es im Editor korrigiert oder erweitert.
Fakten
Fakten beschreiben Eigenschaften von Objekten (einstellig) und Beziehungen zwischen Objekten (mehrstellig).
person(adam).
person(eva).
person(klaus).
person(heinz).
frau_von(adam,eva).
vater_von(klaus,adam).
vater_von(adam,heinz).
Die Eigenschaften person und frau_von bezeichnet man als Prädikate. Sie werden mit der Anzahl ihrer Argumente (Stelligkeit) angegeben: person/1, frau_von/2.
Es gibt Prädikate, die kein Argument haben (nullstellig).
Bei mehrstelligen Prädikaten spielt die Reihenfolge von Argumenten eine wichtige Rolle:
vater_von (klaus, adam). <ungleich> vater_von (adam, klaus).
PROLOG-Programme (Wissensbasis) erstellen
Wenn die Datei (Wissensbasis) bereits existiert, wird sie mit Hilfe des Prädikats edit/1 mit dem Dateinamen als Argument aufgerufen.
?- edit(test).
Die Datei wird im Texteditor geöffnet und kann bearbeitet werden.
Mit dem PROLOG-Prädikat consult/1 (Dateiname als Argument) wird unsere Wissensbasis geladen.
?- consult(test).
Um eine Neue Datei anzulegen, verwendet man:
?- edit(file(test)). /* Das Argument ist der Name unserer Datei. */
Der Texteditor wird gestartet. Nach der Eingabe von Klauseln muss die neue Datei (mit der
Erweiterung pl) gespeichert und der Editor beendet werden. SWI-Prolog bestätigt mit der
Zeile „% test compiled ...“, dass unsere Datei kompiliert ist.
Frage-/Antwortsystem
Gegeben sei eine Datenbasis s.o.
Über die Datenbasis kann man
im Konsole-Fenster Anfragen stellen, die mit Yes oder No beantwortet werden. Die Verknüpfungen „und“ und „oder“ werden als „ , “ und „ ; “ notiert.
?- person(eva).
Yes
?- person(heinz).
Yes
?- person(lisa).
No
?-
?- listing(person).
person(adam) .
person(eva) .
person(klaus) .
person(heinz) .
Yes
?-
noch fragen?
greetz palman