Syntax von Prolog & Familiendatenbasis

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren in Logik
Advertisements

Deduktive Datenbanken
der Universität Oldenburg
Einführung in Prolog Copyright © 1999 by Michael Neumann
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Kapitel 6: Kombinatorik
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Frame-Logik Eine Einführung Andreas Glausch.
Extensible Markup Language
Worzyk FH Anhalt Datenbanksysteme für FÜ WS 2004/2005 XML - 1 XML Extensible Markup Language.
2. Programmstruktur – Teil 2
Programmieren in Logik
Künstlichen Intelligenz
10. Grundlagen imperativer Programmiersprachen
Listen [mia, vincent, jules, yolanda] [mia, robber(honey_bunny), X, 2, mia] [] [mia, [vincent, jules], [butch, girlfriend(butch)]] [[], dead(zed), [2,
Kapitel 4 Datenstrukturen
Syntax der Aussagenlogik
Verifizieren versus Berechnen
Training IT-Grundlagen Interaktive Web-Seiten (HTML-Forms, CGI, Servlets) - Prof. Dr. Böttcher - S. cgi/ 1 Prolog als Datenbanksprache.
Listen & Beweisstrategie
Rekursive Listenverarbeitung
Cut, Negation, Manipulation der Datenbasis
Maschinelle Übersetzung I
Prolog und Prädikatenlogik I
HTML - Einführung Richard Göbel.
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Java: Referenzen und Zeichenketten
Logische Programmierung: Prolog
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Java- Syntax.
Java- Syntax.
Semantik von Prolog & Unifikation
Verschachtelte Listen, Differenzlisten, Graphen
Fakten, Regeln und Anfragen
Prolog Grundkurs WS 98/99 Christof Rumpf
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung
Grammatik als Deduktionssystem
Lexikalisch-Funktionale-Grammatik
PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Günter Kniesel Advanced Prolog. 2 Bisher: Grundlagen Klauseln –Regeln –Fakten Terme –Die einzige Datenstruktur in Prolog –Listen als Sonderfall mit eigener.
Normalformen Normalisieren Schlüssel
EDV1 - Komplexe Datentypen
DVG Klassen und Objekte
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Eine Liste, in der die Atome der Größe nach eingeordnet sind.
Wissensbasierte Systeme JESS Java Expert System Shell.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Die Familie Simpson Marge Homer Bart Lisa Maggie.
Einführung in die Programmierung Prof. Dr. Bertrand Meyer
Konzept einer Programmiersprache!
Einführung in PROLOG StD G. Noll f ( x ) f ( ) g ( ) g ( x ) barbara
Algorithmen und Datenstrukturen Übungsmodul 8
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Zeichenketten in PASCAL
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
7. Formale Sprachen und Grammatiken
(Syntax, Strings/Zahlen, Variablen, Arrays)
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Grammatik als Deduktionssystem Theorie, Grammatik, Grammatiktheorie Grammatik Sprache Hypothese Sprachtheorie Theorie Erklärung Theoretisches Konstrukt.
Abraham Erste Referenz: Gen 11:27 Letzte Referenz: Ja 2:23 > 280 Bibelstellen mit seinem Namen Bedeutung des Namens Abram: Der Vater ist erhaben Bedeut6ung.
Perl: pattern matching and regular expressions
Prolog-Kurs SomSem 2017 Daniel Beßler/Hagen Langer
Datentypen: integer, char, string, boolean
 Präsentation transkript:

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

GK Prolog - Syntax, Familiendatenbasis 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, ... 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis 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 1 2 3 ... 8 9 0 Ziffern + - * / \ ^ [ ] Sonderzeichen ( ) ~ : . ? , ; 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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

wir sind vier atome ichBinAtomNr5 ich_bin_atom_frieda 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 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis Hochkommata Durch einfache Hochkommata kann man beliebige Zeichenfolgen „zwangsatomisieren“. `Ich bin ein Atom.` `0815` `°!^/{?#*§@` 25.10.99 GK Prolog - Syntax, Familiendatenbasis

_ich_bin_eine_Variable 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 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis 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 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis 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 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis Zahlen Integers (Ganze Zahlen) -2487 -1 3 455 Reals (Fließkommazahlen) -2487.0 1.34 0.0 .5 122.345e25 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis 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. 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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

GK Prolog - Syntax, Familiendatenbasis 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) 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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

GK Prolog - Syntax, Familiendatenbasis 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. 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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

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

GK Prolog - Syntax, Familiendatenbasis Ein Stammbaum terachm sarahf abrahamm nachorm haranm isaacm milcahf lotm yiscahf 25.10.99 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). 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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). 25.10.99 GK Prolog - Syntax, Familiendatenbasis

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. 25.10.99 GK Prolog - Syntax, Familiendatenbasis

GK Prolog - Syntax, Familiendatenbasis 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. 25.10.99 GK Prolog - Syntax, Familiendatenbasis