Installiere die Dokumente-Online App

word image
Fachbereichsarbeit

Einfüh­rung in Prolog - Fach­ar­beit Program­mier­sprache

2.437 Wörter / ~15 Seiten sternsternsternstern_0.2stern_0.3 Autor Nico W. im Feb. 2018
<
>
Download
Dokumenttyp

Fachbereichsarbeit
Informatik

Universität, Schule

Gesamtschule Dabendorf

Note, Lehrer, Jahr

9, Schmidt,2017

Autor / Copyright
Nico W. ©
Metadaten
Preis 5.30
Format: pdf
Größe: 0.12 Mb
Ohne Kopierschutz
Bewertung
sternsternsternstern_0.2stern_0.3
ID# 71803







Einführung in Prolog


Bild 1





Inhaltsverzeichnis


Einleitung 3

Allgemeine Informationen zu Prolog 4

Entwickler 4

Grundlegende Informationen 5

Terme 5

Zusammengesetzter Term 5

Klauseln 6

Vergleichsoperatoren 7

Unifikation und Resolution 8

Unifikation und Resolution 8

Projekt eigene Datenbank mit Prolog erstellen 9

Wie erstelle ich eine eigen Datenbank mit Prolog? 9

Einführung in meine Datenbank 10

Meine Datenbank und Anfragen 10

Schlusswort 12

Quellenverzeichniss 13

Internetseiten 13

Bildquellen: 14

Bücher 14

Videos 14


Einleitung


Ich habe mich für diese Thema entschieden da ich mich schon immer sehr für die Software von Pc´s interessiert habe und deshalb sogar schon ein Praktikum über 2 Wochen bei IBM gemacht habe. Dort habe ich dann eine Woche bei dem internen Support Team bei IBM geholfen habe. Dies hat mir bereits sehr viel Spaß gemacht auch wenn ich dabei noch nicht wirklich etwas mit der Software zu tun hatte sondern nur derjenige war der diese Software auf den PC´s installiert hat.

Aber allein die Erfahrung was man mit bestimmter Software teils machen kann wahr schon sehr gut für mich denn das hat mein Interesse am programmieren nur noch mehr geweckt. Deswegen habe ich mich für eine Programmiersprache als Thema meiner Seminararbeit entschieden. Ich glaube diese Seminararbeit wird mir helfen rauszufinden ob ich lieber lernen möchte etwas wirklich zu programmieren oder ob ich lieber wie bei IBM in Richtung Support etwas machen möchte.

Bisher weiß ich auch nicht wirklich etwas über Prolog obwohl es eine der bekanntesten Programmiersprachen ist daher denke ich wird mir die folgende Arbeit sehr dabei helfen rauszufinden was ich denn nun möchte. Außerdem interessiert mich das es bei IBM eine Software gab die einfach alle Passwörter des PC's umgangen hat und die Administratorrechte an einen neuen Benutzer des Computers übertragen hat.

Ich hoffe das mir Prolog dabei hilft wenigstens zu erahnen wie so etwas funktionieren könnte, denn ich glaube das, dass etwas ist das man mit 3,5 Jahren Informatik Studium noch lange nicht erreichen kann. Auch wenn sich meine Hoffnung wohl eher nicht erfüllen wird das ich ein Ahnung davon kriegen werde wie das funktioniert glaube ich das ich Spaß bei der Arbeit und dem Informieren über Prolog haben werde.

Allgemeine Informationen zu Prolog

Die Entwicklung von Prolog begann 1970 und Prolog wurde 2 Jahre später also 1972 in Marseilles veröffentlicht. Die Entwickler von Prolog heißen und hießen Alain Marie Albert Colmerauer und Philippe Roussel. Der erste Compiler für Prolog war aber von David H. D. Warren einem britischer Informatiker.

Entwickler


Alain Colmerauer wurde am 24. Januar 1941 in Carcasonne, Frankreich geboren. Zu seinem Leben ist nicht sehr viel bekannt. Man weiß, dass er ab 1963 an der École nationale supérieure d'informatique et de mathématiques appliquées in Frankreich studierte. 1967 bekam er dann einen Doktortitel für seine Dissertation Précédence, analyse syntaxique et langages de programmation.

