1 / 22

Syntax von Prolog & Familiendatenbasis

Syntax von Prolog & Familiendatenbasis. Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de. Syntax von Prolog. Die Syntax von Prolog beschreibt die Menge der wohlgeformten Ausdrücke in Prolog.

geona
Download Presentation

Syntax von Prolog & Familiendatenbasis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Syntax von Prolog&Familiendatenbasis Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de

  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, ... 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 ZGroßbuchstaben • a b c ... x y zKleinbuchstaben • 1 2 3 ... 8 9 0Ziffern • + - * / \ ^ [ ]Sonderzeichen • ( ) ~ : . ? , ; GK Prolog - Syntax, Familiendatenbasis

  4. Sorten von Termen • Terme • einfach zusammengesetzt • Atome Zahlen Variablen Strukturen Listen • (Prädikate) • Integers Reals 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 ichBinAtomNr5ich_bin_atom_frieda GK Prolog - Syntax, Familiendatenbasis

  6. Hochkommata • Durch einfache Hochkommata kann man beliebige Zeichenfolgen „zwangsatomisieren“. • `Ich bin ein Atom.` • `0815` • `°!^/{?#*§@` 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 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 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 GK Prolog - Syntax, Familiendatenbasis

  10. Integers (Ganze Zahlen) -2487 -1 0 3 455 Reals (Fließkommazahlen) -2487.0 1.34 0.0 .5 122.345e25 Zahlen 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(Arg1,..., Argn) • Funktoren sind Atome, Argumente sind Terme. GK Prolog - Syntax, Familiendatenbasis

  12. Beispiel-Strukturen • mensch(sokrates) • student(name(vorname(berti), • nachname(vogts)), • matrikelnr(4711)) 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) • -235 - Präfixoperator -(235) 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). 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. GK Prolog - Syntax, Familiendatenbasis

  16. Programme • Programme in Prolog sind Mengen von Klauseln. • Klauseln • FaktenRegeln GK Prolog - Syntax, Familiendatenbasis

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

  18. Ein Stammbaum • terachm • sarahf abrahamm nachorm haranm • isaacm milcahf lotm yiscahf GK Prolog - Syntax, Familiendatenbasis

  19. 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). Prolog-Repräsentation GK Prolog - Syntax, Familiendatenbasis

  20. 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). Direkte Beziehungen 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 Zwird benötigt, um die Beziehung zu vermitteln. 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. GK Prolog - Syntax, Familiendatenbasis

More Related