0% fanden dieses Dokument nützlich (0 Abstimmungen)
7 Ansichten17 Seiten

File 1

Das Dokument behandelt die Struktur und Funktionsweise von Wissensbasen in Prolog, einschließlich der Definition von Fakten und Regeln sowie der Syntax für Anfragen. Es werden Beispiele für verschiedene Wissensbasen und deren Anfragen gegeben, um zu demonstrieren, wie der Prolog-Interpreter arbeitet. Wichtige Konzepte wie Terme, Atome, Variablen und die Arität von Prädikaten werden ebenfalls erläutert.

Hochgeladen von

negabe8139
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
7 Ansichten17 Seiten

File 1

Das Dokument behandelt die Struktur und Funktionsweise von Wissensbasen in Prolog, einschließlich der Definition von Fakten und Regeln sowie der Syntax für Anfragen. Es werden Beispiele für verschiedene Wissensbasen und deren Anfragen gegeben, um zu demonstrieren, wie der Prolog-Interpreter arbeitet. Wichtige Konzepte wie Terme, Atome, Variablen und die Arität von Prädikaten werden ebenfalls erläutert.

Hochgeladen von

negabe8139
Copyright
© All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Fakten, Regeln, und Anfragen

Was sind Wissensbasen?

Wie sehen Prolog-Wissensbasen aus?

Und was für Anfragen können wir stellen?

Die Prologsyntax.

Programmierkurs Prolog – p.1


Eine Wissensbasis (auf deutsch)

toto ist ein frosch.


toto ist grün.
bodo ist ein storch.

Diese Wissensbasis besteht aus drei Fakten.

Programmierkurs Prolog – p.2


Der Prolog-Interpreter

Der Prologinterpreter “liest” eine Wissensbasis und beantwortet dann


Anfragen zu dieser Wissensbasis.

Zum Beispiel:
ist toto ein frosch? Prolog: Ja
toto ist ein frosch.
ist toto ein storch? Prolog: Nein
toto ist grün.
wer ist grün? Prolog: toto
bodo ist ein storch.

Achtung! Der Prologinterpreter weiß nur das, was in der Wissensbasis


steht. Einzelne Wörter haben keine Bedeutung für Prolog.
Deswegen:

ist toto ein tier? Prolog: Nein

Programmierkurs Prolog – p.3


Noch eine Wissensbasis (auf deutsch)

toto ist ein frosch.


toto ist grün.
bodo ist ein storch.

alle frösche sind tiere.


alle störche sind tiere.

Diese Wissensbasis besteht aus drei Fakten und zwei Regeln.

Wie antwortet Prologinterpreter auf die Anfrage:


ist bodo ein tier?

Programmierkurs Prolog – p.4


Die 1. Wissensbasis “auf Prolog”

toto ist ein frosch. ist ein frosch(toto).


toto ist grün. ist grün(toto).
bodo ist ein storch. ist ein storch(bodo).

Andere Möglichkeiten:

frosch(toto). f(toto).
grün(toto). g(toto).
storch(bodo). s(bodo).

Programmierkurs Prolog – p.5


Die Wissensbasis ‘kb1’

woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).

Diese Wissensbasis besteht aus vier Fakten. Sie definiert zwei


Prädikate, nämlich woman und playsAirGuitar.
Anfragen “auf Prolog”:
woman(mia).
playsAirGuitar(mia).
woman(vincent).
man(vincent).

Programmierkurs Prolog – p.6


Die Wissensbasis ’kb2’

listensToMusic(mia).
happy(yolanda).
playsAirGuitar(mia) :- listensToMusic(mia).
playsAirGuitar(yolanda) :- listensToMusic(yolanda).
listensToMusic(yolanda) :- happy(yolanda).

Diese Wissensbasis besteht aus zwei Fakten und drei Regeln, bzw. fünf
Klauseln.

Programmierkurs Prolog – p.7


Regeln