Der Titel seiner Dissertation heißt so viel wie Priorität dem Parsen und den Programmiersprachen. Die nächsten 3 Jahre nach Erhalt des Doktortitels war er als Assistenzprofessor an der Universität Montreal in Kanada tätig. Ab 1970 arbeitete er dann mit einem Team an der Programmiersprache Prolog deren Entwicklung und Design 2 Jahre dauerte. 1972 war es dann soweit die Entwicklung wurde in Marseilles abgeschlossen. 1986 wurde er zum Ritter der Ehrenlegion geschlagen und ein Jahr später wurde er korrespondierendes Mitglied der Académie des sciences(Akademie der Wissenschaft).

Download Einfüh­rung in Prolog - Fach­ar­beit Program­mier­sprache
• Download Link zum vollständigen und leserlichen Text
• Dies ist eine Tauschbörse für Dokumente
• Laden sie ein Dokument hinauf, und sie erhalten dieses kostenlos
• Alternativ können Sie das Dokument auch kаufen

Weiterhin ist noch bekannt das er dieses Jahr also am 12. Mai 2017 in Marseille verstarb und 3 Kinder und eine Ehefrau hinterließ.

Über Philippe Roussel ist kaum etwas bekannt. Er wurde am 13 Mai 1945 geboren und lebt auch heute noch. Er war natürlich auch Informatiker und hat stark zu der Entwicklung von Prolog beigetragen und hat auch seinen Beitrag zur Erforschung künstlicher Intelligenz geleistet.

Nur Philippe Roussel gilt als einer der Begründer der logischen Programmierung. Da Alain Colmerauer eher für das Design zuständig war.

Grundlegende Informationen

Terme

Einfache Terme sind Variablen und Konstanten. Variablen beginnen in Prolog immer mit einem Großbuchstaben (X) oder einem Unterstrich ( _ ) und Konstanten sind entweder Zahlen (numerische Konstanten(1,5,23)) oder beginnen mit Kleinbuchstaben (symbolische Konstanten(buch, mann y)). Symbolische Konstanten werden auch als Atome bezeichnet.


Zusammengesetzter Term


Es gibt auch komplexere Terme diese werden dann als Strukturen bezeichnet und bestehen aus einem Funktor und einem oder mehreren Argumenten: z.B. vater (stefan, tim) oder mutter ( michaela, 47) in diesem Fall ist vater ein Funktor (Ein Funktor muss immer ein Atom sein.) und mutter ein Funktor und in den Klammern dahinter stehen die dazugehörigen Argumente , welche wenn es mehrere sind durch ein Komma getrennt werden.

Die Argumente sind dann wieder einfache Terme.


Klauseln


Es gibt 3 verschieden Typen von Klauseln. Es gibt die Fakten, die Regeln und die Anfragen und alle 3 werden mit einem Punkt abgeschlossen.

Die Fakten sind die einfachsten Bestandteile von Klauseln. Sie beschreiben die Beziehung zwischen Objekten beziehungsweise sind Informationen die etwas festlegen. Fakten bestehen aus Termen beziehungsweise aus zusammengesetzten Termen.

Die Regeln sind den Fakten ähnlich, denn Regeln haben einen Kopf und einen Körper und Fakten sind im Grunde nur der Kopf ohne den Körper. Regeln werden benutzt um komplexe Fragen auf einfache zu reduzieren und um Programme zu verkürzen damit man, wenn man einen neuen Fakt hinzufügt nicht das komplette Programm manuell erweitern muss. Bei Regeln wird immer versucht der Kopf durch den Körper zu beweisen beziehungsweise zu bewahrheiten.

Die nachfolgende Regel gibt vor, dass X der Opa von Y ist wenn X der Vater von Z ist und Z Vater oder Mutter von Y ist.









Kopf der die erste die zweite der zweite Teil

Regel Bedingung Bedingung der 2. Bedin- gung

:- als Zeichen das der , als Verknüpfung der ;als Differenzierung

Körper beziehungsweise Bedingungen mit dem zwischen 2

die Bedingungen ab dort logischen und. Bedingungen mit

geschrieben werden. logischen oder.


Durch Anfragen lassen sich Informationen aus einer Datenbasis gewinnen die durch Fakten und Regeln dargestellt sind. In Anfragen kann man auch Variablen verwenden. Zum Beispiel: wenn ich weiß, dass es für meine Frage mehrere Lösungen gibt. Dann antwortet Prolog nicht mit true oder false sondern gibt dir jedes Mal wenn du die Enter Taste betätigst eine möglich Lösung für deine Variable an bis keine mehr vorhanden sind.

