EinfŸhrung Ð 1. bersicht. Aufbau des Kurses Organisatorisches. Warum gerade Prolog? Ein erstes Prolog-Programm. bungsaufgaben Folienkopien

Ähnliche Dokumente
Kontrolle. bersicht. Ziel. Alle Lšsungen fÿr ein Ziel erhalten. Negation Disjunktion SuchbŠume stutzen: Cut

Effiziente Prolog-Techniken

Lšsungen: EinfŸhrung

Prolog-Strukturen. bersicht. Woraus besteht ein Prolog-Programm? EinfŸhren wichtiger Begriffe Verschiedene Arten von Termen Unifikation

Shift-Reduce-Parsing: Ein einfaches Bottom-Up-Verfahren Keller Shift- und Reduce-Schritte Vorgehen des Parsers Implementation in Prolog Probleme

Rekursion. bersicht. Ziel. Beispiele fÿr Bezug auf sich selber. Woraus besteht eine rekursive Definition? Rekursion in Prolog Weitere Beispiele

1. Grundkonzepte der logischen Programmierung 2. Syntax von Prolog 3. Rechnen in Prolog. IV.1 Grundkonzepte der logischen Programmierung - 1 -

Bestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen. Ein Programm besteht aus

Die vorgestellten Chart-Parser haben bei bestimmten Grammatiken Probleme die Symbole der Grammatik dÿrfen nicht unterspezifiziert sein

Programmieren in Haskell Einführung

Parsing-Repetition. bersicht. Ziel

Top-Down-Parsing: DCGs

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Einführung in PROLOG. Christian Stocker

Künstliche Intelligenz Einführung in Prolog

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Grundlagen der Programmierung UE

Programmiersprachen Proseminar

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

Parsing-EinfŸhrung Ð 1

Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich

Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker

Grundlagen der Programmierung UE

10. Programmierungs-Phase: Objektorientierung Software Engineering

SelektionsbeschrŠnkungen Ð 1

Software-Entwicklung

Neben allgemeinen Programmiertechniken gibt es eine Anzahl von Mšglichkeiten, um Parser zu beschleunigen.

Algorithmen und Programmieren II Einführung in Python

Programmiertechnik. Prof. Dr. Oliver Haase Raum G124 Tel: 07531/ Oliver Haase Hochschule Konstanz 1

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

1.3 Geschichte der Programmiersprachen

Chart-Parsing. bersicht. Ziel. Motivation: Bisher vorgestellte Verfahren sind nicht effizient Grundidee des Chart-Parsing Datenstruktur

Übung zu Kognitive Systeme I

Objektorientiertes Software-Engineering

Vorlesung Programmierung

Listen. bersicht. Zweck. Listen allgemein Listen in Prolog. Programmiertechniken mit Listen. Erstellen von Prolog-Programmen mit Listen

Vorlesung Programmierung

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Die Website der Pressglas-Korrespondenz und Adobe Reader, Version 9.1

Vorlesung Programmierung

Hinweise und Hilfe. Zurück zur Startseite

Logische Programmierung

Prof. Dr. Jürgen Giesl Lehr- und Forschungsgebiet Informatik 2. Proseminar - 1 -

Stichwort-Erkennung. bersicht. Zweck. Sprachverarbeitung ohne Syntax? System erkennt einzelne Stichwšrter, ignoriert den Rest

Programmiersprachen und Programmierkonzepte

Bestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen

Grundlagen der Informatik

Vorlesung Programmieren

Sprachenhierarchie. bersicht. Zweck. Begriffe Hierarchie verschiedener Formalismen (unvollstšndig) Wo liegen die natÿrlichen Sprachen?

Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise?

6. Programmiersprachen im Überblick. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Softwaretechnik. Wesentliche Inhalte der Vorlesung

Grundlagen der Programmiersprachen

Programmierkurs Python I

Informatik Java-Programmierkurs im Rahmen der Berufs- u. Studienorientierung für Schüler. Joliot-Curie-Gymnasium GR 2010 Nico Steinbach

Übung zu Grundlagen der Logik und Logik-Programmierung

Deklarative Programmierung

Seminar Künstliche Intelligenz Wintersemester 2013/14

Berater-Profil DB-Administrator, Systementwickler (Oracle) EDV-Erfahrung seit Verfügbar ab auf Anfrage.

Logische Programmierung


Angewandte Linguistik IUED Institut für Übersetzen und Dolmetschen Sprachtechnologie für die mehrsprachige Kommunikation

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Manipulation der Datenbasis und Aufsammeln von Lösungen

Anleitung zur Installation eines PostScript-Druckertreibers

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

2 Grundlagen der Programmierung

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Grundlagen der Modellierung und Programmierung, Übung