:- heißt wenn dann.

Die Regel playsAirGuitar(mia) :- listensToMusic(mia).


kann so gelesen werden: Wenn listensToMusic(mia) wahr ist,
dann ist auch playsAirGuitar(mia) wahr.

Die linke Seite einer Regel heißt Kopf (head), und die rechte Seite heißt
Körper oder Rumpf (body).

Programmierkurs Prolog – p.8


Die Wissensbasis ‘kb3’

happy(vincent).
listensToMusic(butch).
playsAirGuitar(vincent) :- listensToMusic(vincent),
happy(vincent).
playsAirGuitar(butch) :- happy(butch).
playsAirGuitar(butch) :- listensToMusic(butch).

Programmierkurs Prolog – p.9


Die Wissensbasis ‘kb4’

woman(mia). Wer ist eine Frau?:


woman(jody). woman(X).
woman(yolanda).
Prolog: X = mia
Gibt es noch andere?: ;
loves(vinvent,mia). Prolog: X = jody
loves(marcellus,mia). Und noch andere?: ;
loves(pumpkin,honey bunny). Prolog: X = yolanda
loves(honey bunny,pumpkin). Und noch andere?: ;
Prolog: no

Programmierkurs Prolog – p.10


Wissensbasis ‘kb5’

loves(vinvent,mia).
loves(marcellus,mia).
loves(pumpkin,honey bunny).
loves(honey bunny,pumpkin).

jealous(X,Y) :- loves(X,Z),
loves(Y,Z).

Programmierkurs Prolog – p.11


Aufgaben

1. Wie könnte man unsere 2. ‘deutsche’ Wissensbasis als


Prolog-Wissensbasis hinschreiben?

2. Denkt euch eine kleine Wissensbasis aus und schreibt sie sowohl
auf deutsch also auch in Prolognotation auf.

3. Erfindet 4 Anfragen, die man an diese Wissensbasis stellen


könnte. (Es sollen welche dabei sein, die Prolog mit ’ja’
beantworten würde und solche die Prolog mit ’nein’ beantworten
würde.)

4. Tauscht die Wissensbasis und die Anfragen (ohne die Antworten!)


mit einer anderen Gruppe und überlegt euch wie Prolog auf diese
Anfragen antworten würde.

Programmierkurs Prolog – p.12


Terme

Terme

einfache Terme komplexe Terme

Konstanten Variablen

Atome Zahlen
Atome butch, m monroe2, ’Vincent’, ’The Gimp’, ’ ’, ’@&
3$’, ;, :-, ===>

Zahlen 23, 1001, 0, -345

Variablen X, Variable, variable, X 234

Programmierkurs Prolog – p.13


Komplexe Terme

loves(vincent,mia)

Funktor (muss Atom sein) Argumente (beliebige Terme)

hide(X,father(father(father(butch))))

Programmierkurs Prolog – p.14


Komplexe Terme – Arität

Anzahl an Argument = Arität

loves(vincent,mia) Arität: 2
hide(X,father(father(father(butch)))) Arität: ?

Programmierkurs Prolog – p.15


Prädikate – Arität

Welche Prädikate werden von der folgenden Datenbasis definiert?

loves(vincent,mia).
loves(marcellus,mia).
jealous(marcellus,vincent).
jealous(marcellus,vincent,mia).

loves
jealous
jealous
loves/2
jealous/2
jealous/3

Programmierkurs Prolog – p.16


Zusammenfassung

Wir haben gesehen wie

Prologwissensbasen aussehen und wie

man Anfragen stellt.

Wichtige Begriffe: Terme, Atome, Variablen, komplexe Terme (Funktor,


Argumente, Arität), Fakten, Regeln (Kopf, Rumpf oder Körper),
Klauseln, Prädikate.

Nächste Woche: Wie findet Prolog die Antworten?

Programmierkurs Prolog – p.17

Das könnte Ihnen auch gefallen