PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.

Slides:



Advertisements
Ähnliche Präsentationen
(Zweistufige) Logiksynthese
Advertisements

Inhalt Saarbrücken,.
Statistische Aspekte der PSG
Semantik und Wissensrepräsentation
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Kontextfreie Grammatiken
für Kommunikation, Informationstechnik und Ergonomie
8. Formale Sprachen und Grammatiken
Verifizieren versus Berechnen
Algorithmen und Komplexität
Maschinelle Übersetzung I
KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen.
Objektorientierte Datenbanken
Java: Objektorientierte Programmierung
Grammatikentwicklung
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Default-Vererbung in der Unifikationsgrammatik Christof Rumpf Heinrich-Heine-Universität Düsseldorf
Semantik von Prolog & Unifikation
Verschachtelte Listen, Differenzlisten, Graphen
Prolog Grundkurs WS 99/00 Christof Rumpf
Fakten, Regeln und Anfragen
Prolog Grundkurs WS 98/99 Christof Rumpf
Typinferenz (mit Bitvectoren) Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf Gast: Wolfram Bernhardt.
Typinferenz Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Chart-Parsing Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Vorschau Prolog Aufbaukurs SS 2003 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
PATR II Compiler Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Parsing Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Merkmalslogik Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.
Reguläre Ausdrücke Karin Haenelt
Grammatik als Deduktionssystem
Lexikalisch-Funktionale-Grammatik
Christian Schindelhauer
Lexikalisch-Funktionale Grammatik
Lexikalisch-Funktionale Grammatik
Grammatiktheorien Head-Driven Phrase Structure Grammar Einführung.
Was bedeutet "Weiche drei schalten"?
Exact String Matching II1 Exact String Matching: A Deeper Look at Classical Methods Erweiterte Anwendungen zu Boyer-Moore und Knuth-Morris-Pratt Hauptseminar.
TEILCHENPHYSIK FÜR FORTGESCHRITTENE
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Prof. Dr. F. Mücklich, Dipl.-Ing. C. Gachot Organisatorisches: 15 min
Pascal Schmidt 25. November 2010
Flüsse, Schnitte, bipartite Graphen
Einführung in die Programmierung
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Java für Fortgeschrittene
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Peter Hackl Sprechstunde: Fr, 10:30-11:30 Tel.:
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
C. Boehme, O. Haan, U. Schwardmann GWDG Übungen II Programmierung von Parallelrechnern.
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.
MODULA-2.
Fachdidaktik Informatik I BEGRIFFE (Buch I / II) Paul Miotti Riedstr Kriens
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Informatik III Christian Schindelhauer Wintersemester 2006/07
Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung
Transaktionen Dr. Heidrun Bethge Datenbanken II.
C. Boehme, O. Haan, U. Schwardmann GWDG Übungen II Programmierung von Parallelrechnern.
Funktionale Unifikations-Grammatik (FUG)   Hauptmerkmale der FUG.
Funktionale Unifikations-Grammatik (FUG)  Hauptmerkmale der FUG.
Lexikalisch-Funktionale Grammatik   Kontrollphänomene   Funktionale Kontrolle   Anaphorische Kontrolle.
Lexikalisch-Funktionale Grammatik   Subsumption   Unifikation   Von der K-Struktur zur F-Struktur.
Lexikalisch-Funktionale-Grammatik  Formaler Aufbau der F-Strukturen  Funktionale Beschreibungen  Funktionale Annotationen  Von der K-Struktur zur F-Struktur.
Merkmale und Merkmalstrukturen
Der PATR II Formalismus
Prolog Grundkurs WS 99/00 Christof Rumpf
Merkmale und Merkmalstrukturen   Merkmale   Merkmalstrukturen   Unifikation.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Dr. Wolfram Amme, Grundsätze der Logikprogrammierung, Informatik II, FSU Jena, SS Grundsätze der Logikprogrammierung.
13.Dezember 2006–1Elektronisches Publizieren: Schemasprachen — Relax NG Schemasprachen für XML — Relax NG — Anne Brüggemann-Klein TU München.
 Präsentation transkript:

PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf

PATR II2 Grammatik-Formalismen Grammatikformalismen sind Sprachen zur Beschreibung von Sprachen. –Metasprache (Formalismus: Beschreibungsebene) –Objektsprache (natürliche Sprache: Objektebene) Anwendungszweck von Formalismen: –Werkzeug-orientiert (PATR II, ALE, QType,...) –Theorie-orientiert (LFG, GPSG, HPSG,...)