Sprachen und Programmiersprachen

Modellierung und Programmierung 1

Wir lernen unseren Körper kennen

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Beschreibung Fernkurs

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Grundlagen Software Engineering

Einführung in die Informatik

Einführung in PROLOG

4 Ausklang. ALP 2, Hannes Federrath, Sommersemester 2001

Herzlich Willkommen. Grundbegriffe der Informatik

Tilman Bauer. 4. September 2007

Informationen zur Nutzung des Formularservers

Liste MI / Liste I Programmieren in C++

Rekursive Listenverarbeitung

Abgabe: (vor 12 Uhr)

Programmierung mit Java Teil 1

Navigation. Drucken Klicken Sie auf ein Symbol, um nähere Informationen zu erhalten. Papierhandhabung Anzeigen der Online-Informationen

Einleitung und Begriffliches. Einleitung. Programmiersprachen. Software-Komplexität ist inhärent und hat vor allem folgende Ursachen

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Morphologie. bersicht. Ziel. Grundbegriffe Vollformen-Lexikon Morphologische Analyse mit DCGs

Installationsanleitung für PSpice (DesignLab Evaluation 8)

Computeria Kurs vom

Einführung in die Informatik

FACHHOCHSCHULE MANNHEIM

Funktionale Programmierung (in Clojure)

PDF-Dateien erstellen mit FreePDF

Transkript:

EinfŸhrung bersicht Aufbau des Kurses Organisatorisches bungsaufgaben Folienkopien Warum gerade Prolog? Vor- und Nachteile Beispiele fÿr gršssere Projekte Ein erstes Prolog-Programm EinfŸhrung Ð 1

Aufbau des Kurses Prolog-Kurs EinfŸhrung in Prolog Programmiertechniken Computerlinguistische Anwendung: Parsing Elementare Verfahren, um die Struktur eines Satzes (entsprechend einer Grammatik) zu bestimmen PrŸfung fakultativ, ersetzt nicht die Akzess-PrŸfung ÈScheinÇ erleichtert allfšlliges Wechseln der UniversitŠt EinfŸhrung Ð 2

Organisatorisches bungsaufgaben Tutorat: Donnerstags 10 Ð 12 Uhr, RŠmistrasse 69, Zimmer U1 Bei Fragen: E-Mail an Simon Clematide Üsclematide@access.chÝ Schriftliche Abgabe mšglich Kurzbesprechung jeweils in der nšchsten Stunde Abgabe von Musterlšsungen EinfŸhrung Ð 3

Lšsen der bungsaufgaben Zuhause Abgabe von SICStus Prolog auf CD-ROM Plattformen: Macintosh, Windows 95/98/NT, weitere auf Anfrage Kosten fÿr Einzellizenz CHF 50.Ñ fÿr Nicht-Mitglieder der Fachschaft Computerlinguistik CHF 30.Ñ fÿr Mitglieder der Fachschaft Angebot: Fachschaftsmitgliedschaft + Prolog fÿr CHF 45.Ñ Fragen, Probleme: Toni Arnold Ütarnold@cl.unizh.chÝ Im bungsraum U1, RŠmistrasse 69 SICStus Prolog steht gratis zur VerfŸgung EinfŸhrung Ð 4

Folienkopien Folienkopien werden vor jeder Stunde verteilt. In der nšchsten Lektion bitte CHF 10.Ñ als erste Ratenzahlung mitbringen. Die Folien sind auch im WWW verfÿgbar. Adresse: http://www.coli.uni-sb.de/~brawer/prolog/ Format: PDF-Dateien fÿr Adobe Acrobat Programm zum Lesen (Acrobat Reader 3) auf der SICStus-CD-ROM http://www.adobe.com/prodindex/acrobat/readstep.html EinfŸhrung Ð 5

Arten von Programmiersprachen Java Perl C Modula Pascal Basic Fortran Cobol Imperativ Was muss ich tun, um das Problem zu lšsen? Prolog Lisp Logisch Was weiss ich Ÿber das Problem? Funktional EinfŸhrung Ð 6

Warum gerade Prolog? Vorteile von Prolog in der kÿnstlichen Intelligenz sehr beliebt einfach zu lernen klare, mathematisch fundierte Grundlage Prolog = ÈProgrammieren in LogikÇ ein Prototyp ist sehr rasch programmiert gleiche AusdrucksstŠrke wie andere Programmiersprachen auch Turing-MŠchtigkeit fÿr bestimmte Problemstellungen ein ideales Werkzeug EinfŸhrung Ð 7