Das erkennt man daran das Prolog die Anfrage dann von alleine mit einem Punkt abschließt.

Vergleichsoperatoren

Es gibt viele Vergleichsoperatoren von denen ich die wichtigsten beziehungsweise die am häufigsten verwendeten erkläre.

Dabei muss allerdings beachtet werden das beim kleiner als und größer als Das Relationszeichen(=) immer an das spitze Ende kommt, damit Prolog es erkennt. Dann gibt es noch das == (gleich gleich) das 2 Zeichenketten miteinander vergleicht also 7==7 wird von Prolog als true erkannt aber nicht 6+1, da ja nur die Zeichenkette verglichen wird. Es gibt aber auch den arithmetischen Vergleich mit =:= oder mit is. Der letzte häufiger verwendete Vergleichsoperator ist das =\=(ungleich) welches überprüft on 2 Zahlen nicht gleich sind.

Sehr wichtig sind aber auch noch die Operatoren und und oder. Das logische und ist ein Komma(,) und verknüpft 2 Aussagen miteinander. Prolog erkennt dadurch es kann nur true zurückgeben werden wenn beide Aussagen richtig also true sind. Das logische oder Verknüpft auch 2 Aussagen aber auf andere Weise. Durch das oder wird ein true ausgegeben wenn mindestens eine der Aussagen stimmt.

Unifikation und Resolution

Diese beiden Begriffe sind sehr nahe miteinander Verknüpft den mithilfe der Resolution wir unifiziert. Bei der Unifikation wird überprüft ob 2 einfache aussagen zu einander passen. Das passiert immer wenn man eine Anfrage mit Variablen an Prolog stellt. Dann wird in einem sogenannten Resolutionsschritt überprüft ob es eine Lösung für die Variable gibt.

Ein Beispiel hierfür ist wenn ich ein Anfrage stelle ?- Vater(stefan, X). Dann ist der Resolutionsschritt das Suchen des Funktor Vater und dann bei den Funktoren Vater das Argument 1 stefan zu finden. Die Unifikation ist dann das anfangs erwähnt Verknüpfen von den beiden Aussagen X und tim. Als Ergebnis der Unifikation bekommen wir dann raus das die Variable X= tim ist.

Wie erstelle ich eine eigen Datenbank mit Prolog?


Diese Frage hab ich mir am Anfang gestellt, denn alles was ich über Prolog wusste war, dass es eine Logische Programmiersprache ist. Sonst hatte ich aber keine weiteren Kenntnisse über Prolog. Also habe ich mir Prolog aus dem Internet heruntergeladen und wie ich aus Informatik schon wusste einen Editor damit ich in Prolog auch arbeiten kann. Das hat sehr viel Zeit in Anspruch genommen aber dazu komme ich im Schlussteil nochmal.

Nachdem ich Prolog dann hatte war das Programm zwar auf dem Computer aber ich hatte immer noch keine Ahnung wie es funktioniert . Also habe ich mich mit den eben beschriebenen Grundbegriffen beschäftigt und einige Videos gesehen. Es ist im Grunde ganz einfach man gibt eigentlich nur ein was man erst mal in der Datenbasis haben will. Im nebenstehenden Bild sieht man ein Beispiel von mir wo ich Informationen in den Prolog Editor eingegeben habe.


Einführung in meine Datenbank


Bei meiner Datenbank habe ich mich für einen kleinen Teil meines Familienstammbaumes entschieden da ich nicht so viele Ideen hatte und ich durch den Familienstammbaum mir sofort selber viele Information liefere an denen ich selber erst mal überprüfen konnte wie Prolog funktioniert und auch genug Informationen um auf eine kleine Datenbank zu erstellen. Meine Datenbank soll auch nicht kompliziert sein sondern nur ein sehr einfaches Beispiel um Fakten, Regeln und Anfragen zu verstehen.

Da diese noch leicht zu verstehen sind. Die Vergleichsoperatoren kennt man bereits aus anderen Programmen und der Mathematik, dehalb geh ich auf diese nicht weiter ein, denn Prolog "weis" auch bereits von alleine das 3<4 und das 7<1 ist. Das bedeutet Prolog hat bereits ein Grundverständnis von Mathe einprogrammiert ohne das man etwas dazu erstellen muss