PATR II3 Motivation für Formalismen Präzises Werkzeug für die Beschreibung natürlicher Sprachen. Einschränkung der Klassen möglicher natürlicher Sprachen. Computer-interpretierbare Charakterisierung natürlicher Sprachen.

PATR II4 Anforderungen an Formalismen Linguistische Adäquatheit –Linguistische Phänomene sollten möglichst direkt darstellbar sein. Ausdruckskraft –Welche Problemklassen können überhaupt dargestellt werden? Berechenbarkeit/Effizienz –Welche Werkzeuge aus der Informatik werden benötigt und welche Eigenschaften haben sie?

PATR II5 PATR-Design-Entscheidungen Oberflächenbasiert (vs. transformationiell) Informationstragend (linguistisches Wissen) Induktiv (Berechnung der Informationskombination) Deklarativ (was vs. wie wird berechnet) Merkmalsbasiert bzw. Constraintbasiert (komplexe Merkmalsstrukturen)

PATR II6 Abdeckung theoretischer Frameworks CG categorial grammar GPSGgeneralized phrase structure grammar HPSGhead driven phrase structure grammar LFGlexical functional grammar FUGfunctional unification grammar DCGdefinite clause grammar...

PATR II7 PATR Basisoperationen Konkatenation –String-Kombination auf Basis eines kontextfreien Phrasenstrukturgerüst. Jeder (Teil-)String wird mit einer Merkmalsstruktur assoziiert. Unifikation –Informations-Kombination durch monotone Unifikation von Merkmalsstrukturen.

PATR II8 Merkmalsstrukturen Seien F (features) und V (values) Mengen. Dann ist FS (feature structures) eine Menge von partiellen Funktionen F V mit V FS 1. 1: Bzw. V ohne atomare Werte.

PATR II9 DAGs Zyklische Merkmalsstrukturen können sich selbst als Wert enthalten. Azyklische Merkmalsstrukturen können als gerichtete azyklische Graphen (DAGs) betrachtet werden. numpers sing3

PATR II10 Typ- vs. Tokenidentität Typidentität: f und g haben zwei verschiedene Werte vom Typ a. Tokenidentität: f und g haben den identischen Wert a. Die Indexe nennt man Tag, Reentrancy oder Koindexierung.

PATR II11 Subsumption Subsumption ist eine partielle Ordnungsrelation über Merkmalsstrukturen, die auf der Spezifizität der enthaltenen Information beruht. Informell: FS 1 FS 2 gdw. alle Information in FS 1 ebenfalls in FS 2 enthalten ist.

PATR II12 Unifikation Die Unifikation FS 1 FS 2 = FS 0 ist die allgemeinste Merkmalsstruktur FS 0, so dass FS 1 FS 0 und FS 2 FS 0. Falls FS 0 nicht existiert, scheitert die Unifikation.

PATR II13 PATR II Merkmalslogik Eine Merkmalslogik ist eine Beschreibungs- sprache für Merkmalsstrukturen. Ein Ausdruck L i L der PATR II-Merkmalslogik L ist eine Abbildung L i FS (vs. L i (FS) mit Negation und Disjunktion). Bestandteile der PATR II-Merkmalslogik sind –Pfadgleichungen P –Makros ML = (P M)* –Konjunktion

PATR II14 Pfadgleichungen Seien FS i FS, F j F, AV k AV (atomare Werte), mit AV V und sei P die Menge der Pfade, dann ist G die Menge der Pfadgleichungen mit P i = AV k P i = P j. Originalnotation: – = – = sg Prolog-Notation: –S:head === VP:head –NP:head:agr:num === sg :- op(600,xfx,===). :- op(510,xfy, : ).

PATR II15 Makros (Templates) Makros sind Abkürzungen für Merkmalsstrukturen und müssen definiert werden, bevor man sie verwenden kann. Makro-Definition: Let Makroname be L i. Makro-Verwendung: L j Makroname L k Originalnotation: –Let Third be = 3. –Let Sing be = sing. –Let ThirdSing be Third Sing. Prolog-Notation: –third(F):- F:head:agr:pers === 3. –sing(F):- F:head:agr:num === sing. –thirdSing(F):- third(F), sing(F).

PATR II16 Merkmalsstrukturen in Prolog Wir repräsentieren Merkmalsstrukturen in Prolog als offene Listen: –[agr:[num:sg|A]|B] –[agr:[pers:3|C]|D] Die Unifikation der beiden Strukturen soll folgendes Ergebnis liefern: –[agr:[num:sg, pers:3|E]|B] –[agr:[pers:3, num:sg|E]|B] –B=D, A=[pers:3|E], C=[num:sg|E]

