syntax von prolog familiendatenbasis
Download
Skip this Video
Download Presentation
Syntax von Prolog & Familiendatenbasis

Loading in 2 Seconds...

play fullscreen
1 / 22

Syntax von Prolog & Familiendatenbasis - PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Syntax von Prolog & Familiendatenbasis' - geona


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

ad