(Erklärungen zu den einzelnen Sachen im Prologeditor)

Man sieht jetzt das ich von Zeile 4 bis 19 Fakten und in den Zeilen 20, 21 Regeln verfasst habe. Daran kann ich jetzt Anfragen stellen. Fang ich erst mal mit etwas leichtem an. Ich möchte wissen ob robert ein mann ist. Also frage ich Prolog ?-mann(robert).und Prolog antwortet mit true. Wenn ich aber Frage ?-mann(conny). dann sagt Prolog false. Aber nicht weil conny als frau deklariert wurde sondern weil sie nicht als mann deklariert wurde.

Jetzt zu Fragen die sich auf die Regeln beziehen. Jetzt stell ich die Anfrage ?-opa(stefan, tim). und diese müsste mit false beantwortet werden da stefan weder in die Bedingung mutter von Tim fällt und auch nicht in die Bedingung vater von michaela.Nachdem ich es überprüft habe kommt false raus. Das stimmt und somit muss ich noch überprüfen ob die Regel auch true anzeigt wenn ich nach der richtigen Lösung Frage.

Ich finde das Beispiel ist passend um die Grundinformationen Klauseln(Fakten, Regeln, Anfragen), Term, zusammengesetzter Term die ich erklärt habe nochmal gut aufzuzeigen und es ist auch leicht nachzuvollziehen da jeder Mensch einen Familien Stammbaum hat und damit ein gewisses Grundverständnis für das Thema mitbringt.

Schlusswort


Diese Seminararbeit hat mir echt Spaß gemacht und ich habe begriffen wie komplex Programmiersprachen sein können. Man kann nicht mal so Prolog erklären da viel zu viel dahinter steckt und wie _____(die Lehrerin) schon sagte das es maximal eine Einführung in Prolog sein kann und ich Prolog grade mal "anhauchen" kann, denn alles was dahinter steckt könnte man selbst in 100 Seiten nicht erfassen.

Nach diesen Anfangsschwierigkeiten und nachdem ich Anfing mich ernsthaft mit dem Thema auseinanderzusetzen hat diese Arbeit mir aufgezeigt das ich mich wirklich anstrengen muss wenn ich Informatik studiere möchte und es nicht wie bisher alles ganz locker nehmen kann. Im Vergleich zu Java kam es mir jetzt leichter vor Prolog in seinen Ansätzen zu verstehen aber ich vermute das es nur daran liegt weil ich mich durch die Einführung in Java schon ein wenig in der Richtung auskannte.

Ich vermute aber das Prolog wohl schwerer als Java zu verstehen sein wird da ich gesehen hab wie komplex alles sein kann, wobei ich den Vergleich nicht wirklich ziehen kann da ich mich nicht ausführlich mit Java beschäftigt habe. Ich vermute das es für mich irgendwann zu kompliziert wird mich wirklich mit Software und dem Programmieren auseinander zu setzen weshalb ich glaube das, dass was ich in den 2 Wochen bei IBM gemacht habe das richtige für mich sein könnte.

Fazit für mich also: Prolog hat mir geholfen in dem Sinne das ich immer noch in die gleiche Richtung: Informatik gehen möchte aber ich sollte nochmal genau gucken was mir denn da am meisten liegen wird.

Quellenverzeichniss


Internetseiten

letzte Aufruf: 09.11.2017

letzte Aufruf: 09.11.2017

letzte Aufruf: 09.11.2017

letzte Aufruf: 09.11.2017

letzte Aufruf: 09.11.2017

letzte Aufruf: 09.11.2017

ws03/LogischeProgrammierung.pdf;

letzte Aufruf: 09.11.2017

letzte Aufruf: 10.11.2017

Bildquellen:

Bild1:

Swi-Prologeditor aus meiner Datenbank

letzte Aufruf: 10.11.2017

Bücher

Dr. L. H. Klingen, Prof. Dr. k. Menzel, Prof. Dr. W. Stucky: Problemlösen mit Prolog

ISBN: 3-519-12541-2

letzte Aufruf: 10.11.2017

letzte Aufruf: 10.11.2017

letzte Aufruf: 10.11.2017

letzte Aufruf: 10.11.2017

letzte Aufruf: 10.11.2017

Quellen & Links

Swop your Documents

G 2 - Cached Page: Thursday 28th of March 2024 09:06:35 PM