Warum gerade Prolog? Allerdings: nicht immer sehr effizient: langsam, speicherintensiv fÿr manche Problemstellungen etwas umstšndlich Daher: Prolog sehr geeignet, um neue Verfahren rasch auszutesten (rapid prototyping) EndgŸltiges Produkt wird oft nochmals von vorne entwickelt (re-engineering) verschiedene Teile eines Systems mit dem jeweils geeignetsten Werkzeug erstellen EinfŸhrung Ð 8

Warum gerade Prolog? Gršssere Sprachverarbeitungs-Projekte in Prolog: Verbmobil (die meisten Teile) Maschinelle bersetzung gesprochener Sprache SVOX (nur Teile) Sprachsynthese-System der ETH ZŸrich Telefon: 031/934 05 50 á http://www.tik.ee.ethz.ch/cgi-bin/w3svox zahlreiche andere EinfŸhrung Ð 9

Die Welt von Familie Meier: Fakten Familie Meier besteht aus Hans, Klara, Sabrina, Kevin und Fido. Fakt: Hans, Klara, Sabrina und Kevin sind Personen. Fakt: Fido ist ein Hund. Fakt: Klara und Sabrina sind weiblich. Fakt: Hans und Kevin sind mšnnlich. Fakt: Fido ist mšnnlich. person(hans). person(klara). person(sabrina). person(kevin). hund(fido). weiblich(klara). weiblich(sabrina). maennlich(hans). maennlich(kevin). maennlich(fido). EinfŸhrung Ð 10

Die Welt von Familie Meier: Regeln Die Eigenschaft Frau kann aus Person und weiblich abgeleitet werden: Regel: Wenn Jemand eine Person ist, und wenn derselbe Jemand auch weiblich ist, dann ist dieser Jemand eine Frau. frau(jemand) :- person(jemand), weiblich(jemand). EinfŸhrung Ð 11

Die Welt von Familie Meier: Anfragen Prolog kennt jetzt Meiers und manche ihrer Eigenschaften; es kann nun Auskunft geben. Anfrage: Ist Fido ein Hund? Anfrage: Ist Kevin ein Hund? Anfrage: Wer ist alles eine Frau??- hund(fido). yes.?- hund(kevin). no.?- frau(wer). Wer = klara ; Wer = sabrina ; no more solutions. EinfŸhrung Ð 12

Aufgaben: EinfŸhrung Programmiertechniken der Computerlinguistik 1 á Wintersemester 1998/99 1. Kennenlernen des Prolog-Interpreters Mache Dich mit der Bedienung eines Prolog-Interpreters vertraut, zum Beispiel von Sicstus Prolog (wird durch die Fachschaft verkauft). Gib die nachfolgenden Fakten und Regeln ein Ñ es handelt sich um Familie Meier aus der Vorlesung. Stelle einige Anfragen. /* Personen */ person(hans). person(klara). person(sabrina). person(kevin). /* Tiere */ hund(fido). /* Geschlecht */ weiblich(klara). weiblich(sabrina). maennlich(hans). maennlich(kevin). maennlich(fido). /* Wenn jemand eine Person und weiblich ist, handelt es sich um eine Frau. */ frau(jemand) :- person(jemand), weiblich(jemand). 4. Formalisieren Schreibe die folgenden Aussagen bzw. Regeln als Prolog-Fakten: a) Peter kennt Katrin. b) Katrin kennt Peter. c) Fido mag Gulasch. d) Olten liegt zwischen ZŸrich und Genf. e) Eine Person, die mšnnlich ist, ist ein Mann. Wie lauten die folgenden Anfragen in Prolog? g) Kennt Peter Katrin? h) Wen kennt Peter? i) Was mag Fido? 5. Fakten und Regeln Handelt es sich bei den folgenden Klauseln jeweils um Fakten oder um Regeln? a) idiot(peter). b) genie(maria). c) fachidiot(jemand) :- idiot(jemand), genie(jemand). d) tochter(t, Elternteil) :- mutter(elternteil, T), weiblich(t). e) tochter(t, V) :- vater(v, T), weiblich(t). 2. Schnurrli Meier Familie Meier mag Tiere sehr; neben dem Hund Fido treibt nun auch die Katze Schnurrli ihr Unwesen. Erweitere das obige Prolog-Programm um ein entsprechendes Faktum, und weise Schnurrli ein Geschlecht Deiner Wahl zu. 3. Regeln umschreiben Formuliere folgende Prolog-Regeln als deutsche SŠtze: a) tier(etwas) :- hund(etwas). b) tier(etwas) :- katze(etwas). c) bestraft(leben, X) :- kommt_zu_spaet(x). d) faellt_in(x, Z) :- graebt(x, Y, Z), ungleich(x, Y), grube(z).