Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Syntax von Prolog & Familiendatenbasis Prolog Grundkurs WS 99/00 Christof Rumpf

Ähnliche Präsentationen


Präsentation zum Thema: "Syntax von Prolog & Familiendatenbasis Prolog Grundkurs WS 99/00 Christof Rumpf"—  Präsentation transkript:

1 Syntax von Prolog & Familiendatenbasis Prolog Grundkurs WS 99/00 Christof Rumpf

2 GK Prolog - Syntax, Familiendatenbasis 2 Syntax von Prolog Die Syntax von Prolog beschreibt die Menge der wohlgeformten Ausdrücke in Prolog. Wir kennen bereits einige grundlegende Konzepte wie Fakten, Regeln, Klauseln, Anfagen, Prädikate, Argumente, Variablen, Funktoren,...

3 GK Prolog - Syntax, Familiendatenbasis 3 Terme Die grundlegende Datenstruktur in Prolog ist der Term. Terme werden aus ASCII-Zeichen gebildet. A B C... X Y Z Großbuchstaben a b c... x y z Kleinbuchstaben Ziffern + - * / \ ^ [ ] Sonderzeichen ( ) ~ :. ?, ;

4 GK Prolog - Syntax, Familiendatenbasis 4 Sorten von Termen Terme einfach zusammengesetzt Atome Zahlen Variablen Strukturen Listen (Prädikate) Integers Reals

5 GK Prolog - Syntax, Familiendatenbasis 5 Atome Atome sind Zeichenfolgen, die mit einem Kleinbuchstaben beginnen. Der Rest eines Atoms kann aus Klein- oder Großbuchstaben und Ziffern bestehen, aber keine Sonderzeichen außer _ (Unterstrich) enthalten. wir sind vier atome ichBinAtomNr5 ich_bin_atom_frieda

6 GK Prolog - Syntax, Familiendatenbasis 6 Hochkommata Durch einfache Hochkommata kann man beliebige Zeichenfolgen zwangsatomisieren. `Ich bin ein Atom.` `0815`

7 GK Prolog - Syntax, Familiendatenbasis 7 Variablen Variablen sind Zeichenfolgen, die mit einem Großbuchstaben oder _ beginnen. Bis auf nicht vorhandene Zwangsvariabilisierung gilt für den Rest das gleiche wie für Atome. X Fritz _ich_bin_eine_Variable

8 GK Prolog - Syntax, Familiendatenbasis 8 Variablenidentität Die anonyme Variable besteht lediglich aus einem Zeichen: _ (Unterstrich). Im Gegensatz zu anderen Variablen kann man mit anonymen Variablen keine Variablengleichheit erzielen. liebt(X,Y). nicht notwendigerweise gleich liebt(X,X). notwendigerweise gleich liebt(_,_). nicht notwendigerweise gleich

9 GK Prolog - Syntax, Familiendatenbasis 9 Interne Variablen Arity Prolog 6.1 verwendet intern eine standardisierte Darstellung für Variablen: 4-stellige Hexadezimalzahlen mit führendem Unterstrich. ?- X = Y. X = _0F5A Y = _0F5A yes

10 GK Prolog - Syntax, Familiendatenbasis 10 Zahlen Integers (Ganze Zahlen) Reals (Fließkommazahlen) e25

11 GK Prolog - Syntax, Familiendatenbasis 11 Strukturen Strukturen sind zusammengesetzte Terme und bestehen aus Funktor und einer Folge von Argumenten, die in Klammern eingeschlossen und durch Kommata getrennt werden. funktor(Arg 1,..., Arg n ) Funktoren sind Atome, Argumente sind Terme.

12 GK Prolog - Syntax, Familiendatenbasis 12 Beispiel-Strukturen mensch(sokrates) student(name(vorname(berti), nachname(vogts)), matrikelnr(4711))

13 GK Prolog - Syntax, Familiendatenbasis 13 Operatoren Die Funktoren von 1- oder 2-stelligen Strukturen können auch als Operatoren definiert sein. Beispiele: a :- b :- Infixoperator :-(a,b) a.. Postfixoperator.(a) Präfixoperator -(235)

14 GK Prolog - Syntax, Familiendatenbasis 14 Fakten Fakten sind Prädikate, die mit einem Punkt abgeschlossen sind. Der Funktor darf nicht :- sein. mensch(sokrates) mensch(sokrates).

15 GK Prolog - Syntax, Familiendatenbasis 15 Regeln Regeln sind 2-stellige Prädikate mit dem Funktor :-, die mit einem Punkt abgeschlossen sind. Das erste Argument (Head) ist ein Prädikat. Das zweite Argument (Body) ist ein Prädikat oder eine Disjunktion oder Konjunktion von Prädikaten. Es handelt sich bei :-/2 um ein vordefiniertes Prädikat (builtin), das eine besondere Interpretation hat.

16 GK Prolog - Syntax, Familiendatenbasis 16 Programme Programme in Prolog sind Mengen von Klauseln. Klauseln Fakten Regeln

17 Familiendatenbasis Verwandtschaftsbeziehungen als Anwendungsfeld für Relationen mit verschiedenen Eigenschaften.

18 GK Prolog - Syntax, Familiendatenbasis 18 Ein Stammbaum terach m sarah f abraham m nachor m haran m isaac m milcah f lot m yiscah f

19 GK Prolog - Syntax, Familiendatenbasis 19 Prolog-Repräsentation Elternteile et(terach,abraham). et(terach,nachor). et(terach,haran). et(sarah,isaac). et(abraham,isaac). et(haran,milcah). et(haran,lot). et(haran,yiscah). Geschlecht fem(sarah). fem(milcah). fem(yiscah). masc(terach). masc(abraham). masc(nachor). masc(haran). masc(isaac). masc(lot).

20 GK Prolog - Syntax, Familiendatenbasis 20 Direkte Beziehungen Vater, Mutter vater(X,Y):- et(X,Y), masc(X). mutter(X,Y):- et(X,Y), fem(X). Sohn, Tochter sohn(X,Y):- et(Y,X), masc(X). tochter(X,Y):- et(Y,X), fem(X).

21 GK Prolog - Syntax, Familiendatenbasis 21 Indirekte Beziehungen Großvater großvater(X,Y):- vater(X,Z), et(Z,Y). Bereits definierte Relation vater/2 kann wiederverwendet werden. Eine dritte Person Z wird benötigt, um die Beziehung zu vermitteln.

22 GK Prolog - Syntax, Familiendatenbasis 22 Rekursion Vorfahr vorfahr(X,Y):- et(X,Y). vorfahr(X,Y):- et(X,Z), vorfahr(Z,Y). Das rekursive Prädikat vorfahr/2 berechnet die transitive Hülle des Graphen, der durch das Prädikat et/2 induziert wird.


Herunterladen ppt "Syntax von Prolog & Familiendatenbasis Prolog Grundkurs WS 99/00 Christof Rumpf"

Ähnliche Präsentationen


Google-Anzeigen