Syntax von prolog familiendatenbasis
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

Syntax von Prolog & Familiendatenbasis PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

Syntax von Prolog & Familiendatenbasis. Prolog Grundkurs WS 99/00 Christof Rumpf [email protected] Syntax von Prolog. Die Syntax von Prolog beschreibt die Menge der wohlgeformten Ausdrücke in Prolog.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Syntax von prolog familiendatenbasis

Syntax von Prolog&Familiendatenbasis

Prolog Grundkurs WS 99/00

Christof Rumpf

[email protected]


Syntax von prolog

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


Terme

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


Sorten von termen

Sorten von Termen

  • Terme

  • einfach zusammengesetzt

  • Atome Zahlen Variablen Strukturen Listen

  • (Prädikate)

  • Integers Reals

GK Prolog - Syntax, Familiendatenbasis


Atome

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


Hochkommata

Hochkommata

  • Durch einfache Hochkommata kann man beliebige Zeichenfolgen „zwangsatomisieren“.

  • `Ich bin ein Atom.`

  • `0815`

  • `°!^/{?#*§@`

GK Prolog - Syntax, Familiendatenbasis


Variablen

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


Variablenidentit t

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


Interne variablen

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


Zahlen

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


Strukturen

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


Beispiel strukturen

Beispiel-Strukturen

  • mensch(sokrates)

  • student(name(vorname(berti),

  • nachname(vogts)),

  • matrikelnr(4711))

GK Prolog - Syntax, Familiendatenbasis


Operatoren

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


Fakten

Fakten

  • Fakten sind Prädikate, die mit einem Punkt abgeschlossen sind. Der Funktor darf nicht „:-“ sein.

  • mensch(sokrates)

  • mensch(sokrates).

GK Prolog - Syntax, Familiendatenbasis


Regeln

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


Programme

Programme

  • Programme in Prolog sind Mengen von Klauseln.

  • Klauseln

  • FaktenRegeln

GK Prolog - Syntax, Familiendatenbasis


Familiendatenbasis

Familiendatenbasis

Verwandtschaftsbeziehungen als Anwendungsfeld für Relationen mit verschiedenen Eigenschaften.


Ein stammbaum

Ein Stammbaum

  • terachm

  • sarahf abrahamm nachorm haranm

  • isaacm milcahf lotm yiscahf

GK Prolog - Syntax, Familiendatenbasis


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).

Prolog-Repräsentation

GK Prolog - Syntax, Familiendatenbasis


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).

Direkte Beziehungen

GK Prolog - Syntax, Familiendatenbasis


Indirekte beziehungen

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


Rekursion

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


  • Login