Fakten, Regeln und Anfragen

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren in Logik
Advertisements

Deduktive Datenbanken
Transkription in der Sprachsythese und –erkennung SS 2004 Regelgesteuerte automatische Transkription auf der Basis von Expertenwissen Referent: Freshta.
Einführung in Prolog Copyright © 1999 by Michael Neumann
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Datenbanksysteme für FÜ WS2004/05 SQL1 - 1 Worzyk FH Anhalt SQL 1 Aussagen über Tabelleninhalte Aussagelogik Äquivalenzen Select Where.
Prof. Dr. W. Conen 15. November 2004
Zusammenfassung der Vorwoche
2. Programmstruktur – Teil 2
Programmieren in Logik
Künstlichen Intelligenz
Default Logiken Zhao Li
Organisatorisches Klausur für Übungsschein (Anfang Januar)
Listen [mia, vincent, jules, yolanda] [mia, robber(honey_bunny), X, 2, mia] [] [mia, [vincent, jules], [butch, girlfriend(butch)]] [[], dead(zed), [2,
Marco Barz Seminar über Algorithmen SoSe2007
Syntax der Aussagenlogik
Verifizieren versus Berechnen
Standortfaktoren INTERN - Ausdrucksstark präsentieren.
Kapitel 4 Syntaktische Analyse: LR Parsing.
Listen & Beweisstrategie
Rekursive Listenverarbeitung
Cut, Negation, Manipulation der Datenbasis
Maschinelle Übersetzung I
Prolog und Prädikatenlogik I
Der Einstieg in das Programmieren
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
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
C- Syntax. Bestandteile der Sprache C: Ausdrücke Anweisungen.
Algorithmentheorie 04 –Hashing
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Semantik von Prolog & Unifikation
Prolog Grundkurs WS 99/00 Christof Rumpf
Syntax von Prolog & Familiendatenbasis
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
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
PROLOG Die Rose ist rot. Die Tulpe ist gelb. Die Nelke ist weiss.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Christian Schindelhauer
Günter Kniesel Advanced Prolog. 2 Bisher: Grundlagen Klauseln –Regeln –Fakten Terme –Die einzige Datenstruktur in Prolog –Listen als Sonderfall mit eigener.
DVG Klassen und Objekte
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
boolean Datentyp und Operator
Vorlesung Biometrie für Studierende der Veterinärmedizin Begriff der Zufallsgröße Ergebnisse von Zufallsexperimenten werden als Zahlen dargestellt:
Asthma / Allergie (1./2. Klasse)
Die folgenden Gleichungen wurden über die Grundmenge R gelöst. HAYAL ÖZ.
Franziska und die Katze
Problemlösen Problemlösen Prof. Dr. Bernd Schmidt
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
§3 Allgemeine lineare Gleichungssysteme
Auslegung eines Vorschubantriebes
Passivität und Vandalismus TA Ausbildung Bern, 12. Veranstaltung 1 TA Ausbildung Bern, Passivität und Vandalismus,
UN - Behindertenrechtskonvention
Programmierung 1. Einführung Seite 1
Einführung in PROLOG StD G. Noll f ( x ) f ( ) g ( ) g ( x ) barbara
Analyseprodukte numerischer Modelle
Arne Vater Wintersemester 2006/ Vorlesung
Der Erotik Kalender 2005.
Familie Beutner, Konrad-Voelckerstrasse, Edenkoben/Pfalz, Tel:
11. Wissenbasis und Regelsysteme Sebastian Linek.
Einführung in die logische Programmierung mit PROLOG
7. Formale Sprachen und Grammatiken
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Ein wenig Mathematik, um den Vormittag zu beginnen... (Niveau 4. Klasse)
Prolog-Kurs SomSem 2017 Daniel Beßler/Hagen Langer
 Präsentation transkript:

Fakten, Regeln und Anfragen Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Programmieren = Problemlösen Prolog ist eine deklarative Programmiersprache. Problemlösen in Prolog heißt Probleme beschreiben, indem Objekte mit ihren Eigenschaften und Beziehungen dargestellt werden. Was ist das Problem? Welche Objekte sind beteiligt? Welche Eigenschaften und Beziehungen? 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

„Natürliches“ Schließen Sokrates ist ein Mensch. Alle Menschen sind sterblich. Sokrates ist sterblich. Sprache: natürliche Sprache, Deutsch. Schlußregel: natürliches, intuitives Schließen. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Modus Ponens mensch(sokrates) A x mensch(x)  sterblich(x) A  B sterblich(sokrates) B Sprache: formale Sprache, PL1 Schlußregel: Modus Ponens 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Resolution mensch(sokrates). sterblich(X):- mensch(X). X ?- sterblich(X). X X = sokrates yes Sprache: formale Sprache, Prolog Schlußregel: Resolution 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Namen sind Schall und Rauch banane(sokrates). kann_fliegen(X):- banane(X). ?- kann_fliegen(X). X = sokrates yes 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Analyse des Sokrates-Beispiels 1 Objekt sokrates. 1 Menge von Objekten X. 1 Eigenschaft mensch von Objekt sokrates. 1 bedingte Eigenschaft sterblich einer Menge von Objekten X. 1 Beziehung zwischen Mengen von Objekten: sterblich(X):- mensch(X). Die Mengen sind identisch. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Prolog Entwicklungsumgebung Entwicklungsumgebung (IDE) Editor Interpreter (Inferenzmaschine) Benutzerschnittstelle (Anfragen) Wissensbasis (Prolog-Programm = Regeln + Fakten) 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Fakten, Regeln und Anfragen mensch(sokrates). sterblich(X):- mensch(X). ?- mensch(sokrates). yes ?- mensch(aristoteles). no ?- sterblich(sokrates). Fakt Regel Anfrage Die Inferenzmaschine versucht die Anfragen durch Zugriff auf die Wissensbasis zu beweisen. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Fakten sind Aussagen über Eigenschaften und Beziehungen von Objekten, die als wahr angenommen werden. Z.B. „Fritz liebt Anna.“ ist eine Aussage über eine Beziehung zwischen zwei Objekten. In Prolog können wir folgenden Fakt formulieren: liebt(fritz, anna). 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Schreibweise für Fakten In Prolog verwenden wir eine standardisierte Form, um Fakten zu repräsentieren. Die Bezeichner aller Objekte, Eigenschaften und Beziehungen beginnen mit Kleinbuchstaben. Die Bezeichner für Mengen von Objekten (Variablen) beginnen mit Großbuchstaben. Die Bezeichner für Eigenschaften und Beziehungen werden zuerst geschrieben und die Objekte durch Kommata getrennt in runden Klammern. Am Ende eines Fakts kommt ein Punkt. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Prädikate und Argumente Eigenschaften und Beziehungen werden Prädikate genannt. Bezeichner von Eigenschaften und Beziehungen werden Funktoren genannt. Die Objekte werden Argumente genannt. Ein Prädikat mit n Argumenten hat Stelligkeit/Valenz/Arity n. funktor(Arg1,..., Argn) 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Argumentreihenfolge Die Reihenfolge der Argumente von Beziehungen spielt eine Rolle. liebt(anna,fritz).  liebt(fritz,anna). verheiratet(X,Y).  verheiratet(Y,X). 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Argumentposition Wir können selbst bestimmen, welche Interpretation die Argumentpositionen bekommen. „Anna ist die Mutter von Maria.“ mutter(anna,maria). oder mutter(maria,anna). mutter(Mutter,Kind). oder mutter(Kind,Mutter). Einmal getroffene Konvention beibehalten. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Einige Beispiel-Fakten wertvoll(gold). fem(anna). besitzt(fritz,gold). vater(fritz,anna). gibt(fritz,anna,buch). Gold ist wertvoll. Anna ist weiblich. Fritz besitzt Gold. Fritz ist der Vater von Anna. Fritz gibt Anna das/ein Buch. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Universelle Fakten Fakten, die Variablen als Argumente haben, werden universelle Fakten genannt. objekt(X). beziehung(X,Y). weg(X,rom). Die Variablen stehen für beliebige Objekte. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Atomare Fakten Fakten können auch aus 0-stelligen Prädikaten bestehen. Von Bedeutung sind inbesondere zwei atomare Fakten, deren Verwendung standardisiert ist: true. Ist immer definiert. fail. Ist niemals definiert. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Von Fakten zu Regeln „Fritz liebt alle Menschen.“ Faktenrepräsentation: liebt(fritz,anna). liebt(fritz,paul). liebt(fritz,sokrates). ... Regelrepräsentation: liebt(fritz,X):- mensch(X). mensch(anna). mensch(paul). mensch(sokrates). ... 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

 liebt(fritz,anna):- true. Fakten und Regeln Fakten bezeichnen Eigenschaften und Beziehungen von Objekten und werden unbedingt als wahr angesehen. Regeln führen Bedingungen für die Wahrheit von Eigenschaften und Beziehungen ein. Fakten lassen sich auch als Regeln umformulieren: liebt(fritz,anna).  liebt(fritz,anna):- true. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Aufbau von Regeln Regeln bestehen aus Kopf und Rumpf. Head :- Body. Der Kopf ist ein Prädikat und der Rumpf ein Prädikat oder eine Konjunktion und/oder Disjunktion von Prädikaten. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Konjunktion „Fritz liebt jeden, der Wein und Essen liebt.“ liebt(fritz,X):- liebt(X,wein), liebt(X,essen). Allgemein: A:- B1, ..., Bn | A, B Prädikate 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Disjunktion „Fritz liebt jeden, der Wein oder Essen liebt.“ liebt(fritz,X):- liebt(X,wein);liebt(X,essen). Alternativ: liebt(fritz,X):- liebt(X,wein). liebt(fritz,X):- liebt(X,essen). 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Negation „Fritz liebt alle Menschen außer sich selbst.“ liebt(fritz,X):- mensch(X), not X = fritz. Alternativ: liebt(fritz,X):- mensch(X), X \= fritz. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

Klauseln und Prädikate Fakten und Regeln werden unter dem Oberbegriff Klauseln zusammengefasst. Prolog-Programme bestehen aus Klauseln. Alle Klauseln mit dem gleichen Prädikat im Kopf bilden eine Prädikatsdefinition, bzw definieren ein Prädikat. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Anfagen werden am Prompt des Interpreters gestellt. Interpretation von Anfragen: ?- sterblich(sokrates). Hat das Objekt sokrates die Eigenschaft sterblich? ?- sterblich(X). Gibt es ein Objekt X mit der Eigenschaft sterblich? 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Backtracking Wenn es mehrere Lösungen zu einer Anfrage gibt, werden die Elemente der Lösungsmenge aufgezählt. Der Interpreter muß sich dabei merken, welche Lösungen er schon gefunden hat. Das Verfahren, mehrere Verzweigungen in einem Lösungsraum verwalten zu können, nennt man Backtracking. Prolog-Interpreter haben dieses Verfahren eingebaut. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Mehrere Lösungen Datenbasis liebt(fritz,blumen). liebt(fritz,anna). liebt(paul,anna). Anfragen ?- liebt(X,anna). X = fritz ->; X = paul ->; no Durch Eingabe eines Semikolons nach einer Antwort auf eine Anfrage bringen wir den Interpreter zum Backtracking. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen

GK Prolog - Fakten, Regeln und Anfragen Variablen Variablen gelten im Kontext von Anfagen als implizit existensquantifiziert. ?- mensch(X). Gibt es ein Objekt X mit Eigenschaft mensch? Variablen gelten im Kontext von Fakten und Regeln als implizit allquantifiziert. sterblich(X):- mensch(X). Alle Objekte X mit Eigenschaft mensch haben auch Eigenschaft sterblich. 18.10.99 GK Prolog - Fakten, Regeln und Anfragen