Prolog Grundkurs WS 98/99 Christof Rumpf

Slides:



Advertisements
Ähnliche Präsentationen
Deduktive Datenbanken
Advertisements

Vorlesung Compilertechnik Sommersemester 2008
Kontextfreie Grammatiken
8. Formale Sprachen und Grammatiken
Lösung 7.1 Syntax und Semantik
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Grammatiken, Definitionen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Einführung in die Computerlinguistik
Listen & Beweisstrategie
Rekursive Listenverarbeitung
Maschinelle Übersetzung I
Prolog und Prädikatenlogik I
Parser generieren Yet Another Compiler – Compiler YACC.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Parser für CH3-Sprachen
CFGs und Kellerautomaten
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Semantik von Prolog & Unifikation
Verschachtelte Listen, Differenzlisten, Graphen
Prolog Grundkurs WS 99/00 Christof Rumpf
Syntax von Prolog & Familiendatenbasis
Fakten, Regeln und Anfragen
Reguläre Ausdrücke Karin Haenelt
Sprachwissenschaftliches Institut Einführung in die HPSG Grammatiktheorie 4./11. Mai 2004.
Beispiele für Ausdrucksalgebren
Grammatik als Deduktionssystem
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
§8 Gruppen und Körper (8.1) Definition: Eine Gruppe G ist eine Menge zusammen mit einer Verknüpfung, die jedem Paar (a,b) von Elementen aus G ein weiteres.
Berechenbarkeit. Fragestellungen Können Computer alles ausrechnen? Kann man alles ausrechnen? Was kann man berechnen? Was nicht? Was heißt Berechenbarkeit?
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
Formale Sprachen Grundbegriffe für formale Sprachen
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Basisinformationstechnologie HK-Medien
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 13. Sitzung WS 02/03.
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
1936: On Computable Numbers, with an application to the
Entwurf und Implementierung eines Scanner-Generatorsystems
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.
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele Beispiel 1 Konstruieren Sie für folgende Sprachen über = { a, b, c.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
PS Grundlagen wissenschaftlichen Arbeitens
Noam CHOMSKY, Sheila GREIBACH
Noam CHOMSKY, Sheila GREIBACH
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 28.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele: KFG und Automaten Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln:
Kapitel 4:Die Chomsky Hierarchie
Grammatik als Deduktionssystem Theorie, Grammatik, Grammatiktheorie Grammatik Sprache Hypothese Sprachtheorie Theorie Erklärung Theoretisches Konstrukt.
Prolog Grundkurs WS 99/00 Christof Rumpf
Grundkurs Theoretische Informatik, Folie 5.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 5 Gottfried Vossen Kurt-Ulrich Witt.
Sprachen und Programmiersprachen
 Präsentation transkript:

Prolog Grundkurs WS 98/99 Christof Rumpf rumpf@uni-duesseldorf.de Parsing mit DCGs Prolog Grundkurs WS 98/99 Christof Rumpf rumpf@uni-duesseldorf.de

Sprachen und Grammatiken Eine Sprache kann als eine Menge endlicher Ketten von Wörtern, Morphemen, Phonemen ect. angesehen werden. Nicht jede mögliche Kette dieser Einheiten gehört zu der Sprache. Wir unterscheiden zwischen grammatischen und ungrammatischen Ketten. Eine Grammatik ist eine Menge von Regeln, die die Teilmenge der grammatischen Ketten einer Sprache beschreiben. 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Sprachen A sei eine endliche Menge, genannt Alphabet oder Vokabular. Eine Kette  über A ist eine endliche Sequenz von Elementen aus A. A* ist die Menge aller Ketten über A. Eine Sprache ist eine Menge L  A*.  ist die leere Kette. A = {a,b,c}  = abca A* = {,a,b,c, aa,ab,ac,ba, bb,bc,...} 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Grammatiken Eine Grammatik ist ein Tupel <VT, VN, S, R>. VT ist eine Menge von Terminalsymbolen. VN ist eine Menge von Nichtterminalsymbolen. S  VN wird Startsymbol genannt. R  * VN * × * ist eine endliche Menge von Ersetzungsregeln, mit  = VT  VN. 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Ersetzungsregeln Eine Grammatik ist ein deduktives System von Axiomen und Inferenzregeln, das die Ketten einer Sprache als Theoreme generiert. Seien ,,  *, dann kann durch Anwendung der Regel    jedes Vorkommen der Teilkette  in  durch  ersetzt werden. Mit der Regel AB  CDA können wir z.B. aus der Kette EBABCC die Kette EBCDACC ableiten. 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Chomsky-Hierarchie Die Chomsky-Hierarchie klassifiziert vier Typen von Grammatiken gemäß der Form ihrer Regeln. 0: * VN * × * rekursiv aufzählbar 1: * VN * × * *,  *- kontextsensitiv 2: VN × * kontextfrei 3: VN × VT VN  VN × VT regulär  ist die leere Kette. 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Sprachklassen Jedem Typ der Chomsky-Hierarchie entspricht entspricht eine Sprachklasse. rekursiv aufzählbare Sprachen kontextsensitive Sprachen anbncn kontextfreie Sprachen anbn reguläre Sprachen a*b* 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Automaten Den Grammatiktypen der Chomsky-Hierarchie entsprechen jeweils Typen von Automaten, die die Grammatiken interpretieren können: 0: Turing Maschine 1: Indexierte/linear gebundene Automaten 2: Kellerautomaten (Stack) 3: Endliche Automaten 02.12.98 GK Prolog - Parsing mit DCGs

Parser Ein Parser ist ein Automat, der auf Basis einer Grammatik für eine Kette einen Ableitungsbaum (parse tree) erzeugt. S NP VP Det N V NP Jeder Mann liebt Det N eine Frau Grammatik & „Jeder Mann liebt eine Frau“ 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Kontextfreie PSGs Kontextfreie Phrasenstrukturgrammatiken entsprechen den Typ-2-Grammatiken der Chomsky-Hierachie, d.h. die Regeln sind durch das Muster VN × * beschränkt: Auf der linken Seite steht genau ein Nichtterminalsymbol. Auf der rechten Seite steht eine beliebige Verkettung von Terminal- und Nichtterminalsymbolen. 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Definite Clause Grammars in Prolog entsprechen in ihrer Form den kontextfreien Phrasenstrukturregeln. KF-PSG DCG S  NP VP s --> np, vp. VP  V NP vp --> v, np. V  klaut v --> [klaut]. NP  paul np --> [paul]. NP  bananen np --> [bananen]. 02.12.98 GK Prolog - Parsing mit DCGs

Externe vs. interne Notation DCGs werden beim Laden (consult) eines Prolog-Programms mit Differenzlisten annotiert. Editor (extern) Datenbasis (intern) s --> np, vp. s(A,C):- np(A,B), vp(B,C). vp --> v, np. vp(A,C):- v(A,B), np(B,C). v --> [klaut]. v([klaut|T],T). np --> [paul]. np([paul|T],T). np --> [bananen]. np([bananen|T],T). 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs 02.12.98 GK Prolog - Parsing mit DCGs

Konkatenation von Diff-Listen append_dl((A,B),(B,C),(A,C)). ?- D1 = ([1,2,3|T1],T1), D2 = ([4,5,6|T2],T2), append_dl(D1,D2,D3). D1 = ([1,2,3,4,5,6|T2],[4,5,6|T2]) (A,B) D2 = ([4,5,6|T2],T2]) (B,C) D3 = ([1,2,3,4,5,6|T2],T2) (A,C) T1 = [4,5,6|T2] B T2 = _1 C 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs Übersetzen von DCGs p1 --> p2,...,pn. p1(V1,Vn):- p2(V1,V2),...,pn(Vn-1,Vn). p --> [AtomSeq]. p([AtomSeq|V],V). 02.12.98 GK Prolog - Parsing mit DCGs

GK Prolog - Parsing mit DCGs translate/2 translate((LHS --> RHS)) 02.12.98 GK Prolog - Parsing mit DCGs