PATR II17 unify/2 % unify(?FS1,?FS2) unify(X,X):- !. unify([P:V|FS1],FS):- pathval(FS,P,V,FS2), unify(FS1,FS2). pathval([F:V1|FS], F, V2, FS):- !, unify(V1, V2). pathval([FS|FSs1], F, V, [FS|FSs2]):- pathval(FSs1, F, V, FSs2).

PATR II18 Zerlegung von Pfaden ?- current_op(Precedence,Associativity,:). Precedence = 500 Associativity = xfy yes ?- a:b:c = F:P. F = a P = b:c yes a:b:c a:(b:c)

PATR II19 Interpreter für Pfadgleichungen X === Y :- denotes(X, X1), denotes(Y, Y1), unify( X1, Y1). denotes(V, V):- var(V), !. denotes(A, [A|_]):- atomic(A), !. denotes(F:P, V):- pathval(F, P, V, _), !. denotes(FS, FS).

PATR II20 Erweiterung für pathval/4 pathval(FS1, F:P, V, FS2):- !, pathval(FS1, F, FS3, FS2), pathval(FS3, P, V, _). pathval([F:V1|FS], F, V2, FS):- !, unify(V1, V2). pathval([FS|FSs1], F, V, [FS|FSs2]):- pathval(FSs1, F, V, FSs2).

PATR II21 Syntaxregeln: PATR II Rule X 0 X 1 X 2 : = s = np = vp = = nom. Rule X 0 X 1 X 2 : = vp = v = np = =. Allgemeines Schema: Rule FS i FS + : G*. (Makros?)

PATR II22 Syntaxregeln: DCG cat(S) --> { S:cat === 'S', NP:cat === 'NP', VP:cat === 'VP', S:subj === VP:subj, S:obj === VP:obj, VP:subj === NP, nom(NP) }, cat(NP), cat(VP). cat(VP) --> { VP:cat === 'VP', V:cat === 'V', NP:cat === 'NP', VP:obj === V:obj, VP:subj === V:subj, VP:obj === NP }, cat(V), cat(NP). Zur Vermeidung von linksrekursiven Loops müssen die Merkmalsstrukturen vor der Verzweigung berechnet werden.

PATR II23 Syntaxregeln: Klauseln cat(S,P0,P2):- S:cat === 'S', NP:cat === 'NP', VP:cat === 'VP', S:subj === VP:subj, S:obj === VP:obj, VP:subj === NP, nom(NP), cat(NP,P0,P1), cat(VP,P1,P2). cat(VP,P0,P2):- VP:cat === 'VP', V:cat === 'V', NP:cat === 'NP', VP:obj === V:obj, VP:subj === V:subj, VP:obj === NP, cat( V,P0,P1), cat(NP,P1,P2).

PATR II24 Lexikon: PATR II Allgemeines Schema: Word String: L*. Beispiele: –Word klaut: = V AccSing. –Word paul: = NP NomSing. –Word bananen: = NP AccPlur.

PATR II25 Lexikon: DCG cat(V) --> {V:cat === 'V', acc_sing(V)}, [klaut]. cat(NP) --> [paul], {NP:cat === 'NP', nom_sing(NP)}. cat(NP) --> {NP:cat === 'NP', acc_plur(NP)}, [bananen].

PATR II26 Lexikon: Klauseln cat(V,[klaut|T],T):- V:cat === 'V', acc_sing(V). cat(NP,[paul|T],T):- NP:cat === 'NP', nom_sing(NP). cat(NP,[bananen|T],T]):- NP:cat === 'NP', acc_plur(NP).

PATR II27 Makros acc(C):- C:agr:cas === acc. nom(C):- C:agr:cas === nom. sing(C):- C:agr:num === sing. plur(C):- C:agr:num === plur. nom_sing(C):- nom(C), sing(C). acc_sing(C):- acc(C), sing(C). acc_plur(C):- acc(C), plur(C).

PATR II28 PATR II-Parser parse:- nl, write('Phrase >> '), read_wordlist(String), nl, parse(String). parse(String):- cat(FS, String, []), print_fsm_(FS).

PATR II29 Parsing-Session

PATR II30 Literatur Shieber, Stuart (1986): An Introduction to Unification-based Approaches to Grammar. CSLI Lecture Notes. Gazdar, Gerald & Chris Mellish (1989): Natural Language Processing in Prolog. Addison Wesley. Covington, Michael A. (1994): Natural Language Processing for Prolog Programmers. Chap. 6: Parsing Algorithms. Prentice-Hall.