2.2 Einführung in Prolog Flashcards
Prolog - allgemein
- von französischen Informatikern Alain Colmerauer und Philippe Roussel entwickelt
- vom Logiker Robert Kowalski weiterentwickelt
- erstmals in den frühen 1970er-Jahren implementiert
Prolog - Hauptmotivation
Einsatz bei der Entwicklung von Systemen zur Verarbeitung natürlicher Sprache und Künstlicher Intelligenz
Datenverarbeitung - allgemein
- Auf unterster Ebene verarbeitet Computer Informationen in Form der Werte 0 und 1 (Bits)
- nicht besonders gut für die menschliche Interpretation und Handhabung geeignet
Programmiersprachen - allgemein
abstrahieren von der grundlegenden technischen Ebene
-> kommen Denken, der algorithmischen Beschreibung und den logischen Denkmustern von Menschen näher
Programmiersprachen - Unterscheidungsmerkmale
Grad und der Art der Abstraktionen
die meisten Programmiersprachen zur Zeit von Prolog
imperative Sprachen
imperative Programmiersprachen
- Programm enthält eine Reihe von Anweisungen
- Maschine muss diesen auf dem Weg zu einem gewünschten Ergebnis oder einer Lösung folgen
Prolog - Besonderheit
deklarativer Programmieransatz
deklarativer Programmieransatz - Definition
- Programmierstil
- Programmierende legen Eigenschaften der gesuchten Lösung fest
- nicht aber den Algorithmus - Abfolge der Operationen, die zu einer Lösung führen
Deklarative Programmierung - Vorgehen
- programmierende Person gibt die Merkmale der gewünschten Lösung vor
- Interpreter erstellt dann Folge von Verarbeitungsschritten zur Erreichung des vorgegebenen Ziels
Beispiel deklarativer Programmieransatz
SQL (Structured Query Language)
SQL - allgemein
Abfragesprache für relationale Datenbanken
SQL - Bestandteile Abfrage
- Anweisung mit Tabelle, aus der Datensätze abgerufen werden sollen
- eine oder mehrere Bedingungen, welche Datensätze erfüllen müssen
SQL - Verarbeitung Abfrage
Datenbankmanagementsystem generiert automatisch Ausführungsplan (Abfolge von Verarbeitungsschritten), der das in der Abfrage angebene Ergebnis liefert
Proglog - Bestandteile
- Sammlung von Fakten und Regeln, welche Fakten zueinander in Beziehung setzt
- Struktur besteht aus Prädikaten und Klauseln
Prolog - Programmausführung
wird durch Suchanfrage (query) an Wissensbasis eingeleitet
Analogie Mensch - Prolog - Wissenbasis
- Mensch hat Gehirn
- voll von Daten, Fakten, Zahlen und Wissensbrocken
- im Laufe des Lebens angesammelt
Analogie Mensch - Prolog - Regeln
Menschen kennen Regeln zu den Fakten, von denen sie viele im Laufe der Zeit beobachtet und angewendet haben
-> logische Regeln, deren Anwendung zu guten Entscheidungen führt
Analogie Mensch - Prolog - Lösungen von Problemen
- Mensch ist neugierig will lernen, wie er Umgebung zum Besseren verändern können
-> stellen oft Fragen - Auf Grundlage von Fakten und Regelanwendung ergeben sich vernünftige, auf gesundem Menschenverstand beruhende Antworten
-> Lösungen für die wahrgenommenen Probleme
Prolog - Grund für Entwicklung
um Prozesse in Form von Logik erster Ordnung zu formalisieren
Prolog - Prädikate
boolesche Funktion, die einem Objekt X einen Wahrheitswert zuweist
-> häufig verwendet, um Eigenschaften von Objekten zu beschreiben
Prolog - Klauseln
logischer Ausdruck, der aus einer endlichen Anzahl von elementaren Aussagen gebildet wird
Prolog-Programme - Erster Schritt
Deklaration von Fakten und Beziehungen (Zusammenhängen)
Prolog-Programme - Beispiel Deklaration von Fakten und Beziehungen
A und B sind beide männlich.
A und B haben denselben Vater.
A und B haben dieselbe Mutter.
A und B sind nicht dasselbe.
„Joachim besitzt ein Buch“
-> Beziehung des Eigentums zwischen Joachim und dem Buch
Prolog-Programme - nach Erklärung der Beziehungen
können:
* Fakten betrachtet
* Fragen gestellt
* Variablen einbezogen
* Ziele formuliert
* Muster abgeglichen werden
- Prolog-Sprachkonstrukt:
Fakt - Prolog-Syntax:
lectures (Fischer, DLMAIAI01)
- Beispiel für Prolog-Klausel
- Stellt Tatsache fest, dass Dr. Fischer den Kurs DLMAIAI01 unterrichtet
- Prolog-Sprachkonstrukt:
Prädikat - Prolog-Syntax:
professor/1
professor(Fischer).
professor(Schmidt).
professor(Meier).
- Definiert Ein-Argument-Prädikat „professor“ durch drei Fakten
- Fischer, Schmidt und Meier sind Professor:innen
- Prolog-Sprachkonstrukt:
Regel - Prolog-Syntax:
technicalCourse(X) :–
engineeringCourse(X)
- Alle Ingenieurstudiengänge sind technische Studiengänge
- Zu beachten ist die Verwendung der Variablen X
- Prolog-Sprachkonstrukt:
Abfrage - Prolog-Syntax:
? – lectures(Fischer, DLMAIAI01)
Unterrichtet Dr. Fischer den Kurs DLMAIAI01?
- Prolog-Sprachkonstrukt:
Ziel - Prolog-Syntax:
? – lectures(Fischer, X)
Welche Kurse unterrichtet Dr. Fischer?
Zu beachten ist die Verwendung der Variablen X
Prolog - Bedeutung
- auf einzigartiger Weise für Umgang mit Logik geeignet
- wurde für Abfrage von Wissensbasen in Vielzahl von kommerziellen Anwendungen eingesetzt
Prolog - Beispiele für Anwendungen
- Umweltstudien zur Modellierung von Wetterphänomenen
-> Aufbau eines Systems für Wettervorhersage und Ausbreitung Luftverschmutzung - mehrere Systeme für Wasserversorgungsunternehmen
-> für Wasserverteilung und -planung, insbesondere in Notfällen - Flugzeughersteller Boeing
-> System namens CASEy, das Mitarbeitenden in Werkstätten beim Umgang mit elektrischen Teilen und in Einhaltung ordnungsgemäßer Betriebsabläufe anleitete