Informatikmaterialien 
von Tino Hempel

Startseite | Informatik | Physik | Mathematik | Sonstiges |
 


Richard-Wossidlo-Gymnasium Ribnitz-Damgarten
Fachbereich Informatik


Fakten und Anfragen


Fakten, Regeln und Anfragen sind Grundelemente eines PROLOG-Systems. Weitere wichtige Begriffe wie Prädikat, Klausel, Konstante, Variable, Wissensbasis, Funktor und Stelligkeit werden eingeführt.  

Fakten

Ein Faktum beschreibt entweder eine Eigenschaft eines Objekts oder eine Beziehung zwischen mehreren Objekten.

Beispiele: 

Eigenschaftsbeschreibung: Ingo ist männlich.
Beziehungsbeschreibung: Erich ist Vater von Ingo.

Aufbau in PROLOG:
Jeder Fakt besteht aus einem Namen, dem Funktor. Er muss mit einem Kleinbuchstaben beginnen. Ihm folgt in Klammern die Liste der Argumente. Die Faktendefinition wird stets mit einem Punkt abgeschlossen. Ein Faktenargument ist stets eine Konstante und beginnt ebenfalls mit einem Kleinbuchstaben.

funktor(argument1, argument2).

Beispiele: 

maennlich(ingo).
vater_von(erich, ingo).

Die Anzahl der Argumente gibt die Stelligkeit des Funktors an. So ist der Funktor maennlich einstellig, der Funktor vater_von zweistellig. Dies drückt man häufig durch die Schreibweise maennlich/1 bzw. vater_von/2 aus.

Wissensbasis

Zum Aufbau einer Wissensbasis benutzt man einen Editor, indem man alle Fakten und Regeln (siehe unten) notiert. Anschließend muss dem Prolog-System diese Datenbasis mitgeteilt werden. Dazu nutzt man den Befehl consult.

Beispiel (aus Röhner, 1995): 

maennlich(paul).
maennlich(fritz).
maennlich(steffen).
maennlich(robert).

weiblich(karin).
weiblich(lisa).
weiblich(maria).
weiblich(sina).

vater_von(steffen, fritz).
vater_von(fritz, karin).
vater_von(steffen, lisa).
vater_von(paul, maria).

mutter_von(karin, maria).
mutter_von(sina, paul).

Ein Prädikat ist die Menge aller Fakten mit ein und demselben Funktor.

Die Wissensbasis besteht aus den Prädikaten maennlich, weiblich, vater_von und mutter_von. 

Anfragen

Nach dem Laden der Wissensbasis im PROLOG-System mittels consult können nun Anfragen an dieses System gestellt werden. Diese müssen stets in der Anfrage-Zeile des Systems formuliert werden. Die Zeile wird üblicher Weise durch die Symbole "?–" kenntlich gemacht. 

Entscheidungsfragen sind Anfragen, in denen nur Konstanten vorkommen. Sie werden vom System mit yes oder no beantwortet.

Ergänzungsfragen sind Anfragen, in denen Variablen vorkommen. Das System versucht Variablenwerte so zu ermitteln, dass wahre Aussagen entstehen (WER-oder-WAS-Fragen).

Beispiel:

Entscheidungsfragen Ergebnis
?- maennlich(robert). yes
?- weiblich(steffen). no
?- maennlich(hans). no
?- vater_von(steffen, lisa). yes

Die dritte Anfrage zeigt, dass no keineswegs die Bedeutung von nicht hat. Der Name Hans deutet auf eine männliche Person hin. Allerdings kommt diese in der Wissensbasis nicht vor und deshalb liefert das System no.

Variablen

Zur Erstellung von Ergänzungsfragen ist es notwendig, Variablen zu benutzen. Eine Variable im PROLOG-System wird durch einen Großbuchstaben eingeleitet. So sind X, Mutter, AdFS Variablen.

Eine Variable mit Sonderrolle ist die sogenannte anonyme Variable. Sie wird durch das Symbol _ gekennzeichnet und benutzt, um unerwünschte Anzeigen zu unterdrücken.

Beispiel: 

natürliche Frage Ergänzungsfrage in PROLOG Ergebnis
Wer ist weiblich? ?- weiblich(X). X = karin
X = lisa
X = maria
X = sina
Wer ist ein Vater von Karin? ?- vater_von(X, karin). X = fritz
Welche Kinder hat Steffen? ?- vater_von(steffen, Kind). Kind = fritz, 
Kind = lisa, 
Wer ist Vater einer Tochter? ?- vater_von(X,T),weiblich(T). X = fritz, T = karin, 
X = steffen, T = lisa,
X = paul, T = maria
Welche weiblichen Töchter habe die Väter? ?- vater_von(_,T),weiblich(T). T = karin
T = lisa,
T = maria
Wer ist Sinas Tochter? ?- mutter_von(sina,T),weiblich(T). no

Die vierte Anfrage zeigt, dass Anfragen miteinander verknüpft werden können. 
Die fünfte Anfrage zeigt die Unterdrückung der Ausgabe der Vaternamen durch Benutzung der anonymen Variable.
Die sechste Anfrage zeigt  dass zur Anfrage keine Lösung in der Wissensbasis existiert.

UND- und ODER-Verknüpfungen

In der vierten Anfrage werden eigentlich zwei Fragen miteinander verknüpft. Zum einen "Wer ist ein Vater eines Kindes?" und "Welches Kind davon ist weiblich?"

Eine UND-Verknüpfung wird erreicht, indem man zwischen den Einzelfragen ein Komma setzt. 
Eine ODER-Verknüpfung wird erreicht, indem man zwischen den Einzelfargen ein Semikolon setzt.




zur Startseite
© Tino Hempel 1997 - 2006 Im Web vertreten seit 1994.
Eine Internet-Seite aus dem Angebot von Tino Hempel.