Upload
ngodat
View
215
Download
0
Embed Size (px)
Citation preview
Computational Semantics
Computational Semantics
Stefan Muller
Theoretische Linguistik/ComputerlinguistikFachbereich 10
Universitat Bremen
12. Juli 2006
Computational Semantics
Organisatorisches
Organisatorisches: Maillisten und Sprechzeiten
• Telefon & Sprechzeitensiehe Web-Seite: http://www.cl.uni-bremen.de/∼stefan/
• Beschwerden, Verbesserungsvorschlage:• mundlich• per Mail oder• anonym uber das Web:
http://www.cl.uni-bremen.de/∼stefan/Lehre/
• Evaluation am Ende der Veranstaltung• mittels Fragebogen• weniger offiziell uber http://www.meinprof.de/uni/prof/4666
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 2/279
Computational Semantics
Organisatorisches
Materialien
Verwendete Materialien stammen von Patrick Blackburn und Johan Bos:
• Information zur Vorlesung:http://www.cl.uni-bremen.de/∼stefan/Lehre/S2006/comp-sem.html
• Lehrmaterial:
• Buch: Blackburn und Bos, 2005(http://www.iccs.informatics.ed.ac.uk/∼jbos/comsem/book1.html)
• Prolog-Materialien:http://www.cl.uni-bremen.de/∼aurelien/prolog/prolog.html
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 3/279
Computational Semantics
Organisatorisches
Vorgehen
• Handouts ausdrucken, immer mitbringen und personliche Anmerkungeneinarbeiten
• Vorlesungen vorbereiten
• Vorlesungen unbedingt nacharbeiten!• Kontrollfragen• Ubungsaufgaben
• Fragen!
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 4/279
Computational Semantics
Organisatorisches
Leistungen
• Ubungsaufgaben fur Teilnahme und Leistungsschein-ScheinAbgabe per E-Mail am jeweiligen Montag nach der entsprechendenVeranstaltung
• fur Leistungsschein:• Hausarbeit
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 5/279
Computational Semantics
Einleitung
Was ist Computational Semantics?
Was ist Computational Semantics?
Computational Semantics beschaftigt sich mit zwei Fragen:
• Wie kann man den Prozeß der Zuordnung semantischerReprasentationen zu naturlichsprachlichen Ausdrucken automatisieren?
• Wie kann man semantische Reprasentationen naturlichsprachlicherAusdrucke dazu benutzen, den Prozeß des logischen Schließens(Inferenz) zu automatisieren?
Dieser Kurs fuhrt in einige Grundtechniken ein,die man zur Losung dieser Probleme braucht.Zum Aufbau logisch-semantischer Reprasentationen wird hauptsachlich derλ-Kalkul genutzt.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 6/279
Computational Semantics
Einleitung
Was ist Computational Semantics?
Warum ist das eine gute Strategie? (I)
• Die am besten erforschten Logiken haben eine prazise Semantikin bezug auf Modelle.Deshalb haben wir, wenn wir einen naturlichsprachlichen Satz S in einelogische Formel φ ubersetzen konnen, genauen Zugriff auf zumindesteinen Teil der Bedeutung von S .
• Wichtige Inferenzprobleme sind fur die bekannteren Logiken erforschtworden, und oft gibt es gute Computerimplementationen.Ubersetzung in eine Logik gibt uns Zugang zur Inferenz, und das istwichtig fur naturliche Sprache.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 7/279
Computational Semantics
Einleitung
Was ist Computational Semantics?
Warum ist das eine gute Strategie? (II)
• λ-Kalkul hat selbst eine logische Interpretation,die wir in diesem Kurs nicht diskutieren, die aber wichtig ist.
• λ-Kalkul ist eine gute Glue-Sprache (glue language). Gut erforscht.
• Er ist flexibel: Spater werden wir statt mit Logik erster Stufe mitDiscourse Representation Theory (DRT) arbeiten.Wir werden aber nicht alle Details der Implementation andern mussen,einfache Anpassungen existierender Programme erlauben uns dieBenutzung von Lambdas mit DRT.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 8/279
Computational Semantics
Mengen und Relationen
Abschnitt 0
• Wir wiederholen Grundbegriffe:• Mengen,• Relationen und Funktionen• Aussagenlogik
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 9/279
Mengen und Relationen
Mengen
Schreibweisen fur Mengen
Schreibweisen fur Mengen
• Listennotation:
M = {a, b, c , d , e}• Pradikatsnotation:
S = {x |x ist ein deutscher Satz}• rekursive Regel:
Satz 1: 1 ∈ MSatz 2: Wenn x ∈ M, dann ist auch x + 1 ∈ MSatz 3: Nichts sonst ist in M.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 10/279
Mengen und Relationen
Mengen
Beziehungen zwischen Mengen
Beziehungen zwischen Mengen
Definition
Wenn die Menge A kein Element enthalt, das nicht auch in der Menge Benthalten ist, so ist A eine Teilmenge von B. Wir schreiben: A ⊆ B .
Wenn B daruberhinaus weitere Elemente enthalt,so ist A eine echte Teilmenge von B. Wir schreiben: A ⊂ B .
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 11/279
Mengen und Relationen
Mengen
Operationen mit Mengen
Operationen mit Mengen: Vereinigung und Durchschnitt
Definition
Die Vereinigung A ∪ B zweier Mengen A und B ist die Menge derjenigenElemente, die in A oder B auftreten.
A ∪ BDef= {x |x ∈ A oder x ∈ B}
Definition
Der Durchschnitt A ∩ B zweier Mengen A und B ist die Mengederjenigen Elemente, die sowohl in A als auch in B auftreten.
A ∩ BDef= {x |x ∈ A und x ∈ B}
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 12/279
Mengen und Relationen
Mengen
Operationen mit Mengen
Operationen mit Mengen: Differenz und Komplement
Definition
Die Differenz B − A zweier Mengen A und B ist die Menge aller Elementeaus B ohne die Elemente aus A.B − A
Def= {x |x ∈ B und x /∈ A}
AA
Definition
Das Komplement A (oder auch ∁A) einer Menge A ist die Menge allerElemente im Diskursuniversum D abzuglich aller Elemente in A.A = D − A = {x |x /∈ A}
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 13/279
Mengen und Relationen
Mengen
Darstellung als Venn-Diagram
Darstellung als Venn-Diagram
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 14/279
Mengen und Relationen
Relationen und Funktionen
Cartesisches Produkt
Relationen und Funktionen
Definition
Das cartesische Produkt A× B zweier Mengen A und B ist die Mengealler geordneten Paare 〈x , y〉, wobei x ∈ A und y ∈ B .
A× BDef= {〈x , y〉 |x ∈ A und y ∈ B}
Beispiel: zwei Mengen mit Mannern und Frauen:A = {max ,moritz},B = {clara, clarissa} Das cartesische Produkt ist die Menge:
A× B = {〈max , clara〉 ,〈max , clarissa〉 ,〈moritz , clara〉 ,〈moritz , clarissa〉}
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 15/279
Mengen und Relationen
Relationen und Funktionen
Relation
Relation von A nach B
Definition
Eine Relation R von A nach B ist eine Teilmenge des cartesischenProduktes A× B . Man schreibt R ⊆ A× B , oder genauer:{〈x , y〉 |xRy} ⊆ {〈x , y〉 |x ∈ A und y ∈ B}
Wenn wir uber die Elemente der Mengen wissen, daß Max Clara liebt unddaß Moritz Clarissa liebt, konnen wir auch uber die Relation sprechen,in der diese Mengenelemente zueinander stehen:
max lieben clara
moritz lieben clarissa
Andere Schreibweise:lieben(max , clara)
lieben(moritz , clarissa)c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 16/279
Mengen und Relationen
Relationen und Funktionen
Relation
lieben(max , clara)
lieben(moritz , clarissa)
Diese Relation entspricht zwei Elementen aus A× B , namlich denElementen der folgenden Menge:{〈max , clara〉 ,〈moritz , clarissa〉}
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 17/279
Mengen und Relationen
Relationen und Funktionen
Relation
Relation in A
Definition
Eine Relation R in einer Menge A ist eine Menge von geordnetenPaaren von Elementen von A, d. h., es ist R ⊆ A× A.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 18/279
Mengen und Relationen
Relationen und Funktionen
Funktion
Funktion
Definition
Eine Relation F von A nach B ist eine Funktion, gdw.
1. es zu jedem Element aus dem Definitionsbereich A hochstens einkorrespondierendes Element im Wertebereich B gibt und
2. der Definitionsbereich von F gleich A ist.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 19/279
Mengen und Relationen
Relationen und Funktionen
Funktion
Funktion und Relation
Funktion und Relation Funktion und Relation
Keine Funktion, aber Relation
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 20/279
Computational Semantics
Aussagenlogik
Aussagenlogik
In der Aussagenlogik werden Satzaussagen durch Satzvariablenreprasentiert.
Zum Beispiel: Peter schlaft = q
Satzvariablen konnen durch logische Operationen verknupft werden:
p ∧ q
Zur Vermeidung von Ambiguitaten kann/muß man Klammerungenvornehmen.
Fur den Aufbau logischer Ausdrucke kann man eine Vorschrift (Syntax)angeben.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 21/279
Computational Semantics
Aussagenlogik
Die Syntax der Aussagenlogik
Die Syntax der AussagenlogikVokabular:
• Satzvariablen: p, q, r , s, p1, p2, . . . , q1, . . .• logische Verknupfungen: ¬,∧,∨,→,↔• Klammern: ), (• Diese und keine anderen Zeichen sollen in der Aussagenlogik
vorkommen.
Regeln:
• Jede Satzvariable ist ein wohlgeformter Ausdruck.• Sind α und β beliebige wohlgeformte Ausdrucke, dann sind
• ¬α• (α ∧ β)• (α ∨ β)• (α→ β)• (α↔ β)
gleichfalls wohlgeformte Ausdrucke.• Ein Ausdruck ist nur wohlgeformt, wenn er durch Anwendung der
obenstehenden Regeln konstruiert werden kann.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 22/279
Computational Semantics
Aussagenlogik
Die Syntax der Aussagenlogik
Syntax der Aussagenlogik als Ersetzungsregeln
S 7→ ¬S
S 7→ (S ∧ S)
S 7→ (S ∨ S)
S 7→ (S → S)
S 7→ (S ↔ S)
S 7→ p
S 7→ q
. . .
Die Punkte stehen dabei fur weiter Regeln fur Variablen,d. h. Regeln der Form S 7→ q.
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 23/279
Computational Semantics
Aussagenlogik
Die Semantik der Aussagenlogik: Wahrheitswerttabellen
Die Semantik der Aussagenlogik: Wahrheitswerttabellen
c© Stefan Muller 2006, CL, FB 10, Universitat Bremen 24/279
Computational Semantics
Pradikatenlogik erster Stufe
Abschnitt 1
• Wir widerholen die Syntax und die Semantik der Pradikatenlogikerster Stufe, des Reprasentationsformalismus, den wir in den erstensieben Abschnitten benutzen werden.
• Wir legen die drei Inferenz-Aufgaben fest, die uns interessieren:Anfragen (queriying), Konsistenztests (consistency checking) undTest auf Informationsgehalt (informativity checking).
• Wir stellen einen Model Checker fur Logiken erster Stufe vor, einWerkzeug fur querying, die einfachste der drei Inferenzaufgaben.
• Demos:• modelChecker1.pl• modelChecker2.pl
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 25/279
Computational Semantics
Pradikatenlogik erster Stufe
Pradikatenlogik erster Stufe
Die drei Grundbestandteile sind:
• Vokabular
• Modelle
• Sprachen erster Stufe
Sprachen erster Stufe sind relativ einfache, prazise definierte Sprachen,mit denen man uber einfache Bilder der Welt (Modelle) reden kann.
Dazu wird jeweils ein bestimmtes Vokabular benutzt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 26/279
Computational Semantics
Pradikatenlogik erster Stufe
Vokabular
Ein Vokabular
{ (LOVE, 2),
(CUSTOMER, 1), (ROBBER, 1),
(MIA, 0), (VINCENT, 0), (HONEY-BUNNY, 0), (YOLANDA, 0) }• Das Vokabular sagt etwas uber den
”Gegenstand der Konversation“,
d. h. uber die spezifische Sprache, die wir benutzen werden, aus.
• Einheiten, die mit der Zahl Null angegeben werden, sind Konstanten.MIA ist z. B. eine Konstante (auch Individuenkonstante).
• Einheiten, die mit einer großeren Zahl aufgefuhrt sind,werden Relationssymbole (oder Pradikatssymbole auchPradikatskonstante) genannt.LOVE ist z. B. ein Relationssymbol.Es ist ein zweistelliges Relationssymbol.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 27/279
Computational Semantics
Pradikatenlogik erster Stufe
Modell
Modelle erster Stufe
Ein Modell ist ein Paar (D, F)
• D enthalt eine Menge von Individuen, uber die wir sprechen wollen.D wird Domane oder Diskursuniversum genannt und darf nicht leersein.
• F ist die Interpretationsfunktion. Sie spezifiziert, wofur jedes Symbolim Vokabular steht.Das geschieht durch eine Verkupfung aller Symbole im Vokabular miteinem entsprechenden Individuum aus der Menge D.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 28/279
Computational Semantics
Pradikatenlogik erster Stufe
Modell
Ein Beispiel fur ein Modell
• Sei die Domane D = {d1, d2, d3, d4}• Die Interpretationsfunktion F ist wie folgt spezifiziert:
F (mia) = d1
F (honey-bunny) = d2
F (vincent) = d3
F (yolanda) = d4
F (customer) = {d1, d3}F (robber) = {d2, d4}F (love) = {(d4, d2), (d3, d1)}
Man beachte, daß jedes Individuum in diesem Modell einen Namen hat.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 29/279
Computational Semantics
Pradikatenlogik erster Stufe
Modell
Ein anderes Beispiel fur ein Modell
• Wir nutzen dieselbe Domane D = {d1, d2, d3, d4},• benutzen aber eine andere Interpretationsfunktion:
F2(mia) = d2
F2(honey-bunny) = d1
F2(vincent) = d4
F2(yolanda) = d3
F2(customer) = {d1, d2, d4}F2(robber) = {d3}F2(love) = {}
In diesem Modell sind drei der Individuen Kunden, und nur einer einRauber.Wieder hat jedes Individuum einen Namen.Die love-Relation ist leer.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 30/279
Computational Semantics
Pradikatenlogik erster Stufe
Modell
Noch ein anderes Beispiel fur ein Modell
• Wir nutzen die Domane D = {d1, d2, d3, d4, d5},• und die folgende Interpretationsfunktion:
F3(mia) = d2
F3(honey-bunny) = d1
F3(vincent) = d4
F3(yolanda) = d1
F3(customer) = {d1, d2, d4}F3(robber) = {d3, d5}F3(love) = {(d3, d4)}
Nicht jedes Individuum hat einen Namen.d1 hat zwei Namen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 31/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Sprachen erster Stufe: Die Bestandteile
1. alle Symbole des Vokabulars.Diese Symbole werden die nicht-logischen Symbole der Sprachegenannt.
2. eine unendliche Menge von Variablen x , y , z ,w , . . . , usw.
3. die Boolschen Operatoren ¬ (Negation), → (Implikation),∨ (Disjunktion) und ∧ (Konjunktion)
4. die Quantoren ∀ (der Allquantor) und ∃ (der Existenzquantor)
5. die runden Klammern ‘(’ und ‘)’ und das Komma
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 32/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Terme
Terme sind die ‘Nominalphrasen’ der Sprachen erster Stufe.
1. Alle Konstanten und alle Variablen sind Terme.
2. Nichts sonst ist ein Term.
(Wir werden demnachst auch machtigere Sprachen erster Stufekennenlernen, die es uns gestatten noch interessantere Terme zu bilden.)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 33/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Atomare Formeln
Wir kombinieren ‘Nominalphrasen’ mit unseren ‘Pradikaten’und bilden damit atomare Formeln:
Sei R ein Relationssymbol der Stelligkeit n und seien τ1, . . . , τn Terme,dann ist R(τ1, . . . , τn) eine atomare Formel.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 34/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Wohlgeformte Formeln (Well Formed Formulas (wffs)
1. Alle atomaren Formeln sind wffs.
2. Seien φ und ψ wffs, dann sind ¬φ, (φ→ ψ), (φ ∨ ψ) und (φ ∧ ψ) wffs.
3. Sei φ eine wff und x eine Variable. Dann sind ∃xφ und ∀xφ wffs.(φ ist die Matrix dieser wffs)
4. Nichts sonst ist eine wff.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 35/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Was bedeuten diese Formeln?
Vereinfacht gesagt:
1. Atomare Formeln entsprechen einfachen naturlichsprachlichen Satzen.
2. ¬ entspricht ‘nicht’, → entspricht”Wenn . . . , dann . . .“,
∨ entspricht ‘oder’ und ∧ ‘und’.
3. ∃ entspricht”Es gibt mindestens ein“ und ∀
”Fur alle“ oder ‘alle’.
Wir konnen es aber nicht bei dieser informalen Erklarung belassen.Wir brauchen fur die Arbeit mit dem Computer etwas Genaues.
Das Obige zu prazisieren, verlangt etwas Gehirnschmalz.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 36/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Freie und gebundene Variablen
Beispiel:
¬ (customer(x) ∨ ∀x(robber(x) ∧ ∀y person(y)))
• Das erste Auftreten von x ist frei.
• Das zweite und dritte Auftreten von x gebunden.
• Das erste und zweite Auftreten von y ist ebenfalls gebunden.
Es kann hilfreich sein, sich Variablen als Pronomina vorzustellen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 37/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Satze
Ein Satz ist eine Formel, die keine freien Variablen enthalt.(Achtung: Das Wort ‘Satz’ wird hier als technischer Ausdruck verwendet.)
• Wann ist ein Satz in einem Modell wahr?Wir hatten gern eine induktive Definition.
• Problem:Wir konnen keine induktive Definition der Wahrheitsrelation geben,da der Matrixsatz eines quantifizierten Satzes nicht unbedingt ein Satzsein muß.Z. B. ist ∀x robber(x) ein Satz, aber robber(x) nicht.
• Losung:Wir arbeiten indirekt, uber den Begriff der Erfullung (satisfaction).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 38/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Variablenbelegungsfunktionen
• Angenommen wir arbeiten mit einem Modell M = (D,F )
• Dann ist eine Variablenbelegung g von Variablen aus M mit Werteneine Funktion aus der Menge der Variablen nach D.
• Man kann sich g als einen ‘Kontext’ vorstellen, der Werte fur unsere‘Pronomina’ (freien Variablen) zur Verfugung stellt.
Variablenbelegungsfunktionen erlauben uns,die Erfullung fur Formeln zu definieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 39/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Interpretation von Termen
Sei
• M = (D, F) ein Modell
• g eine Variablenbelegung in M
• τ ein Term
Dann ist die Interpretation von τ in bezug auf M und g :
• F (τ), wenn τ eine Konstante ist, (F ist die ➚ Interpretationsfunktion.)
• g(τ), wenn τ eine Variable ist.
Die Interpretation von τ wird wie folgt geschrieben: I gF (τ).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 40/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Varianten
Wir brauchen noch einen technischen Begriff, bevor wir Erfullungdefinieren konnen.
• Sei g eine Variablenbelegung (in einem Modell M) und x eine Variable.
• Dann ist eine Belegung g ′ eine x-Variante von g , gdw. g(v) = g ′(v) furalle von x verschiedenen Variablen v .
• Anschaulich: Eine x-Variante g ′ von g ist ein ‘Kontext’,der mit g in bezug auf alle ‘Pronomina’ ubereinstimmt –außer evtl. dem ‘Pronomen’ x .
• Auf der nachsten Folie, werden wir sehen,warum dieses Konzept wichtig ist.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 41/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Definition fur Erfullung
M, g |= R(τ1, . . . , τn) gdw. (I gF (τ1), . . . , I
gF (τn)) ∈ F (R)
M, g |= ¬φ gdw. nicht M, g |= φ
M, g |= φ ∧ ψ gdw. M, g |= φ und M, g |= ψ
M, g |= φ ∨ ψ gdw. M, g |= φ oder M, g |= ψ
M, g |= φ→ ψ gdw. nicht M, g |= φ oder M, g |= ψ
M, g |= ∃xφ gdw. M, g ′ |= φ, fur eine x-Variante g ′ von g
M, g |= ∀xφ gdw. M, g ′ |= φ, fur alle x-Varianten g ′ von g
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 42/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Wahrheit
Wir konnen jetzt definieren, was es fur einen Satz heißt,in einem Modell wahr zu sein:
Ein Satz φ ist in einem Modell M wahr, gdw.fur irgendeine Variablenbelegung g in M gilt M, g |= φ.
Schwierig: Denken Sie noch mal druber nach!
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 43/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Das sind die Grundlagen . . .
Aber es gibt zwei andere Sachen, die wir noch einfuhren mussen:
• Sprachen erster Stufe mit Funktionssymbolen(Wir werden diese im Abschnitt 6 benutzen.)
• Sprachen erster Stufe mit Gleichheit(sehr wichtig fur die Arbeit mit naturlicher Sprache)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 44/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Funktionssymbole
Wir konnen noch eine Menge von Funktionssymbolen f zu den Sprachenerster Stufe hinzufugen.
Ein Funktionssymbol hat eine bestimmte Stelligkeit.
Damit konnen wir aussagekraftigere Terme bauen(d. h. interessantere Nominalphrasen):
1. Alle Konstanten und Variablen sind Terme.
2. Wenn f ein Funktionssymbol der Stelligkeit n istund wenn τ1, . . . , τn Terme sind,dann ist f (τ1, . . . , τn) ebenfalls ein Term.
3. Nichts sonst ist ein Term.
Ein Term heißt geschlossen gdw. er keine Variablen enthalt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 45/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Ein Beispiel
Sei ‘vater’ ein einstelliges Funktionssymbol und sei ‘max’ eine Konstante.
Dann ist
vater(vater(max))
ein Term, der einen Großvater von Max bezeichnet.
Betrachtet man dieses Beispiel, ist klar,wie Funktionssymbole interpretiert werden sollten . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 46/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Die Interpretation von Funktionssymbolen
Wir erweitern unsere Definition von I gF (τ) auf naheliegende Weise.
Fur ein Modell M und eine Variablenbelegung g in M definieren wir:
• I gF (τ) ist F (τ), wenn τ eine Konstante ist, (wie bisher)
• I gF (τ) ist g(τ), wenn τ eine Variable ist, (wie bisher)
• Wenn τ ein Term der Form f (τ1, . . . , τn) ist,dann ist I g
F (τ) F (f )(I gF (τ1), . . . , I
gF (τn)).
D. h. wir wenden die n-stellige Funktion F (f )– die Funktion, die f interpretiert –auf die Interpretation der n Argumentterme an.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 47/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Gleichheit
• Fur gewohnlich wird auch ein spezielles zweistelliges Relationssymbol‘=’ zu Sprachen erster Stufe hinzugefugt.
• Dieses Symbol wird immer wie folgt definiert:Gegeben sei eine beliebige Variablenbelegung g in einem Modell M undzwei beliebige Terme τ1 und τ2 M, g |= τ1 = τ2 gdw. I g
F (τ1) = I gF (τ2)
• D. h., dieses Symbol bedeutet wirklich Gleichheit.
• Obwohl es syntaktisch nur ein Relationssymbol ist,ist ‘=’ ein logisches Symbol wie ¬ oder ∀.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 48/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Ein Beispiel
yolanda = honey-bunny
ist eine atomare Formel, die besagt,daß Yolanda und Honney Bunny dieselbe Person sind.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 49/279
Computational Semantics
Pradikatenlogik erster Stufe
Sprachen erster Stufe
Ist Logik erster Stufe eine gute Wahl?
• Wir wissen jetzt viel von dem, was wir uber Logik erster Stufe wissenmussen. Es ist Zeit fur eine fundamentale Frage: Ist Logik erster Stufeeine gute Wahl fur semantische Reprasentation?
• Ja. Auch wenn Sie woanders das Gegenteil gehort haben, kann man mitLogik erster Stufe fast alles reprasentieren, eingeschlossen temporaleInformation und modale Information. Man kann damit sogar Logikenhoherer Stufe simulieren. Fast die einzige Ausdrucksschwirigkeit ist,daß man Quantoren wie die meisten nicht behandeln kann.
• Fur unsere Belange sind die einzigen Nachteile reprasentationeller Art.Deshalb werden wir Lambdas hinzufugen und spater zu DRT wechseln.
• Und trotzdem wird PL 1 unter der Oberflache immer noch da sein undfur uns viele Arbeiten erledigen, wie wir sehen werden . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 50/279
Computational Semantics
Pradikatenlogik erster Stufe
Inferenz
Inferenz
In diesem Kurs sind wir an den folgenden drei Inferenzaufgabeninteressiert:
• Anfragen (Querying)
• Konsistenztests
• Informativitatstests
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 51/279
Pradikatenlogik erster Stufe
Inferenz
Anfragen
Anfragen
Gegeben sei ein Modell M und eine Formel φ,ist φ im Modell M wahr oder nicht?
• Man stelle sich das Modell M als Bild (eines kleinen Teils) der Welt vor.
• Die Frage φ zu stellen, heißt zu fragen,ob die Information φ in unserem kleinen Bild der Welt wahr ist, o. nicht.
• Ein Werkzeug, das diese Inferenzaufgabe lost,wird Modellprufer (model checker) genannt.
• Diese Art Inferenz ist fur endliche Modelle relativ leicht zuimplementieren (wie wir bald sehen werden) und wird auch spater furdas Fragenbeantworten (question answering) nutzlich sein.(Es ist ebenfalls nutzlich fur Aufgaben wie die Generierungnaturlichsprachlicher Ausdrucke.)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 52/279
Pradikatenlogik erster Stufe
Inferenz
Konsistenztests
Konsistenztests (I)
• Eine Formel ist konsistent, wenn sie in wenigstens einem Modell erfulltist.Konsistente Formeln beschreiben ‘vorstellbare’ oder ‘mogliche’Sachverhalte.Z. B. ist ROBBER(MIA) konsistent.
• Eine Formel, die nicht konsistent ist, wird inkonsistent genannt.Inkonsistente Formeln beschreiben ‘unvorstellbare’ oder ‘unmogliche’Sachverhalte.Z. B. ist ROBBER(MIA)∧ ¬ROBBER(MIA) inkonsistent.
• Eine endliche Menge von Formeln {φ1, . . . , φn} ist konsistent, wennφ1 ∧ . . . ∧ φn konsistent ist.Eine endliche Menge von Formeln, die nicht konsistent ist,wird inkonsistent genannt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 53/279
Pradikatenlogik erster Stufe
Inferenz
Konsistenztests
Konsistenztests (II)
• Wir wollen prufen, ob die Information, die uns in naturlichsprachlichenDiskursen zur Verfugung gestellt wird, konsistent ist.Wenn wir inkonsistente Information bekommen,wird wohl etwas im kommunikativen Prozeß schief laufen . . .
• Konsistenztest ist aber eine sehr viel schwierigere Inferenzaufgabe alsAnfrage. Fur PL 1 ist der Konsistenztest sogar unentscheidbar.
• Es gibt aber zwei Computerwerkzeuge, die uns beim Test helfen konnen:Theorem-Beweiser (theorem provers) und Modell-Bauer (modelbuilders). Wir werden spater mehr uber diese Tools lernen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 54/279
Pradikatenlogik erster Stufe
Inferenz
Informativitatstest
Informativitatstest (I)
• Ein gultiger Satz ist ein Satz, der in allen Modellen wahr ist.(z. B. : robber(mia) ∨ ¬robber(mia)).Ein Satz, der nicht gultig ist, wird ungultig genannt.
• Sei φ1, . . . , φn und ψ eine endliche Menge von Satzen erster Stufe. DerSchluß mit den Voraussetzungen φ1, . . . , φn und der Schlußfolgerungψ ist ein gultiger Schluß,wenn, immer, wenn alle Voraussetzungen in einem Modell wahr sind,die Schlußfolgerung in diesem Modell auch wahr ist.
• Die Schreibweise φ1, . . . , φn |= ψ steht fur einen gultigen Schluß.
• Die Schreibweise φ1, . . . , φn 6|= ψ steht fur einen ungultigen Schluß.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 55/279
Pradikatenlogik erster Stufe
Inferenz
Informativitatstest
Informativitatstest (II)
Was hat Gultigkeit mit Informativitat zu tun?
• Oft werden gultige Satze uninformativ genannt. (Wenn sie in allenModellen wahr sind, enthalten sie keine spezifische Information!)Oft werden Satze, die nicht gultig sind, informativ genannt.
• Wenn gilt φ1, . . . , φn |= ψ, dann sagen wir,ψ ist uninformativ in bezug auf φ1, . . . , φn.
• Wenn gilt φ1, . . . , φn 6|= ψ, dann sagen wir,ψ ist informativ in bezug auf φ1, . . . , φn.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 56/279
Pradikatenlogik erster Stufe
Inferenz
Informativitatstest
Informativitatstest (II)
• Wir wurden gern prufen, ob Information, die uns in einemnaturlichsprachlichen Diskurs ubermittelt wird, informativ im Vergleichzu Information ist, uber die wir bereits verfugen.Wenn sie nicht informativ ist,wird wohl etwas im kommunikativen Prozeß schief laufen . . .
• Informativitatstest ist aber eine sehr viel schwierigere Inferenzaufgabeals Anfrage. Fur PL 1 ist der Informativitatstest sogar unentscheidbar.
• Es gibt aber zwei Computerwerkzeuge, die uns beim Test helfen konnen:Theorem-Beweiser (theorem provers) und Modell-Bauer (modelbuilders).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 57/279
Pradikatenlogik erster Stufe
Inferenz
Beziehungen zwischen Konsistenz und Informativitat
Beziehungen zwischen Konsistenz und Informativitat
• φ ist informativ (d. h., nicht gultig) gdw. ¬φ konsistent ist.D. h., Informativitat heißt, daß das Gegenteil moglich war.
• φ1, . . . , φn 6|= ψ (d. h., ψ ist informativ in bezug auf φ1, . . . , φn) gdw.{φ1, . . . , φn,¬ψ} konsistent ist.
• φ ist uninformativ (d. h., gultig) gdw. ¬φ inkonsistent ist.D. h., Uninformativitat heißt, daß das Gegenteil uberhaupt gar nichtmoglich war.
• φ1, . . . , φn |= ψ (d. h., ψ ist uninformativ in bezug auf φ1, . . . , φn)gdw. {φ1, . . . , φn,¬ψ} inkonsistent ist.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 58/279
Pradikatenlogik erster Stufe
Inferenz
Beziehungen zwischen Konsistenz und Informativitat
Etwas zum Merken
• Wir haben gesagt, daß Konsistenztests und Informativitatstest vielschwierigere Aufgaben sind als Anfragen. Warum ist das so?
• Der Grund ist, daß beide Aufgaben mit bezug auf alle Modelle definiertsind, und es gibt viele Modelle, und die meisten sind unendlich.Kurz, beide Aufgaben sind semantisch definiert und auf eine sehrabstrakte Weise.(Im Gegensatz dazu ist Anfragen semantisch definiert, aber auf eine sehrspezifische Art und Weise.)
• Um Konsistenztest und Informativitatstests computationell in den Griffzu bekommen, brauchen wir einen syntaktischen Zugang zu ihnen.(d. h., wir mussen uns eine Teildisziplin der Logik ansehen, dieBeweis-Theorie gennant wird, Abschnitt 5 und 6)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 59/279
Computational Semantics
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Ein einfacher Modellprufer
Wir gucken uns jetzt einen einfachen Modellprufer an,der in Prolog geschrieben ist.
Bevor wir das tun, brauchen wir noch Hintergrundwissen:
• Wie definieren wir Prolog-Representationen fur Modelle?
• Wie definieren wir Prolog-Representationen fur Formeln?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 60/279
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Die Reprasentation von Modellen
Die Reprasentation von Modellen
Ein typisches Beispiel fur Reprasentationen von Modellen in Prolog:
model([d1,d2,d3,d4],
[f(0,mia,d1),
f(0,vincent,d2),
f(0,pumpkin,d3),
f(0,honey_bunny,d4),
f(1,customer,[d1,d2]),
f(1,robber,[d3,d4]),
f(2,love,[(d3,d4)])]).
Das Vokabular wird explizit als Teil der Modellreprasentation angegeben.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 61/279
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Die Reprasentation von Formeln
Die Reprasentation von Formeln
• Variablen werden als Prolog-Variablen reprasentiert.
• Eine Konstante c wird durch das Prolog-Atom c reprasentiert.
• Ein Relationssymbol R wird durch das Prolog-Atom r reprasentiert.love(vincent, mia) wird durch love(vincent, mia) dargestellt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 62/279
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Die Boolschen Operatoren
Die Boolschen Operatoren
Die Prolog-Terme
and/2 or/2 imp/2 not/1
werden jeweils fur die Verknupfungen ∧, ∨, → und ¬ benutzt.
φ ∧ ψ wird als and(Phi, Psi) dargestellt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 63/279
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Die Quantoren
Die Quantoren
Angenommen formula ist eine Formel erster Stufe, und Formula ist dieentsprechende Reprasentation als Prolog-Ausdruck.
Dann wird ∀x formula wie folgt reprasentiert:
all(X,Formula)
und ∃x formel wird wie folgt reprasentiert:
some(X,Formula)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 64/279
Pradikatenlogik erster Stufe
Ein einfacher Modellprufer
Demo
Und jetzt geht’s los!
• modelChecker1.pl
• modelChecker2.pl
Beide Programme sind unterhttp://www.iccs.informatics.ed.ac.uk/∼jbos/comsem/book1.htmlverfugbar.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 65/279
Computational Semantics
Der Lambda-Kalkul
Abschnitt 2: Der Lambda-Kalkul
• Wir beginnen, uns mit der ersten der beiden fundamentalen Fragen vomAnfang der Vorlesung zu beschaftigen:Wie kann man den Prozeß der Zuordnung semantischerReprasentationen zu naturlichsprachlichen Ausdrucken automatisieren?
• Wir diskutieren das Konzept der Kompositionalitat,experimentieren mit verschiedenen Ansatzen zur Implementationkompositionaler Semantikkonstruktion und werden so nach und nachzum Lambda-Kalkul kommen.
• Wir implementieren α-Konversion, ein wichtiges Konzept im λ-Kalkul.Die Implementation der β-Konversion, ein weiteres Schlusselkonzept,wird im nachsten Abschnitt diskutiert.
• Demos:• experiment2.pl• experiment3.pl
• alphaKonversion.pl
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 66/279
Computational Semantics
Der Lambda-Kalkul
Semantikkonstruktion
• Gibt es ein systematisches Verfahren, zu einem (englischen) Satz einesemantische Reprasentation zu konstruieren?
• Diese Frage ist jetzt noch zu schwierig.Wir stellen uns vorerst eine spezifischere Frage.
• Gibt es ein systematisches Verfahren einfache Satze wie die in (1) inPL 1 zu ubersetzen?
(1) a. Vincent likes Mia
b. Every woman snorts
c. Every boxer loves a woman
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 67/279
Computational Semantics
Der Lambda-Kalkul
Bedeutung aus dem Lexikon
Bedeutung kommt aus dem Lexikon
• Der naturlichsprachliche Satz Vincent likes Mia soll als Satz erster Stufelike(vincent,mia) reprasentiert werden.
• Der Eigenname Vincent entspricht der Konstanten vincent,der Eigenname Mia entspricht der Konstanten miaund das Verb likes steuert das zweistellige Relationssymbol like bei.
• Das ist eine einfache Beobachtung, aber sie fuhrt zu einer wichtigenGeneralisierung: Bedeutung kommt aus dem Lexikon.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 68/279
Computational Semantics
Der Lambda-Kalkul
Bedeutung aus dem Lexikon
Der Bedeutungsbeitrag anderer Worter
• Die Einsicht, daß Bedeutung aus dem Lexikon kommt, ist einfach,wirft aber einige nichttriviale Fragen auf.
• Z.B. hat Every woman snorts die Reprasentation:∀x(woman(x)→snort(x)).Was tragt das Wort every zu dieser Reprasentation bei?
• Das ∀?• Den →?• Beides zuammen innerhalb eines bestimmten Musters?
(Das ist die richtige Antwort.)
Und wie konnen wir das genau spezifizieren?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 69/279
Computational Semantics
Der Lambda-Kalkul
Die Rolle der Syntax
Die Rolle der Syntax
• Warum bekommen wir die Reprasentationlike(vincent,mia) fur Vincent likes Mia und nicht z. B.like(mia,vincent)?
• D. h. wie werden alle Teile, die uns das Lexikon liefert,so verbunden, daß wir die richtige Reprasentation bekommen?
• Das Grundprinzip ist, daß die syntaktische Struktur einesnaturlichsprachlichen Satzes den Prozeß derSemantikkonstruktion steuern sollte.
• Kurz: Syntaktische Struktur steuert den Zusammenbau.
• Betrachten wir ein Beispiel . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 70/279
Computational Semantics
Der Lambda-Kalkul
Die Rolle der Syntax
Syntaktische Struktur steuert den Zusammenbau
Vincent likes Mia (S)
like(vincent,mia)
Vincent (NP)
vincent
likes Mia (VP)
like(?,mia)
likes (TV)
like(?,?)
Mia (NP)
mia
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 71/279
Computational Semantics
Der Lambda-Kalkul
Kompositionalitat
Kompositionalitat
Wir haben in der Diskussion die Idee der Kompositionalitat bzw.der kompositionellen Semantikkonstruktion herausgearbeitet:
• Bedeutung (Reprasentation) kommt aus dem Lexikon.
• Bedeutungen (Reprasentationen) werden mit Hilfe syntaktischerInformation kombiniert.
• Genauer:Die Bedeutung des Ganzen ist eine Funktion der Bedeutung der Teile,wobei sich ‘Teile’ auf die Substrukturen bezieht,die uns die Syntax zur Verfugung stellt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 72/279
Computational Semantics
Der Lambda-Kalkul
Sich ergebende Aufgaben
Sich ergebende Aufgaben
Aufgabe 1 Wir mussen eine Syntax fur das Fragment naturlicher Spracheentwickeln, das uns interessiert.
Aufgabe 2 Wir mussen semantische Reprasentationen fur Lexikoneintragespezifizieren.
Aufgabe 3 Wir mussen die Ubersetzung kompositional spezifizieren.D. h., wir mussen die Ubersetzung aller Ausdrucke unter Bezugnahmeauf alle Ubersetzungen ihrer Teile spezifizieren.
Alle drei Aufgaben mussen so ausgefuhrt werden,daß wir eine sinnvolle Computerimplementation erhalten.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 73/279
Computational Semantics
Der Lambda-Kalkul
Eine DCG fur die Syntax
Definite Clause Grammars fur Aufgabe 1
s --> np, vp. noun --> [woman].
np --> pn. noun --> [foot,massage].
np --> det, noun. vp --> iv.
pn --> [vincent]. vp --> tv, np.
pn --> [mia]. iv --> [walks].
det --> [a]. tv --> [loves].
det --> [every]. tv --> [likes].
Diese Grammatik akzeptiert Satze wie die in (2):
(2) a. Vincent walks
b. Mia likes a foot massage
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 74/279
Computational Semantics
Der Lambda-Kalkul
Eine DCG fur die Syntax
Spaß mit DCGs
• DCGs sind eine naturliche Notation fur die Grammatikspezifikationund auch bereits in den meisten Prologs enthalten,haben also von Hause aus eine berechenbare Interpretation.
• Z.B. kann man mit der Anfrage
?- s([mia,likes,a,foot,massage],[])
uberprufen, ob der Satz zu unserem Grammatikfragment gehort.
• Außerdem kann man weitere Argumente zu den Grammatiksymboleneinfuhren, die dann dazu benutzt werden konnen, semantischeReprasentationen zu kombinieren und nach oben zu reichen.
• Details zu DCGs findet man in Learn Prolog Now!, das unterhttp://www.coli.uni-sb.de/∼kris/learn-prolog-now/ verfugbar ist.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 75/279
Computational Semantics
Der Lambda-Kalkul
Eine DCG fur die Syntax
Zwei Experimente zur Semantikkonstruktion
Um Reprasentationen aufzubauen, mussen wir
• die Bedeutung der Lexikoneintrage (Worter) spezifizieren.Diese Reprasentationen sind typischerweise ‘unvollstandige’ Formeln(Man denke an den Vincent likes Mia-Baum).
• angeben, wo die Information, die in den Eintragen noch fehlt,herkommt. (unter Zuhilfename der syntaktischen Information,die wir von der DCG bekommen und mit anderen Prolog-Tricks.)
• Schlusselidee: Wir verbinden die fehlende Information mit einerbestimmten Prolog-Variable.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 76/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
Experiment 1
Wir mussen Vincent mit der KOnstanten VINCENT, Mia mit MIA, walksmit der einstelligen Relation WALK und love mit dem zweistelligenRelationssymbol LOVE verbinden.
pn(vincent)--> [vincent].
pn(mia)--> [mia].
iv(snort(_))--> [snorts].
tv(love(_,_))--> [loves].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 77/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
Prolog stellt das Pradikat arg/3 zur Verfugung:arg(N,P,I) ist wahr, wenn I das Nte Argument von P ist.
s(Sem)--> np(SemNP), vp(Sem),
{
arg(1,Sem,SemNP)
}.
np(Sem)--> pn(Sem).
vp(Sem)--> tv(Sem), np(SemNP),
{
arg(2,Sem,SemNP)
}.
vp(Sem)--> iv(Sem).
Regeln geben entweder Semantik einfach hoch oder benutzen arg/3, umSemantik der Teile zu Argumenten der Reprasentation am Mutterknotenzu machen.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 78/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
DCG-Erweiterungen fur Determinatoren und Nomen
det(some(_,and(_,_)))--> [a].
det(all(_,imp(_,_)))--> [every].
noun(woman(_))--> [woman].
noun(footmassage(_))--> [foot,massage].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 79/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
Slot-Instantiierung der NP mit arg/3
np(Sem)--> det(Sem), noun(SemNoun),
{
arg(1,SemNoun,X),
arg(1,Sem,X),
arg(2,Sem,Matrix),
arg(1,Matrix,SemNoun)
}.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 80/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
Slot-Instantiierung von S mit arg/3
Bisher haben wir einfache S-Regel, die uns snort(Mia) zusammenbaut,fur Quantoren brauchen wir aber eine zweite:
s(Sem)--> np(Sem), vp(SemVP),
{
arg(1,SemVP,X),
arg(1,Sem,X),
arg(2,Sem,Matrix),
arg(2,Matrix,SemVP)
}.
Schlecht! Zusatzliche Satzregel.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 81/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 1
Problem
Außerdem bekommen wir fur
(3) A woman snorts
snort(some(X,and(woman(X),Y))).
Außerdem brauchen wir noch eine zweite VP-Regel, um mit qunatifiziertenObjekt-NPen klar zu kommen:
vp(Sem)--> tv(SemTV), np(Sem),
{
arg(2,SemTV,X),
arg(1,Sem,X),
arg(2,Sem,Matrix),
arg(2,Matrix,SemTV)
}.
Wir kriegen richtige Analysen, aber auch einen Haufen Symbolsalat: Furc© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 82/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 2
DCG mit Semantik: Lexikoneintrage
Explizite Kodierung uber Argumentpositionen hat nicht funktioniert,stattdessen Kenntlichmachung der offenen Stellen mittels einesPlatzhalters (Prolog-Variable).
noun(X,woman(X)) --> [woman].
iv(Y,snort(Y)) --> [snorts].
tv(Y,Z,love(Y,Z)) --> [loves].
det(X,Rest,Scope,some(X,and(Rest,Scope))) --> [a].
det(X,Rest,Scope,all(X,imp(Rest,Scope))) --> [every].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 83/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 2
DCG mit Semantik: Grammatikregeln
s(Sem) --> np(X,SemVP,Sem), vp(X,SemVP).
vp(X,Sem) --> tv(X,Y,SemTV), np(Y,SemTV,Sem).
vp(X,Sem) --> iv(X,Sem).
np(X,Scope,Sem) --> det(X,Rest,Scope,Sem), noun(X,Rest).
np(SemPN,Sem,Sem) --> pn(SemPN).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 84/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 2
Was haben wir erreicht?
• Es funktioniert und die zugrundeliegenden Intuitionen sind klar.Fehlende Informationen expliziet zu markieren, ist eine gute Idee.Wir haben dadurch ausreichend Kontrolle.
• Die Regeln tun die meiste Arbeit.Mitunter benotigen wir Programmiertricks,die die Grammatik nicht modular machen.
• Das legt nahe, daß etwas fehlt.Vielleicht kann ein disziplinierteres Herangehen an fehlende Informationdie Notwendigkeit regelspezifischer Kombinationsmethoden verringernoder sogar eliminieren?
• Der Lambda-Kalkul ist die einheitliche Kombinationsmethode,die wir suchen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 85/279
Computational Semantics
Der Lambda-Kalkul
Die DCG mit Semantik: Experiment 2
Ubung
1. Benutzen Sie entweder Papier und Stift oder den Prolog-Debugger, umdie Variableninstantiierungen nachzuvollziehen, die beim Parsen derSatze in (5) durchgefuhrt werden:
(5) a. Vincent snorts
b. A woman snorts.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 86/279
Computational Semantics
Der Lambda-Kalkul
Der Lambda-Kalkul
Der Lambda-Kalkul
• In diesem Kurs wird der Lambda-Kalkul als geringfugige notationelleErweiterung der Logik erster Stufe aufgefaßt, die es uns gestattet,Variablen zu binden, indem wir den Operator λ benutzen.Durch λ gebundene Variablen sind ‘Platzhalter’ fur fehlendeInformation.
• Wenn wir einen Lambda-Ausdruck vor einen anderen Ausdruckschreiben (den Argumentausdruck), dann ist das eine Anweisung,den Argumentausdruck in die Platzhalter einzusetzen.Das wird Funktionalapplikation genannt.
• Eine Operation namens β-Konversion erledigt die Substitutionen.Eine weitere Operation namens α-Konversion fuhrt kleine (aberwichtige) Verwaltungsfunktionen durch.
• Den Lambda-Kalkul sollte man sich als glue language vorstellen,als
”Programmiersprache“ fur eine einzige Aufgabe: das Verbinden
von Bausteinen fur den Zusammenbau semantischer Reprasentationen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 87/279
Computational Semantics
Der Lambda-Kalkul
Der Lambda-Operator
Der Lambda-Operator
Der Lambda-Operator kennzeichnet fehlende Information,indem er Variablen bindet.
• Es folgt ein einfacher Lambda-Ausdruck:
λx.man(x)
Der Prafix λx bindet das Auftreten des x in man(x).
• λx.man(x) kann wie folgt gelesen werden:
”Ich bin das einstellige Pradikat man,
und ich suche nach einem Term, um meine Argumentstelle zu fullen.“
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 88/279
Computational Semantics
Der Lambda-Kalkul
Funktionalapplikation
Funktionalapplikation
Der ‘@’-Operator wird benutzt, um Funktionalapplikation anzuzeigen.d. h. er zeigt an, daß wir eine Ersetzung vornehmen wollen.
Beispiel:
λx.man(x)@vincent
• Der Ausdruck λx.man(x) wird Funktor genannt.Der Ausdruck vincent wird das Argument genannt.
• Anschaulich heißt das: Fulle die Platzhalter im Funktor mit Vorkommendes Arguments vincent.
• Aber wie machen wir das genau . . . ?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 89/279
Computational Semantics
Der Lambda-Kalkul
β-Konversion
β-Konversion
Die gewunschte Substitution wird durch β-Konversion vorgenommen:
Aus
λx.man(x)@vincent
erzeugt β-Konversion
man(vincent)
Das λx. zu Beginn des Ausdrucks wird weggelassen,und das Argument wird an allen Stellen eingesetzt,an denen x durch λx gebunden wurde.
Das nennt man β-Konversion.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 90/279
Computational Semantics
Der Lambda-Kalkul
β-Konversion
Komplexere Falle
Die semantische Reprasentation fur a woman ist:
λQ.∃x(woman(x) ∧ Q@x)
Die Variable Q zeigt an, daß:
• Information fehlt
• und wo diese Information eingesetzt werden muß.
Zusammengefaßt: Wir konnen die Lambda-Notation dazu benutzen,Bedeutungsmuster oder Reprasentationsmuster aufzubauen,wobei expliziet angezeigt werden kann,wo verschiedene Teile eingefugt werden mussen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 91/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Ein Beispiel: Every boxer growls
Schritt 1: Zuweisung von λ-Ausdrucken zu den syntaktischen Kategorien:
boxer: λy.boxer(y)
growls: λx.growl(x)
every: λP.λQ.∀x(P@x→Q@x)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 92/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Erinnerung an alte Reprasentation
Wir haben dem Determinator ‘every’ die folgende Reprasentation gegeben:
det(X,Rest,Scope,all(X,imp(Rest,Scope)))
Wenn wir die Prolog-Variable P statt Rest und Q statt Scope benutzen,bekommen wir:
det(X,P,Q,all(X,imp(P,Q)))
Das entspricht
λP.λQ.∀x(P@x→Q@x)
Worin besteht der Unterschied?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 93/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Der Unterschied
• Der Prozeß der Kombination von Ausdrucken wird nicht mehr nur alsProgrammierubung angesehen.
• Wir haben ein Reprasentationsformat (Lambda-Notation)herausgearbeitet, das es uns ermoglicht, mit
”fehlender Information“
jeglicher Art umzugehen.D. h., wir haben eine wichtige Datenabstraktion durchgefuhrt.
• Außerdem haben wir die Hauptkonzepte herausgearbeitet,die wir fur die Arbeit mit diesen Reprasentationen brauchen:• Funktionalapplikation,• β-Konversion und (kommt noch)• α-Konversion.
• Zusammengefaßt: Wir haben genau die Werkzeuge, die wir brauchen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 94/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Every boxer growls (Fortsetzung)
Schritt 2: Verbinde den NP-Knoten mit der Applikation,die die DET-Reprasentation als Funktor unddie NOUN-Reprasentation als Argument hat.
every boxer (NP)
λP.λQ.∀x(P@x→Q@x)@λy.boxer(y)
every (DET)
λP.λQ.∀x(P@x→Q@x)
boxer (NOUN)
λy.boxer(y)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 95/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
β-Konversion
Applikationen sind Anweisungen, β-Konversion durchzufuhren.
Fuhrt man die verlangte Substitution aus, erhalt man:
every boxer: λQ.∀x(λy.boxer(y)@x→Q@x)
Dieser Ausdruck enthalt einen Unterausdruck der Form: λy.boxer(y)@x.
Das ist eine weitere Anweisung, β-Konversion durchzufuhren:
every boxer: λQ.∀x(boxer(x)→Q@x)
Weitere β-Konversionen konnen nicht durchgefuhrt werden,weshalb wir den Satz weiteranalysieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 96/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Die letztendliche Reprasentation
every boxer growls (S)
∀x(boxer(x)→growl(x))
every boxer (NP)
λQ.∀x(boxer(x)→Q@x)
growls (VP)
λz.growl(z)
every (DET)
λP.λQ.∀x(P@x→Q@x)
boxer (NOUN)
λy.boxer(y)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 97/279
Computational Semantics
Der Lambda-Kalkul
Ein Beispiel
Ein Moment der Reflektion
In zweierlei Hinsicht ist unser Ansatz zur Semantikkonstruktion einfachergeworden:
1. Der Prozeß der Kombination von Reprasentationen ist nun einheitlich.
2. Die meiste Arbeit in bezug auf die semantische Analyse wird nun imLexikon erledigt.
Das ist ein gutes Zeichen dafur, daß wir auf dem richtigen Weg sind,aber wir sollten das noch hinterfragen . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 98/279
Computational Semantics
Der Lambda-Kalkul
Eigennamen
Eigennamen: Wolken am Horizont?
• Quantifizierende Nominalphrasen konnen als Funktor benutzt werden.
• Aber was ist mit NPen wie Vincent?
• Es gibt kein Problem!
Mia: λP.P@mia
Vincent: λP.P@vincent
Diese Reprasentationen konnen als Funktoren benutzt werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 99/279
Computational Semantics
Der Lambda-Kalkul
Eigennamen
Eigennamen in AktionVincent loves Mia (S)
love(vincent,mia)
Vincent (NP)
λP.P@vincent
loves Mia (VP)
λz.love(z,mia)
loves (TV)
λw.λz.(w@λx.love(z,x))
Mia (NP)
λP.P@mia
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 100/279
Computational Semantics
Der Lambda-Kalkul
α-Konversion
Ist β-Konversion immer sicher?
• Die Reprasentationen
λx.λy.bloogle(x,y)
und
λz.λw.bloogle(z,w)
sollten denselben Effekt haben.x, y, z und w sind einfach Platzhalter.Sie haben keine inharente Eigenbedeutung.
• Normalerweise funktioniert alles gut.Z. B. wenn wir die obigen Ausdrucke zuerst auf fee unddann auf boo anwenden und dann β-Konversionen durchfuhren,bekommen wir dasselbe Ergebnis, namlich bloogle(fee,boo).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 101/279
Computational Semantics
Der Lambda-Kalkul
α-Konversion
Ein Problem
• Aber es kann schief gehen, wenn wir einen Lambda-Ausdruck auf eineVariable anwenden, die gebunden in einem Funktor vorkommt.
• Wenn wir z. B. λx.λy.bloogle(x,y) auf die Variable w anwenden,erhalten wir λy.bloogle(w,y), was genau das ist, was wir wollen.
• Wenden wir aber λz.λw.bloogle(z,w) auf w an,bekommen wir λw.bloogle(w,w).
• Das wollen wir nicht. Die Variable w wurde zufallig gebunden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 102/279
Computational Semantics
Der Lambda-Kalkul
α-Konversion
α-Konversion
• α-Konversion ist die Ersetzung (Umbenennung) gebundener Variablen.
• Zum Beispiel erhalten wir aus
λx.λy.bloogle(x,y)
durch α-Konversion den Ausdruck
λz.λw.bloogle(z,w)
indem wir x durch z und y durch w ersetzen.
• Bei der Arbeit mit dem Lambda-Kalkul fuhren wir immer erst eineα-Konversion durch, bevor wir die β-Konversion vornehmen.Wir nennen insbesondere immer alle gebundenen Variablen im Funktorum, so daß sie sich von allen Variablen im Argument unterscheiden.
• Das schließt zufallige Bindungen aus.
• Unsere grundlegende Kombinationsmethode ist alsoα-Konversion (zur Sicherheit) gefolgt von β-Konversion.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 103/279
Computational Semantics
Der Lambda-Kalkul
Nocheinmal die drei Aufgaben
Nocheinmal die drei Aufgaben
Aufgabe 1 Wir mussen eine Syntax fur das Fragment naturlicher Spracheentwickeln, das uns interessiert. Das konnen wir mit DCGs machen.
Aufgabe 2 Wir mussen semantische Reprasentationen fur Lexikoneintragespezifizieren. Wir wissen, was hierfur zu tun ist.
Aufgabe 3 Wir mussen die Ubersetzung einer Einheit R, die aus F und Abesteht, mit Hilfe von Funktionalapplikation definieren.D. h., wir mussen sagen, welcher Teil der Funktor sein soll (hier F) undwelcher das Argument (hier A) und dann als Ergebnis der UbersetzungR′ = F ′@A′ nehmen.Wir wissen, daß uns β-Konversion (zusammen mit α-Konversion)die Werkzeuge zur Verfugung stellt, die wir brauchen, umdie Reprasentationen zu erzeugen, die bei diesem Prozeß gebautwerden.
Wir mussen jetzt nur noch zeigen, daß die Aufgaben 2und 3 auch furComputer implementiert werden konnen.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 104/279
Computational Semantics
Der Lambda-Kalkul
Nocheinmal die drei Aufgaben
Ubung
1. Arbeiten Sie sich durch die Funktionalapplikationen und β-Konversionendie fur die Analyse von (6) verwendet werden.
(6) Vincent loves Mia.
Stellen Sie sicher, dass sie die semantische Reprasentation de transitivenVerbs verstehen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 105/279
Computational Semantics
Der Lambda-Kalkul
Der Lambda-Kalkul in Prolog
Der Lambda-Kalkul in Prolog
Wir mussen drei Sachen tun:
Schritt 1 : Eine Reprasentation fur Lambda-Ausdrucke in Prolog finden.Einfach – Wir machen es so:
lam(X,F)
Schritt 2 : Wir mussen Funktionalapplikation in Prolog reprasentieren.Auch einfach:
app(Functor,Argument)
Schritt 3 : Wir mussen α-Konversion implementieren.
Schritt 4 : Wir mussen β-Konversion implementieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 106/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Das Top-Level-Pradikat
Alpha-Konversion in Prolog: Das Top-Level-Pradikat
Das Top-Level-Pradikat:
alphaConvert(F1,F2):-
alphaConvert(F1,[],F2).
Das mittlere Argument ist ein Stack fur Substitutionen.Diese werden sub(X,Y) geschrieben,was bedeutet, daß Variable X die Variable Y ersetzt.
Die Idee ist, daß man F1 durchsucht und fur alle gebundenen Variablendie benotigte Substitution auf dem Stack mitschreibt.
Wenn wir auf der Stufe der Variablen angekommen sind,fuhren wir die Substitution durch.
Zu Beginn ist der Stack (wie man oben sieht) leer.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 107/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Variablen
Variablen
alphaConvert(X,Subs,Y):-
var(X),
(
memberList(sub(Z,Y),Subs),
X==Z, !
;
Y=X
).
Das bedeutet: Wenn der zu konvertierende Ausdruck eine Variable istund es eine passende Substitution gibt, fuhre sie durch,und nimm diese Entscheidung nie zuruck (X==Z, !);ansonsten gib dieselbe Variable zuruck (X=Y)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 108/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Der Existenzquantor
Der Existenzquantor
alphaConvert(Expression,Subs,some(Y,F2)):-
nonvar(Expression),
Expression = some(X,F1),
alphaConvert(F1,[sub(X,Y)|Subs],F2).
Das bedeutet: Wenn wir einen Ausdruck mit Existenzquantor finden,mache eine Notiz uber die benotigte Substitution(d. h. tue sie auf den Stack),und fuhre die Alpha-Konversion der Matrix des Ausdrucks durch.
Das Ergebnis der Konversion ist das Ergebnis der Konversion der MatrixF1 und die neue Variable.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 109/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Der Allquantor
Der Allquantor
Allquantoren und Lambdas werden analog behandelt:
alphaConvert(Expression,Subs,all(Y,F2)):-
nonvar(Expression),
Expression = all(X,F1),
alphaConvert(F1,[sub(X,Y)|Subs],F2).
alphaConvert(Expression,Subs,lam(Y,F2)):-
nonvar(Expression),
Expression = lam(X,F1),
alphaConvert(F1,[sub(X,Y)|Subs],F2).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 110/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Andere Operatoren
Andere Operatoren
alphaConvert(F1,Subs,F2):-
nonvar(F1),
\+ F1 = some( , ),
\+ F1 = all( , ),
\+ F1 = lam( , ),
compose(F1,Symbol,Args1),
alphaConvertList(Args1,Subs,Args2),
compose(F2,Symbol,Args2).
Das bedeutet: Wenn alle anderen Falle nicht zutreffen,wandle den Ausdruck in das Operatorsymbol und eine Liste um,wende die Alpha-Konversion auf die Liste der Argumente an undwandle dann die alpha-kovertierte Liste wieder in einen Ausdruck um.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 111/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Alpha-Konversion einer Liste von Ausdrucken
Alpha-Konversion einer Liste von Ausdrucken
Die benotigte Rekursion fur die Listenkonvertierung entspricht denStandard-Verfahren:
alphaConvertList([],_,[]).
alphaConvertList([X|L1],Subs,[Y|L2]):-
alphaConvert(X,Subs,Y),
alphaConvertList(L1,Subs,L2).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 112/279
Der Lambda-Kalkul in Prolog
Alpha-Konversion in Prolog
Alpha-Konversion einer Liste von Ausdrucken
Demo
• Lade betaConversion.pl
• alphaConvert(lam(X,app(X,mia)),Converted).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 113/279
Der Lambda-Kalkul
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
Abschnitt 3: Lambda-Kalkul (II)
• Nach der α-Konversion beschaftigen wir uns nun mit derImplementation der β-Konversion in Prolog.
• Außerdem diskutieren wir grammar engineering undwie die Programme, die wir in diesem Kurs verwenden, organisiert sind.
• Demos:• betaConversion.pl• lambda.pl
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 114/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
Grundideen
Grundideen
Grundideen:
• Wir verwenden einen Stack zur Verwaltung der Applikationen.
• Applikationen pushen Ausdrucke auf den Stack.
• Abstraktionen poppen Ausdrucke vom Stack.
Klausel, die einen leeren Stack einfuhrt:
betaConvert(X,Y):-
betaConvert(X,Y,[]).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 115/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
Variable
Variable
Eine Variable bleibt unverandert:
betaConvert(X,Y,[]):-
var(X),
Y=X.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 116/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
Applikation
Applikation
betaConvert(Expression,Result,Stack):-
nonvar(Expression),
Expression = app(X,Y),
nonvar(X),
alphaConvert(X,C),
betaConvert(C,Result,[Y|Stack]).
Die Applikation ist eine Anweisung, das Argument auf den Stack zutunund den Funktor nach erfolgter α-Konversion weiter zu reduzieren.
Das Ergebnis der Reduktion des Funktors ist das Gesamtergebnis.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 117/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
λ-Abstraktion
λ-Abstraktion
betaConvert(Expression,Result,[X|Stack]):-
nonvar(Expression),
Expression = lam(X,Formula),
betaConvert(Formula,Result,Stack).
λ-Abstraktion ist eine Anweisung, eine Element vom Stack zu nehmen unddie λ-abstrahierte Variable mit diesem Element zu unifizieren.
Die β-Konversion der Formel ergibt das Ergebnis der β-Konversion desgesamten Ausdrucks.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 118/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
Andere Falle
Andere Falle
betaConvert(Formula,Result,[]):-
nonvar(Formula),
\+ (Formula = app(X, ), nonvar(X)),
compose(Formula,Functor,Formulas),
betaConvertList(Formulas,ResultFormulas),
compose(Result,Functor,ResultFormulas).
Alle anderen Falle (Stack leer, also keine λ-Abstr) werden behandelt,indem die Formel in Funktor und Argumente (Formulas) zerlegt wird, diedann selbst β-konvertiert und anschließend zum Ergebniszusammengebaut werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 119/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
β-Konversion einer Liste
β-Konversion einer Liste
Konvertierung einer Liste von Ausdrucken mittels Prolog-Recursion:
betaConvertList([],[]).
betaConvertList([Formula|Others],[Result|ResultOthers]):-
betaConvert(Formula,Result),
betaConvertList(Others,ResultOthers).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 120/279
Der Lambda-Kalkul in Prolog
β-Konversion in Prolog
β-Konversion einer Liste
Demo
• Lade betaConversion.pl
• betaConvert(app(lam(P,app(P,mia)),lam(X,walk(X))),X).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 121/279
Computational Semantics
Der Lambda-Kalkul
Grammar Engineering
Grammar Engineering
• Die explizite Kenntlichmachung der Funktionalapplikation und dieImplementation der β-Konversion sind grundlegende Werkzeuge,mit denen wir in diesem Kurs arbeiten werden.
• Es ist an der Zeit, eine großere Grammatik zu entwickeln undanzufangen, Computational Semantics im Detail zu studieren.
• Aber wenn wir das tun, sollten wir versuchen,wichtige Grundsatze der Grammatikentwicklung zu beachten.
• Unsere Grammatik sollte folgende Eigenschaften haben:• modular• erweiterbar• wiederverwendbar
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 122/279
Der Lambda-Kalkul
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Grammatikarchitektur mit vier Ebenen
• die Syntaxregeln (Prolog DCGs)
• die Semantikregeln (ein Gegenstuck zu den Syntaxregeln)
• das Lexikon (ein Wortverzeichnis)
• die semantischen Makros(semantische Reprasentationen fur die Lexikoneintrage)
Syntaxregeln und Lexikon bleiben fur den Rest des Kurses unverandert.
Die semantischen Regeln und die semantischen Makros sind die Ebenen,die verandert werden, wenn wir im folgenden an der Semantik arbeiten.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 123/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Syntaxregeln
Die Syntaxregeln
s([coord:no,sem:Sem])-->
np([coord:_,num:Num,sem:NP]),
vp([coord:_,inf:fin,num:Num,sem:VP]),
{combine(s:Sem,[np:NP,vp:VP])}.
• Keine Koordination• Numerus von Subjekts-NP und VP stimmt uberein. (Person fehlt . . . )• Flexion (Inflection) der VP ist finit.• Die Kombination der Semantik wird mittels combine/2 erledigt.
Wie die semantische Information im Baum nach oben gereicht wird,wird durch semantische Regeln (Instanzen von combine/2) spezifiziert.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 124/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Syntaxregeln
Die Syntaxregeln: Coordination
np([coord:yes,num:pl,sem:NP])-->
np([coord:no,num:sg,sem:NP1]),
coord([type:conj,sem:C]),
np([coord:_,num:_,sem:NP2]),
{combine(np:NP,[np:NP1,coord:C,np:NP2])}.
np([coord:yes,num:sg,sem:NP])-->
np([coord:no,num:sg,sem:NP1]),
coord([type:disj,sem:C]),
np([coord:_,num:sg,sem:NP2]),
{combine(np:NP,[np:NP1,coord:C,np:NP2])}.
• Man muß Linksrekursion (X → X Y) ausschließen, sonst bekommt manProbleme mit dem Prolog-Parser.
• Binares Merkmal coord hilft dabei.• Konjunktive Verknupfung zweier NPen ist Plural,
disjunktive Verknupfung zweier Singular NPen bleibt Singular.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 125/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Syntaxregeln
Die Syntaxregeln: Lexikonzugriff
Lexikonregeln werden auf Terminalsymbole angewendet (die Worter in der Eingabe desParsers) und mussen im Lexikon nachsehen, ob ein Wort zu der syntaktischen Kategoriegehort, nach der gerade gesucht wird.
noun([sem:Sem])-->
{lexEntry(noun,[symbol:Symbol,syntax:Word,_])},
Word
{semLex(noun,[symbol:Symbol,sem:Sem])}.
Wir suchen im Lexikon mittels lexEntry nach Symbolen, die noun sind, die Information,daruber, wie das Symbol geschrieben wird (Word), benutzen wir zum Parsen und berechnendann mit semLex den semantischen Beitrag (Sem) unter Zuhilfename des Symbols.
Fur jede lexikalische Kategorie gibt es solch ein Makro,wodurch wir von spezifischen Typen von Strukturen abstrahieren konnen.
Unsere Syntaxregeln sind also unabhangig von der semantischen Theorie,mit der wir arbeiten wollen!
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 126/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die semantischen Regeln
Die semantischen Regeln
Die benotigten semantischen Annotationen fur unsere Implementation desλ-Kalkuls sind einfach; sie entsprechen der Anweisung, den Funktor aufdas Argument anzuwenden und werden mittels app ausgedruckt:
combine(np1:app(A,B),[det:A,n2:B]).
combine(n2:app(app(B,A),C),[n1:A,coord:B,n1:C]).
combine(np1:A,[pn:A]).
Da combine/3 uns eine extreme Flexibilitat fur die Implementationder Semantikkonstruktion gibt, konnen wir naturlich β-Konversion auchdirekt anwenden:
combine(s1:Converted,[np2:A,vp2:B]):-
betaConvert(app(A,B),Converted).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 127/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Lexikoneintrage
Lexikoneintrage
Lexikoneintrage haben die folgende Form:
lexicon(Cat,Features)
dabei ist
• Cat die syntaktische Kategorie,
• Features Liste von Attribut-Wert-Paaren
Die Eintrage fur Nomina, Eigennamen, Adjektive sind z. B. :
lexEntry(noun,[symbol:burger,syntax:[burger]]).
lexEntry(pn,[symbol:mia,syntax:[mia]]).
lexEntry(pn,[symbol:vincent,syntax:[vincent,vega]]).
lexEntry(adj,[symbol:big,syntax:[big]]).
Man beachte die Behandlung von Mehrwortlexemen (Vincent Vega).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 128/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Lexikoneintrage
Determinatoren
Andere Eintrage enthalten andere Merkmale, z. B. haben QunatorenInformation uber Modus und die Art der Qunatifikation:
lexEntry(det,[syntax:[every],mood:decl,type:uni]).
lexEntry(det,[syntax:[a],mood:decl,type:indef]).
lexEntry(det,[syntax:[the],mood:decl,type:def]).
lexEntry(det,[syntax:[which],mood:int,type:wh]).
Es gibt kein Merkmal symbol. Wieso? Beitrag von Qunatoren ist nichtuber ein einfaches Relationssymbol zu charakterisieren. Beitrag ist einkomplexes, theorieabhangiges Gebilde. Wird in den semantischen Makrosgemacht.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 129/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Lexikoneintrage
Verben
Merkmal fur Verbflexion und Numerus (Person wird eigentlich auch nochgebraucht):
lexEntry(tv,[symbol:clean,syntax:[clean],inf:inf,num:sg]).
lexEntry(tv,[symbol:clean,syntax:[cleans],inf:fin,num:sg]).
lexEntry(tv,[symbol:clean,syntax:[clean],inf:fin,num:pl]).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 130/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Die Lexikoneintrage
Hilfsverben
Zusatzliches Merkmal fur Polaritat:
lexEntry(av,[syntax:[does],inf:fin,num:sg,pol:pos]).
lexEntry(av,[syntax:[does,not],inf:fin,num:sg,pol:neg]).
lexEntry(av,[syntax:[did],inf:fin,num:sg,pol:pos]).
lexEntry(av,[syntax:[did,not],inf:fin,num:sg,pol:neg]).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 131/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Semantische Makros
Semantische Makros fur Eigennamen, Nomina, transitiveVerben
Semantische Makros spezifizieren die lexikalische Semantik:
semLex(pn,M):-
M = [symbol:Sym,
sem:lam(U,app(U,Sym))].
semLex(noun,M):-
M = [symbol:Sym,
sem:lam(X,Formula)],
compose(Formula,Sym,[X]).
semLex(tv,M):-
M = [symbol:Sym,
sem:lam(K,lam(Y,app(K,lam(X,Formula))))],
compose(Formula,Sym,[Y,X]).c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 132/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Semantische Makros
Semantische Makros fur Determinatoren
semLex(det,M):-
M = [type:uni,
sem:lam(U,lam(V,all(X,imp((app(U,X)),(app(V,X))))))].
semLex(det,M):-
M = [type:indef,
sem:lam(U,lam(V,some(X,and((app(U,X)),(app(V,X))))))].
semLex(det,M):-
M = [type:indef,
sem:lam(U,lam(V,some(X,and(app(U,X),app(V,X)))))].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 133/279
Grammar Engineering
Grammatikarchitektur mit vier Ebenen
Semantische Makros
Das Toplevel-Pradikat
lambda :-
readLine(Sentence),
lambda(Sentence,Sems),
printRepresentations(Sems).
Lies einen Satz ein, rufe lambda/2 auf undgib das Ergebnis graphisch aufbereitet aus.
Dabei ist lambda/2 wie folgt definiert:
lambda(Sentence,Sems):-
setof(Sem,t([sem:Sem],Sentence,[]),Sems).
Finde alle Losungen fur t([sem:Sem],Sentence,[]).Liefere eine Liste der jeweiligen Sem-Werte in Sems.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 134/279
Der Lambda-Kalkul
Grammar Engineering
Demo
Demo
Lade lambda.pl
(7) a. Butch growls
b. Every boxer growls.
c. Mia knows a boxer.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 135/279
Computational Semantics
Skopusambiguitaten
Abschnitt 4: Skopusambiguitaten
• Wir diskutieren das Problem der Skopusambiguitaten(hauptsachlich Ambiguitaten in bezug auf Quantorenskopus)und suchen Moglichkeiten sie computerverarbeitbar zu machen.
• Wir diskutieren zuerst Montagues Trick (quantifier raising).
• Von dort kommen wir ganz naturlich zum Cooper Storage und zumKeller Storage. Wir implementieren beide Ansatze in Prolog.
• Zum Schluß lernen wir etwas uber moderneUnterspezifikationsansatze.
• Demos:• cooperStorage.pl
• kellerStorage.pl
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 136/279
Computational Semantics
Skopusambiguitaten
Ambiguitaten bei Quantorenskopus
Ambiguitaten in bezug auf Quantorenskopus
Satze mit Quantoren haben mehrere Interpretationen (Lesarten), z. B. :
(8) a. Mia told a joke in every episode. (2 Lesarten)
b. Most actors tell a joke in every film. (5 Lesarten)
Der Kontext hilft bei der Desambiguierung:
(9) A cyclist is hit by a bus every day in Helsinki.He doesn’t appreciate it very much.
Wie funktioniert unsere bisher entwickelte Methode derSemantikkonstruktion fur den folgenden Satz?
(10) Every boxer loves a woman. (2 Lesarten)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 137/279
Computational Semantics
Skopusambiguitaten
Ambiguitaten bei Quantorenskopus
Every boxer loves a woman (S)
∀x(boxer(x)→ ∃y(woman(y)∧love(x,y)))
Every boxer (NP)
λP.∀x(boxer(x)→P@x)
loves a woman (VP)
λz.∃y(woman(y)∧love(z,y))
loves (TV)
λX.λz.X@λx.love(z,x)
a woman (NP)
λQ.∃y(woman(y)∧Q@y)
Every boxer loves a woman hat aber noch eine zweite Bedeutung:
∃y(woman(y) ∧ ∀x(boxer(x) → love(x,y)))
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 138/279
Computational Semantics
Skopusambiguitaten
Ambiguitaten bei Quantorenskopus
Ist das wirklich ein Problem?
Betrachten wir noch einmal Every boxer loves a woman.
• In einem bestimmten Sinn ist die erste Reprasentation fur beideLesarten ausreichend, da sie die zweite Lesart enthalt.
• Das macht die starkere Reprasentation uberflussig:Vielleicht kann sie mit Hilfe von Kontextwissenpragmatisch aus der ersten Reprasentation erschlossen werden.
Brauchen wir also wirklich Techniken,um mit dem Quantorenskopus fertig zu werden?
Brauchen wir:
• Die direkte Konstruktion ergibt nicht immer die schwachste Lesart.
• Quantorenskopus fuhrt nicht immer zu logisch unabhangigen Lesarten.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 139/279
Computational Semantics
Skopusambiguitaten
Ambiguitaten bei Quantorenskopus
Every owner of a hash bar gives every criminal a big kahuna burger(15 Lesarten, 11 Gruppen logisch aquivalenter Lesarten)
daVinci
V2.
1
10
13 8
9
5
2
3
6
15 1
4
Gabsdil und Striegnitz, 1999
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 140/279
Computational Semantics
Skopusambiguitaten
Ambiguitaten bei Quantorenskopus
Every owner of a hash bar gives every criminal a big kahuna burgerNode 1: (Lesart 1)1:∀A(criminal(A)&male(A)→∃B(bkburger(B)&(neuter(B)&∀C(∀D(hashbar(D)&(neuter(C)&(neuter(D)&(owner(C)&of(C,D))))→give(C,A,B))))))
Node 2: (Lesart 2)2:∀A(criminal(A)&male(A)→∃B(∃C(bkburger(C)&(hashbar(B)&(neuter(B)&(neuter(C)&∀D(neuter(D)&(owner(D)&of(D,B))→give(D,A,C))))))))
Node 3: (Lesart 3)3:∀A(criminal(A)&male(A)→∃B(hashbar(B)&(neuter(B)&∀C(neuter(C)&(owner(C)&of(C,B))→∃D(bkburger(D)&(neuter(D)&give(C,A,D)))))))
Node 4: (Lesart 4 and 14)4:∀A(criminal(A)&male(A)→∀B(∀C(hashbar(C)&(neuter(B)&(neuter(C)&(owner(B)&of(B,C))))→∃D(bkburger(D)&(neuter(D)&give(B,A,D))))))14:∀A(∀B(hashbar(B)&(neuter(A)&(neuter(B)&(owner(A)&of(A,B))))→∀C(criminal(C)&male(C)→∃D(bkburger(D)&(neuter(D)&giveA(C,D))))))
Node 5: (Lesart 5)5:∃A(bkburger(A)&(neuter(A)&∀B(criminal(B)&male(B)→∃C(hashbar(C)&(neuter(C)&∀D(neuter(D)&(owner(D)&of(D,C))→give(D,B,A)))))))
Node 6: (Lesart 6 and 7)6:∃A(bkburger(A)&(neuter(A)&∀B(criminal(B)&male(B)→∀C(∀D(hashbar(D)&(neuter(C)&(neuter(D)&(owner(C)&of(C,D))))→give(C,B,A))))))7:∃A(bkburger(A)&(neuter(A)&∀B(∀C(hashbar(C)&(neuter(B)&(neuter(C)&(owner(B)&of(B,C))))→∀D(criminal(D)&male(D)→give(B,D,A))))))
Node 8: (Lesart 8)8:∃A(hashbar(A)&(neuter(A)&∀B(criminal(B)&male(B)→∃C(bkburger(C)&(neuter(C)&∀D(neuter(D)&(owner(D)&of(D,A))→give(D,B,C)))))))
Node 9: (Lesart 9 and 12)9:∃A(hashbar(A)&(neuter(A)&∀B(criminal(B)&male(B)→∀C(neuter(C)&(owner(C)&of(C,A))→∃D(bkburger(D)&(neuter(D)&give(C,B,D)))))))12:∃A(hashbar(A)&(neuter(A)&∀B(neuter(B)&(owner(B)&of(B,A))→∀C(criminal(C)&male(C)→∃D(bkburger(D)&(neuter(D)&give(B,C,D)))))))
Node 10: (Lesart (10 and 11)10:∃A(∃B(bkburger(B)&(hashbar(A)&(neuter(A)&(neuter(B)&∀C(criminal(C)&male(C)→∀D(neuter(D)&(owner(D)&of(D,A))→give(D,C,B))))))))11:∃A(∃B(bkburger(B)&(hashbar(A)&(neuter(A)&(neuter(B)&∀C(neuter(C)&(owner(C)&of(C,A))→∀D(criminal(D)&male(D)→give(C,D,B))))))))
Node 13: (Lesart 13)13:∃A(hashbar(A)&(neuter(A)&∀B(neuter(B)&(owner(B)&of(B,A))→∃C(bkburger(C)&(neuter(C)&∀D(criminal(D)&male(D)→give(B,D,C)))))))
Node 15: (Lesart 15)15:∀A(∀B(hashbar(B)&(neuter(A)&(neuter(B)&(owner(A)&of(A,B))))→∃C(bkburger(C)&(neuter(C)&∀D(criminal(D)&male(D)→give(A,D,C))))))
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 141/279
Computational Semantics
Skopusambiguitaten
Montagues Ansatz
Montagues Ansatz
• Quantifikationsregel (Quantorenanhebung Quantifier Raising)
• Verwende ein”indiziertes Pronomen“
statt der Nominalphrase mit Quantor fur die Kombination.
• Indizierte Pronomina sind Platzhalter fur quantifizierende NPen.
• Wenn der Platzhalter fur die erwunschte Lesart hoch genug im Baumist, konnen wir ihn durch die quantifizierende NP ersetzen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 142/279
Computational Semantics
Skopusambiguitaten
Montagues Ansatz
Montagues Ansatz (Quantorenanhebung)
Every boxer loves a woman (S)
∃y(woman(y) & ∀x(boxer(x)→love(x,y)))
a woman (NP)
λP.∃y(woman(y) & P@y)
Every boxer loves her-3 (S)
λz3.∀x(boxer(x)→love(x,z3))
Every boxer (NP)
λP.∀x(boxer(x)→P@x)
loves her-3 (VP)
λy.love(y,z3)
loves (TV)
λX.λy.X@λx.love(y,x)
her-3 (NP)
λP.P@z3
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 143/279
Computational Semantics
Skopusambiguitaten
Montagues Ansatz
Anmerkungen zu Montagues Ansatz
• Die Grundidee ist gut.Insbesondere die Idee, daß wir eine Platzhalterreprasentation benutzen,die bei Bedarf umgewandelt werden kann.Wir werden in Kurze weitere solche Ansatze kennenlernen.
• Aber die Art und Weise, wie diese Idee umgesetzt wurde, ist schlecht.Wir brauchen dazu besondere Grammatikregeln.Wir wollen aber nicht die Grammatik verandern, sondern existierendeGrammatiken fur die Semantikkonstruktion verwenden.
• Speicheransatze, die wir uns jetzt ansehen werden, verschieben dieHauptkomponente aus Montagues Ansatz von der Syntax in dieKomponente zur Semantikkonstruktion, also dahin, wo sie hingehort.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 144/279
Computational Semantics
Skopusambiguitaten
Cooper Storage
Cooper Storage
Hauptideen:
• Verbinde jeden Knoten in einem Parse-Baum mit einem Speicher.
• Ein Speicher enthalt eine semantische Kernreprasentation undQuantoren, die zu tiefer im Baum liegenden Knoten gehoren.
• Nachdem ein Satz geparst wurde, wird der Speicher benutzt,um die geskopten Reprasentationen zu erzeugen.
• Die Reihenfolge, in der die Elemente aus dem Speicher genommenwerden, bestimmt die verschiedenen Skopus.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 145/279
Skopusambiguitaten
Cooper Storage
Die formale Reprasentation des Speichers
Die formale Reprasentation des Speichers
• Ein Speicher ist eine n-stellige Sequenz.
• Speicher werden durch die spitzen Klammern ‘〈’ und ‘〉’ reprasentiert.
• Das erste Element der Sequenz ist die semantische Kernreprasentation.
• Folgende Elemente sind Paare der Form (β, i),wobei β die semantische Reprasentation einer NP ist(d. h. ein weiterer λ-Ausdruck) und i ein Index ist.
• Ein Index ist eine Markierung (label), die einer freien Variablen in dersemantischen Kernreprasentation entspricht.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 146/279
Skopusambiguitaten
Cooper Storage
Die Speicherregel
Die Speicherregel
• Wie benutzen wir Speicher fur die Semantikkonstruktion?
• Quantifizierte Nominalphrasen durfen die Information im Speicher‘umpacken’.
Genauer:
Storage (Cooper)Wenn der Speicher 〈φ, (β, j), . . . , (β′, k)〉 eine semantischeReprasentation fur eine quantifizierte NP ist,dann ist der Speicher 〈λP.P@zi ,(φ, i), (β, j), . . . , (β
′, k)〉,wobei i ein eindeutiger Index ist,ebenfalls eine Reprasentation fur diese NP.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 147/279
Skopusambiguitaten
Cooper Storage
Ein Beispiel
Every boxer loves a woman (S)
〈love(z6,z7), (λP.∀x(boxer(x)→P@x),6), (λP.∃y(woman(y)∧P@y),7)〉
Every boxer (NP)
〈λQ.Q@z6, (λP.∀x(boxer(x)→P@x),6)〉
loves a woman (VP)
〈λu.love(u,z7), (λP.∃y(woman(y)∧P@y),7)〉
loves (TV)
〈λX.λu.X@λv.love(u,v)〉a woman (NP)
〈λQ.Q@z7, (λP.∃y(woman(y)∧P@y),7)〉
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 148/279
Skopusambiguitaten
Cooper Storage
Retrieval
Herausnehmen (Retrieval) (I)
Wir wollen normale gescopte Reprasentationen erster Stufe!
Wie bekommen wir die?
• Nimm einen der indexbindenden Operatoren aus dem Speicher.
• Kombiniere ihn mit der Kernreprasentation.
• Das Resultat ist eine neue Kernreprasentation.
• Wiederhole diese Schritte bis der Speicher ein Element enthalt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 149/279
Skopusambiguitaten
Cooper Storage
Retrieval
Retrieval (II)
Genauer:
Retrieval (Cooper)Sei σ1 und σ2 eine (evtl. leere) Sequenz von Bindungsoperatoren.Wenn der Speicher 〈φ, σ1, (β, i), σ2〉 mit einem Ausdruck derKategorie S assoziiert wird, dann ist der Speicher 〈β@λzi .φ, σ1, σ2〉ebenfalls mit diesem Ausdruck assoziiert.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 150/279
Skopusambiguitaten
Cooper Storage
Retrieval
Unser Beispiel
〈love(z6,z7), (λP.∀x(boxer(x)→P@x),6), (λP.∃y(woman(y)∧P@y),7)〉Wende Retrieval-Regel auf den Speicher an, der zum S-Knoten gehort:
〈 λP.∀x(boxer(x)→P@x)@λz6.love(z6,z7), (λP.∃y(woman(y)∧P@y),7)〉Nach β-Konversion entspricht das:
〈 ∀x(boxer(x)→love(x,z7)), (λP.∃y(woman(y)∧P@y),7)〉Herausnehmen das Quantors im Speicher:
〈 λP.∃y(woman(y)∧P@y)@λz7.∀x(boxer(x)→love(x,z7))〉Ergebnis nach erneuter β-Konversion:
〈∃y(woman(y)∧∀x(boxer(x)→love(x,y)))〉Wie kriegen wir die andere Lesart?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 151/279
Skopusambiguitaten
Cooper Storage
Cooper Storage in Prolog
Cooper Storage in Prolog
Speicher werden als Listen reprasentiert.
Das erste Element ist ein Lambda-Ausdruck,der Rest eine Liste von Bindungsoperatoren:
[walk(X),bo(lam(P,all(Y,imp(boxer(Y),app(P,X)))),X)].
Wir arbeiten mit Speichern, also mussen auch Lexikoneintrage mitSpeichern verknupft werden.
Mussen sagen, wie Speicher verknupft werden,und dafur sorgen, daß alle Retrievals ausprobiert werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 152/279
Cooper Storage
Cooper Storage in Prolog
Lexikoneintrage
Lexikoneintrage
Bisher:
semLex(iv,M) :-
M = [symbol:Sym,
sem:lam(X,Formula)],
compose(Formula,Sym,[X]).
Jetzt:
semLex(iv,M) :-
M = [symbol:Sym,
sem:[lam(X,Formula)]],
compose(Formula,Sym,[X]).
Nur die Klammerung des Ausdrucks ist neu.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 153/279
Cooper Storage
Cooper Storage in Prolog
Kombinationsregeln
Kombinationsregeln (I)
Bisher:
combine(vp:app(A,B),[tv:A,np:B]).
Jetzt:
combine(vp:[app(A,B)|S],[tv:[A],np:[B|S]]).
Das ist einfach, aber . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 154/279
Cooper Storage
Cooper Storage in Prolog
Kombinationsregeln
Kombinationsregeln (II)
Manchmal mussen wir verschiedene Speicher verknupfen.Z. B. bei Koordination:
combine(np:[app(app(B,A),C)|S3],[np:[A|S1],coord:[B],np:[C|S2]]):-
appendLists(S1,S2,S3).
Aber noch interessanter sind die Determinatorregeln und die Satzregeln.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 155/279
Cooper Storage
Cooper Storage in Prolog
Kombinationsregeln
Determinator und Nomen
• Fur Determinator-Nomen-Kombinationen gibt es die Moglichkeit,Dinge auf den Speicher zu tun oder normal weiterzumachen.
• Erste Regel legt quantifizierte NP auf den Speicher:combine(np:[lam(P,app(P,X)),bo(app(A,B),X)|S],[det:[A],n:[B|S]]).
• Die zweite fuhrt Funktionalapplikation durch:combine(np:[app(A,B)|S],[det:[A],n:[B|S]]).
• Anmerkung: Speichern ist optional!Es gibt zwei Semantikregeln fur eine Syntaxregel.
• Optionalitat fuhrt zu 5 Lesarten fur:
(11) Every boxer loves a woman.
(Beide nicht speichern = 1, jeweils eine speichern = 2,beide speichern und verschieden herausnehmen = 2)
• Filter fur alphabetische Varianten
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 156/279
Cooper Storage
Cooper Storage in Prolog
Kombinationsregeln
Satzregel
Bei der Satzregel muß das Retrieval stattfinden.
combine(s:S,[np:[A|S1],vp:[B|S2]]):-
appendLists(S1,S2,S3),
sRetrieval([app(A,B)|S3],Retrieved),
betaConvert(Retrieved,S).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 157/279
Cooper Storage
Cooper Storage in Prolog
Retrieval
Retrieval
• SRetrieval = erstes Argument ist der Speicher, zweites die geskopteReprasentation
• Wenn der Speicher nur ein Element enthalt, dann ist das dieskopusaufgeloste Formel:sRetrieval([S],S).
• Ansonsten:sRetrieval([Sem|Store],S):-
selectFromList(bo(Q,X),Store,NewStore),
sRetrieval([app(Q,lam(X,Sem))|NewStore],S).
Nimm ein Element aus dem Speicher,λ-abstrahiere Sem in Bezug auf die Variable aus dem Speicher undfuhre Applikation durch.Wende dann sRetrieval auf das Ergebnis zusammen mit NewStore an.selectFromList kann irgendein Element aus dem Speicher nehmen →kriegen alle Moglichkeiten.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 158/279
Cooper Storage
Cooper Storage in Prolog
Das Top-Level-Pradikat
Das Top-Level-Pradikat
cooperStorage:-
readLine(Sentence),
setof(Sem,t([sem:Sem],Sentence,[]),Sems1),
filterAlphabeticVariants(Sems1,Sems2),
printRepresentations(Sems2).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 159/279
Cooper Storage
Cooper Storage in Prolog
Alphabetische Varianten
Alphabetische Varianten
filterAlphabeticVariants(L1,L2):-
selectFromList(X,L1,L3),
memberList(Y,L3),
alphabeticVariants(X,Y), !,
filterAlphabeticVariants(L3,L2).
filterAplhabeticVariants(L,L).
Nimm ein Element X aus L1 und gebe L3 als Rest zuruck, nimm einElement Y aus L3. Wenn X und Y Varianten voneinander sind,erklare die Wahl von X fur endgultigund arbeite mit L3, der Liste, die X nicht enthalt, weiter.
Wenn X und Y keine Varianen voneinander sind, wahle ein neues Y bzw.wenn das nicht hilft, ein neues X.
Wenn das nicht zum Auffinden neuer Varianten fuhrt, sind wir fertig.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 160/279
Skopusambiguitaten
Cooper Storage
Ubungsaufgaben
Ubungsaufgaben3.3.2 Wieviele geskopte Reprasentationen werden fur (12) berechnet:
(12) Every piercing that is done with a needle is okay.
Dabei soll is done with als zweistelliges und okay als einstelliges Pradikat analysiert werden. Sind alleReprasentationen korrekt?
3.3.3 Erweitern Sie die Analyse um ditransitive Verben, und uberprufen Sie, wie viele Lesarten es fur den Satz(13) gibt:
(13) A boxer gives every woman a foot massage.
Sind das die Lesarten, die Sie erwarten wurden?3.3.4 Warum sollte Storage optional sein? Denken Sie daruber nach, wie quantifizierte NPen mit Negation
interagieren? Denken Sie z. B. uber die mogliche Lesarten von (14) nach:
(14) Ecery boxer doesn’t love a woman.
Wieviele Lesarten hat dieser Satz? Wie viele Lesarten bekommen wir mit Cooper-Storage, wenn Storageoptional ist? Und wenn Storage nicht optional ist?
3.3.5 Manche Theorien in bezug auf Quantorenskopus nehmen an, daß quantifizierte NPen aus Relativsatzennicht herausskopen konnen. Z. B. gibt es fur die komplexe Nominalphrase a woman that knows every boxerkeine Lesart, in der every boxer Skopus uber a woman hat. Andern Sie die semantische Regel furRelativsatze, so daß quantifizierte NPen nur innerhalb von Relativsatzen Skopus haben konnen. DieAnderungen mussen in der Datei semRulesCooper.pl vorgenommen werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 161/279
Skopusambiguitaten
Keller Storage
Verschachtelte Nominalphrasen
Verschachtelte Nominalphrasen
• Cooper-Storage laßt uns viel Freiheit.
• Wir konnen Quantoren in jeder beliebigen Reihenfolge herausnehmen.
• Das einzige Sicherheitsnetz, das wir haben, sind koindizierte Variablen.
Ist das wirklich sicher?
Every piercing that is done with a gun goes against the entire idea behindit.
Mia knows every owner of a hash bar.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 162/279
Skopusambiguitaten
Keller Storage
Verschachtelte Nominalphrasen
Ein Problem mit verschachtelten Nominalphrasen
Speicher:
〈know(mia,z2), (λP.∀y(owner(y)∧of(y,z1)→P@y),2),
(λQ.∃x(hashbar(x)∧Q@x),1)〉Moglichkeit 1:
〈∀y(owner(y)∧of(y,z1)→know(mia,y)),(λQ.∃x(hashbar(x)∧Q@x),1)〉↓
〈∃x(hashbar(x)∧∀y(owner(y)∧of(y,x)→know(mia,y)))〉Moglichkeit 2 (falschlicherweise freie Variable z1):
〈∃x(hashbar(x)∧know(mia,z2)), (λP.∀y(owner(y)∧of(y,z1)→P@y),2)〉↓
〈∀y(owner(y)∧of(y,z1)→ ∃x(hashbar(x)∧know(mia,y)))〉c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 163/279
Skopusambiguitaten
Keller Storage
Verschachtelte Nominalphrasen
Eine elegante Losung: Verschachtelte Speicher (Bill Keller)
• Speicher konnen andere Speicher enthalten.
• Die Verschachtelungsstruktur der Speicher sollte automatischder Verschachtelung der NPen entsprechen.
• Verschachtelung laßt sich leichter implementieren als ein Test auf freieVariablen.
Die neue Speicherregel:
Storage (Keller)Wenn der (verschachtelte) Speicher 〈φ, σ〉 die Interpretation einer NP ist,dann ist der (verschachtelte) Speicher 〈λP.P@zi ,(〈φ,σ〉,i)〉,wobei i ein eindeutiger Index ist,ebenfalls eine Interpretation fur diese NP.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 164/279
Skopusambiguitaten
Keller Storage
Verschachtelte Nominalphrasen
every owner of a hash bar (NP)
〈λP.P@z2,(〈λP.∀y(owner(y)∧of(y,z1)→P@y),(〈λQ.∃x(hashbar(x)∧Q@x)〉,1)〉,2)〉
every (DET)
〈λQ.λP.∀y(Q@y→P@y)〉
owner of a hash bar (NBAR)
〈λu.owner(u)∧of(u,z1), (〈λQ.∃x(hashbar(x)∧Q@x)〉,1)〉
owner (N)
〈λx.owner(x)〉of a hash bar (PP)
〈λP.λu.P@u∧of(u,z1),(〈λQ.∃x(hashbar(x)∧Q@x)〉,1)〉
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 165/279
Skopusambiguitaten
Keller Storage
Retrieval fur verschachtelte Speicher
Retrieval fur verschachtelte Speicher
Die neue Retrieval-Regel:
Retrieval (Keller)Sei σ, σ1 und σ2 eine (evtl. leere) Sequenz von Bindungsoperatoren.Wenn der verschachtelte Speicher 〈φ, σ1, (〈β, σ〉, i), σ2〉 eineInterpretation fur einen Ausdruck der Kategorie S ist,dann gilt das auch fur 〈β@λzi .φ, σ1, σ, σ2〉.
Diese Regel stellt sicher, daß alle Operatoren,die wahrend der Verarbeitung von β gespeichert wurden,erst nach dem Retrieval von β fur das Retrieval zuganglich werden.
Verschachtlung lost das Problem der Erzeugung von Lesartenmit freien Variablen automatisch.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 166/279
Skopusambiguitaten
Keller Storage
Unser Beispiel
Mia knows every owner of a hash bar (Lesart 1)
Verschachteltet Speicher:〈
know(mia,z2),(〈
λP.∀y(owner(y)∧of(y,z1)→P@y),(〈λQ.∃x(hashbar(x)∧Q@x)〉,1
)〉,2)
〉
Nur eine Moglichkeit fur Retrieval:〈∃x(hashbar(x)∧∀y(owner(y)∧of(y,x)→know(mia,y)))〉c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 167/279
Skopusambiguitaten
Keller Storage
Unser Beispiel
Mia knows every owner of a hash bar (Lesart 2)
every owner of a hash bar (NP)
〈λP.P@z2, (〈λP.∀y(owner(y)∧∃x(hashbar(x)∧of(z,x))→P@y)〉,2)〉
every (DET)
〈λQ.λP.∀x(Q@x→P@x)〉owner of a hash bar (NBAR)
〈λz.owner(z)∧∃x(hashbar(x)∧of(z,x))〉
owner (N)
〈λx.owner(x)〉of a hash bar (PP)
〈λP.λz.P@z∧∃x(hashbar(x)∧of(z,x))〉
(die verschachtelte NP a hashbar wird nicht gespeichert)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 168/279
Skopusambiguitaten
Keller Storage
Unser Beispiel
Mia knows every owner of a hash bar (Lesart 2) II
Wir erhalten die folgende Analyse:
〈know(mia,z2),(〈λP.∀y(owner(y)∧∃x(hashbar(x)∧of(y,x))→P@y)〉,2)〉
Es gibt nur einen Operator im Speicher.
Wenn wir ihn herausnehmen, bekommen wir die gewunschte Lesart:
〈∀y(owner(y)∧∃x(hashbar(x)∧of(y,x))→know(mia,y))〉
Grund-Ideen:
1. Quantoren zu speichern ist eine nicht-deterministische Entscheidung.
2. Verschachtelte Speicher werden fur komplexe NPen benutzt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 169/279
Skopusambiguitaten
Keller Storage
Keller Storage in Prolog
Keller Storage in Prolog
• Nur wenige Anderungen notig
• Index ist Variable, aber Quant ist ein Speicher.bo(Quant,Index)
• Speicher sind Listen, das erste Element ist ein Lambda-Ausdruck,der Rest ist eine Liste von Bindungsoperatoren im Keller-Stil.[walk(X),bo([lam(P,all(Y,imp(boxer(Y),app(P,X))))],X)].
• Mussen nur die beiden NP-Regeln andern:combine(np:[app(A,B)|S],[det:[A],n:[B|S]]).
combine(np:[lam(P,app(P,X)),bo([app(A,B)|S],X)],[det:[A],n:[B|S]]).
• und das Retrieval anpassen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 170/279
Skopusambiguitaten
Keller Storage
Keller Storage in Prolog
Retrieval
sRetrieval([S],S).
sRetrieval([Sem|Store],S):-
selectFromList(bo([Q|NestedStore],X),Store,TempStore),
appendLists(NestedStore,TempStore,NewStore),
sRetrieval([app(Q,lam(X,Sem))|NewStore],S).
Im Unterschied zum Coper Storage,nehmen wir zusatzlich noch die Elemente aus NestedStorein den direkt zuganglichen Store auf.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 171/279
Skopusambiguitaten
Keller Storage
Ubungsaufgaben
Ubungsaufgaben
3.3.6 In Ubung 3.3.4 haben wir gesehen, daß Coper-Storage fur negierteSatze besser funktioniert, wenn Storage optional ist. Erklaren Sie,warum Optionalitat fur Keller-Storage noch wichtiger ist.
3.3.7 Geben Sie PL-1-Reprasentationen fur die funf Lesarten von (15) an.
(15) A man likes every woman with a five-dollar shake.
Beachten Sie, daß es weniger korrekte Lesarten gibt, als diekombinatorischen Moglichkeiten der beteiligten Quantoren (3!=6).Warum ist eine der kombinatorischen Moglichkeiten als Lesartausgeschlossen?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 172/279
Computational Semantics
Skopusambiguitaten
Quantorenspeicher: Schlußfolgerungen
Quantorenspeicher: Schlußfolgerungen
• Die Originalversion des Cooper-Speichers behandelt Speichern undRetrieval nicht diszipliniert genug.
• Deshalb werden sinnlose Reprasentationen fur Satze mit verschachteltenNPen erzeugt.
• Das Problem kann durch die Verwendung geschachtelter Speicher gelostwerden.
• Die Implementierung dieser Idee erfordert nur triviale Veranderungenunseres bisherigen Prolog-Codes.
• Bei der Implementation der Optionalitat muß man sorgfaltig sein,da man sonst evtl. dieselbe Lesart mehrfach erzeugt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 173/279
Skopusambiguitaten
Hole Semantics
Grenzen der Storage-Methoden
Grenzen der Storage-Methoden
• Sie haben nicht die Aussagemachtigkeit, die wir brauchen.
• Das Abspeichern ist eine Technik, die es uns gestattet,alle moglichen Bedeutungen kompakt zu reprasentieren.
• Es gibt uns nicht die Moglichkeit, zusatzliche Beschrankungen(constraints) in bezug auf mogliche Lesarten zu formulieren.
• Das kann man mit den meisten modernen unterspezifiziertenReprasentationen machen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 174/279
Skopusambiguitaten
Hole Semantics
Grenzen der Storage-Methoden
Hole Semantics
• Unterspezifikationsansatze ahneln Speicheransatzen,da Satzen kein Ausdruck in PL 1 zugeordnet wird.
• Statt dessen eine abstrakte Reprasentation(underspecified semantic representation = USR),aus der dann die PL 1-Formel abgeleitet werden kann.
• Eine Hole-Semantics-USR ist eine Menge von Beschrankungen(constraints).
• Alle Formeln, die den Beschrankungen nicht widersprechen,sind Losungen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 175/279
Skopusambiguitaten
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Die Sprache fur unterspezifizierte Reprasentationen
• In diesem Kurs sind die Sprachen fur semantische Reprasentationen(semantic representation language = SRL)immer Sprachen erster Stufe (mit Gleichheit).
• Hole Semantics: Beschrankungen fur SRL-Formeln• Wir entwerfen eine getypte Sprache erster Stufe
(die underspecified representation language = URL),um uber die Struktur der SRL reden zu konnen.
• Das Vokabular der URL enthalt Symbole fur:• Quantoren• logische Verknupfungen• Relationssymbole• Konstanten• Variablen• und ein Spezialsymbol ‘≤’, mit dem man ausdrucken kann,
wie bestimmte Teile der Formeln in Beziehung zueinander stehen konnen.
Damit konnen wir Formel-Baume beschreiben.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 176/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
SRL-Formelbaume
SRL-Formelbaume
∨
snort(mia) ¬
smoke(vincent)
snort(mia) ∨ ¬smoke(vincent)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 177/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Holes und Dominanzbeschrankungen
Holes und Dominanzbeschrankungen
• SRL-Formeln enthalten Platzhalter (Holes = Locher),die mit bestimmten Teilformeln gefullt werden mussen.
• Wir wollen sagen, daß bestimmte Teilformelnbestimmte andere Teilformeln dominieren, d. h. hoher im Baum sind.
• Solche Dominanzbeschrankungen sind Schlusselidee der Hole Semantics:Sie sagen uns, wie die semantische Reprasentation zusammengestopselt(plugged) werden kann.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 178/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Holes und Dominanzbeschrankungen
Was wir erreichen wollen
h0
l1 l4
l1:all(v1,l2) l4:some(v2,l5)
l2:imp(l3,h1) l5:and(l6,h2)
l3:boxer(v1) l6:woman(v2)
l7
l7:love(v1,v2)
Every boxer loves a woman.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 179/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Das Vokabular der URL
Das Vokabular der URL
Angenommen wir haben ein festes Vokabular fur unsere SRL.Dann besteht das Vokabular fur unsere unterspezifizierteReprasentationssprache (URL) fur diese SRL aus folgendem:
1. Die zweistelligen Pradikate :not und ≤.
2. Den dreistelligen Pradikaten :imp, :and, :or, :all, :some und :eq.
3. Außerdem ist jede Konstante im SRL-Vokabular auch eineURL-Konstante. (Z. B. , wenn mia eine SRL-Konstante ist, dann istmia auch eine URL-Konstnate.)
4. Wenn das SRL-Vokabular ein Relationssymbol pred der Stelligkeit nenthalt, dann ist :pred ein n + 1-stelliges URL-Symbol.(Z. B., wenn love ein zweistelliges Symbol in der SRL ist,ist :love eine dreistellige Relation in der URL.)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 180/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Die Typen
Getypte URL
Drei Typen:
• Holes: h, h′, h1, h2, . . .• Labels: l, l′, l1, l2, . . .• Meta-Variablen: v, v′, v1, v2,
Folgende Begriffe:
• Knoten: Hole oder Label• Meta-Term der URL: Meta-Variable oder URL-Konstante
Heißen Meta-Terme, da Meta-Variablen benutzt werden, um uber SRL-Variablenzu reden und URL-Konstanten, um SRL-Konstanten zu reden.
Wir verwenden nicht alle getypten Formeln,die mit diesem Vokabular konstruiert werden konnen,sondern nur die existenziell abgeschlossenen Formeln.
Das sind unsere unterspezifizierten Reprasentationen (URS).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 181/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Die Syntax der URL
Die USRen: Einfache USRen
1. Wenn l ein Label ist und h ein Hole, dann ist l ≤ h eine einfache USR;
2. Wenn l ein Label ist und n und n′ Knoten sind, dann sind l:not(n),l:imp(n,n′), l:and(n,n′) und l:or(n,n′) einfache USRen;
3. Wenn l ein Label ist und t und t ′ Meta-Terme sind,dann ist l:eq(t,t′) eine einfache USR;
4. Wenn l ein Label ist und S ein Symbol der SRL-Sprachemit der Stelligkeit n ist und t1 . . . tn Meta-Terme sind,dann ist l:S(t1,. . . ,tn) eine einfache USR.
5. Wenn l ein Label ist und v ist einen Meta-Variable und n ist ein Holeoder ein Label, dann sind l:some(v,n) und l:all(v,n) einfache USRen.
6. Nichts sonst ist eine einfache USR.
Die Formeln, die durch 2–5 beschrieben werden,werden gelabelte Formeln genannt.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 182/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Die Syntax der URL
Domninanzebeschrankungen l ≤ h
l ≤ h besagt, daß ein Ausdruck h hoher im Baum stehen muß als l .Das Hole h muß das Label l dominieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 183/279
Hole Semantics
Die Sprache fur unterspezifizierte Reprasentationen (URL)
Die Syntax der URL
Die USRen: Komplexe USRen
1. Alle einfachen USRen sind USRen;
2. Wenn φ eine USR und n ein Knoten ist, dann ist ∃nφ eine USR;
3. Wenn φ eine USR und v eine Meta-Variable ist, dann ist ∃vφ eine USR;
4. Wenn φ und ψ USRen sind, dann ist (φ ∧ ψ) eine USR;
5. Nichts sonst ist eine USR.
Wir verwenden nur existenziell abgeschlossene konjunktive Formeln.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 184/279
Skopusambiguitaten
Hole Semantics
Ein Beispiel
Ein Beispiel
(16) Every boxer loves a woman.
Die USR ist:
∃l1∃l2∃v1(l1:all(v1,l2) ∧ ∃l3∃h1(l2:imp(l3,h1) ∧ l3:boxer(v1)∧ ∃l4∃l5∃v2(l4:some(v2,l5) ∧ ∃l6∃h2(l5:and(l6,h2) ∧ l6:woman(v2)∧ ∃l7(l7:love(v1,v2) ∧ l7≤h1 ∧ l7≤h2 ∧ ∃h0(l1≤h0 ∧ l4≤h0)))))).
Das ist nicht sehr lesbar, aber man kann die Quantoren voranstellen:
∃h0∃h1∃h2∃l1∃l2∃l3∃l4∃l5∃l6∃l7∃v1∃v2(l1:all(v1,l2) ∧ l2:imp(l3,h1)∧ l3:boxer(v1) ∧ l4:some(v2,l5) ∧ l5:and(l6,h2) ∧ l6:woman(v2)∧ l7:love(v1,v2) ∧ l7≤h1 ∧ l7≤h2 ∧ l1≤h0 ∧ l4≤h0).
h0 ist fur die SRL-Formel reserviert, die letztendlich konstruiert wird.Dieses Hole wird Top Hole genannt.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 185/279
Skopusambiguitaten
Hole Semantics
Ein Beispiel
Graphische Reprasentationh0
l1 l4
l1:all(v1,l2) l4:some(v2,l5)
l2:imp(l3,h1) l5:and(l6,h2)
l3:boxer(v1) l6:woman(v2)
l7
l7:love(v1,v2)
Every boxer loves a woman.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 186/279
Skopusambiguitaten
Hole Semantics
Plugging
Einstopseln (Plugging) – Lesart Ih0
l1 l4
l1:all(v1,l2) l4:some(v2,l5)
l2:imp(l3,h1) l5:and(l6,h2)
l3:boxer(v1) l6:woman(v2)
l7
l7:love(v1,v2)
P1(h0)=l1P1(h1)=l4P1(h2)=l7
all(v1, imp(boxer(v1), some(v2, and(woman(v2), love(v1,v2))))).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 187/279
Skopusambiguitaten
Hole Semantics
Plugging
Einstopseln (Plugging) – Lesart IIh0
l1 l4
l1:all(v1,l2) l4:some(v2,l5)
l2:imp(l3,h1) l5:and(l6,h2)
l3:boxer(v1) l6:woman(v2)
l7
l7:love(v1,v2)
P1(h0)=l4P1(h1)=l7P1(h2)=l1
some(v2, and(woman(v2), all(v1, imp(boxer(v1), love(v1,v2))))).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 188/279
Skopusambiguitaten
Hole Semantics
Plugging
Verbotenes Plugging
h0
l1 l4
l1:all(v1,l2) l4:some(v2,l5)
l2:imp(l3,h1) l5:and(l6,h2)
l3:boxer(v1) l6:woman(v2)
l7
l7:love(v1,v2)
P1(h0)=l7P1(h1)=l4P1(h2)=l1
ein Graph enthalt Zyklus, zwei nicht miteinander verbundene Graphenc© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 189/279
Skopusambiguitaten
Hole Semantics
Plugging
Ebenfalls verboten
l2:imp(l3,h1)
l3:boxer(v1)
beschreibt keinen Formelbaum.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 190/279
Skopusambiguitaten
Hole Semantics
Hole Semantics mit Prolog
Hole Semantics mit Prolog
• Wie konnen wir unsere USRen in unser Fragment integrieren?
• URSen sind Ausdrucke einer (getypten) Sprache erster Ordnung.
• Wissen, wie λ-Ausdrucke mit Prolog verarbeitet werden konnen.
• Brauchen nur neue semantische Makros und semantische Regeln zudefinieren, die bereits exisitierenden Programmteile erledigen den Rest.
• Naturlich mussen wir zum Schluß das Plugging durchfuhren,und dafur brauchen wir noch weiteren Code.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 191/279
Hole Semantics
Hole Semantics mit Prolog
Die Prolog-Reprasentation
Die Prolog-Reprasentation
Fur den Ausdruck
∃h0 ∃l1 ∃h1 ∃l2 ∃l3 ∃l4 ∃v1(l3:some(v1,l4) ∧ l4:and(l2,h1) ∧ l1≤h1
∧ l3≤h0 ∧ l2:boxer(v1) ∧ l2≤h0 ∧ l1:collapse(v1) ∧ l1≤h0)
verwenden wir die Reprasentation
some(A,and(hole(A),some(B,and(label(B),some(C,some(D,
some(E,some(F,some(G,and(hole(C),and(label(D),and(label(E),
and(label(F),and(some(E,G,F),and(and(F,D,C),and(leq(B,C),
and(leq(E,A),and(and(pred1(D,boxer,G),leq(D,A)),
and(pred1(B,collapse,G),leq(B,A))))))))))))))))))))
Holes und Labels werden explizit kenntlich gemacht.
Labels von :some u.s.w. werden als Argumente reprasentiert. leq steht fur‘≤’.
pred1(L,boxer,X) steht fur l:boxer(x).c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 192/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Aufbau von USRen mit Lambdas: Lexikoneintrage
• Boxer :λv.λh.λl.(l:boxer(v) ∧ l≤h)
• v hat die bekannte Funktion:Markiert Stelle, an der fehlende Information eingesetzt werden muß.
• Jeder Lexikoneintrag fuhrt auch ein Hole und ein Label ein.Das Hole kann man sich als abstrakten (unterspezifizierten) Skopusvorstellen.Wir sagen uber das Label, das vom Lexikoneintrag beigesteuert wird,daß es von h dominiert werden muß,d. h., wir sagen etwas uber den Platz in der SRL-Formel,an dem der Ausdruck stehen muß.
• h und l definieren die vom Nomen beigesteuerte Skopusdomane.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 193/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Graphische Darstellung
λv.λh.λl. [
h
l
l:boxer(v)
]
l markiert den Platz, an dem die Kernbedeutung steht undh markiert den Skopus der Kernbedeutung.
Die gestrichelte Linie zeigt an, daß der Skopus z. Z. unterspezifiziert ist:Wir wissen bisher nur, daß das Hole das Label dominiert.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 194/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Wiederholung: Every boxer growls
every : λP.λQ.∀x(P@x→Q@x)
boxer : λy.boxer(y)
growls: λz.growl(z)
λP.λQ.∀x(P@x→Q@x) @ λy.boxer(y)
λQ.∀x(λy.boxer(y)@x→Q@x)
λQ.∀x(boxer(x)→Q@x)
λQ.∀x(boxer(x)→Q@x) @ λz.growl(z)
∀x(boxer(x)→λz.growl(z)@x)
∀x(boxer(x)→growl(x))
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 195/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Der Lexikoneintrag fur every
Notationskonventionen: existenzquantifizierte Meta-Variablen haben Indizes,lambda-gebundene Variablen sind indexfrei.
λx.λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1
∧ l2≤h ∧ x@v1@h@l1 ∧ y@v1@h@l).
• x und y spielen die bekannte Rolle (im vorigen Beispiel: x, y = P, Q).(normaler Eintrag: λx.λy.∀v(x@v→y@v))
• Die Lambdas, die h und l binden, definieren die Skopusdomane,die von every beigetragen wird.
• Der Quantor selbst bekommt das Label l2 mit der Restriktion l1 unddem nuklearen Skopus h1.
• Die Beschrankung l2 ≤ h stellt sicher, daß der Quantor durch das Top-Element derSkopusdomane out-gescopet wird.
• l ≤ h1 besagt, daß das verbale Argument (y) im Skopus des Allquantors liegt.• Die Applikation x@v1@h@l1 verbindet das Top Hole (h) und
das Restriktionslabel des Quantors (l1) mit der Skopusdomane der Nominalreprasentation.• Die Applikation y@v1@h@l verbindet das Top Hole (h) und das Label (l) des Quantors
mit der Skopusdomane des VP-Arguments.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 196/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Graphische Darstellung
λxyhl.∃h1l1l2l3v1([
h
l2
l2:all(v1,l3)
l3:imp(l1,h1)
l
] ∧ x@v1@h@l1 ∧ y@v1@h@l)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 197/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Kombination von Determinierer und Quantorevery + boxer :
λx.λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1 ∧ l2≤h ∧ x@v1@h@l1 ∧y@v1@h@l) @ λv.λh.λl.(l:boxer(v) ∧ l≤h)
β-Konversion mit dem außersten Lambda:
λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1 ∧ l2≤h ∧ λv.λh.λl.(l:boxer(v) ∧l≤h)@v1@h@l1 ∧ y@v1@h@l)
β-Konversion mit Einsetzung von v1 in die Argumentposition von boxer:
λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1 ∧ l2≤h ∧ λh.λl.(l:boxer(v1) ∧l≤h)@h@l1 ∧ y@v1@h@l).
β-Konversion: Verbindung des Skopusdomanen-Holes h des Determinators mit dem Nomen:
λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1 ∧ l2≤h ∧ λl.(l:boxer(v1) ∧l≤h)@l1 ∧ y@v1@h@l).
β-Konversion ergibt Beschrankung l1≤h:
λy.λh.λl.∃h1∃l1∃l2∃l3∃v1(l2:all(v1,l3) ∧ l3:imp(l1,h1) ∧ l≤h1 ∧ l2≤h ∧ l1:boxer(v1) ∧ l1≤h ∧y@v1@h@l).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 198/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Graphische Darstellung
λyhl.∃h1l1l2l3v1([
h
l2
l2:all(v1,l3)
l3:imp(l1,h1)
l1:boxer(v1) l
] ∧ y@v1@h@l)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 199/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
does not growl
Ziel: Analyse von every boxer does not growl.
Die USR fur does not growl ist:
λvhl.∃h2l4[
h
l4
l4:not(h2)
l
l:growl(v)
]
Wir mussen USR fur every boxer auf die USR fur does not growlanwenden und β-Konversion durchfuhren.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 200/279
Hole Semantics
Hole Semantics mit Prolog
Aufbau von USRen mit Lambdas
Ergebnis
λhl.∃h1h2l1l2l3l4v1[
h
l2 l4
l2:all(v,l3) l4:not(h2)
l3:imp(l1,h1)
l1:boxer(v1) l
l:growl(v1)
]
∀x(boxer(x) → ¬growl(x))
¬∀x(boxer(x) → growl(x))
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 201/279
Hole Semantics
Hole Semantics mit Prolog
Semantische Makros
Nomina
• Wir mussen semantische Makros und semantische Regel definieren.
• Nomina:semLex(noun,M):-
M = [symbol:Sym,
sem:lam(X,lam(H,lam(L,and(pred1(L,Sym,X),
leq(L,H)))))].
Das entspricht der Definition im eben diskutierten Beispiel.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 202/279
Hole Semantics
Hole Semantics mit Prolog
Semantische Makros
Determinatoren
semLex(det,M):-
M = [type:uni,
sem:lam(N,lam(V,lam(H,lam(L,some(H1,some(L1,some(L2,some(L3,some(X,
and(hole(H1),and(label(L1),and(label(L2),and(label(L3),
and(all(L2,X,L3),and(imp(L3,L1,H1),and(leq(L,H1),
and(leq(L2,H),and(app(app(app(N,X),H),L1),
app(app(app(V,X),H),L)))))))))))))))))))].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 203/279
Hole Semantics
Hole Semantics mit Prolog
Semantische Makros
Eigennamen und Verben
• Eigennamen:semLex(pn,M):-
M = [symbol:Sym,
gender: ,
sem:lam(V,lam(H,lam(L,app(app(app(V,Sym),H),L))))].
• intransitive Verben:semLex(iv,M):-
M = [symbol:Sym,
sem:lam(X,lam(H,lam(L,and(pred1(L,Sym,X),
leq(L,H)))))].
• transitive Verben:semLex(tv,M):-
M = [symbol:Sym,
sem:lam(Z,lam(X,app(Z,lam(Y,lam(H,lam(L,
and(pred2(L,Sym,Y,X),leq(L,H))))))))].
• Das sind die normalen Makros fur Eigennamen, intr. Verben und transitive Verben,außer daß es die Slots H und L fur die Skopusdomane gibt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 204/279
Hole Semantics
Hole Semantics mit Prolog
Semantische Makros
Negation
• Unterspezifikation ist extrem felxibel.
• Wir konnen dieselben Techniken fur Quantoren und Negation benutzen.
• Wir haben das bereits gesehen (Every boxer does not growl), aber wirhaben nicht erklart, wie die negierte VP does not growl konstruiertwurde.
• Semantisches Makro fur not:semLex(av,M):-
M = [pol:neg,
sem:lam(V,lam(X,lam(H,lam(L,some(S,some(N,and(hole(S),
and(label(N),and(not(N,S),and(leq(N,H),and(leq(L,S),
app(app(app(V,X),H),L))))))))))))]
• Weiter Makros fur Kopula, Relativpronomina, Adjektive, Prapositionenund Koordination in semLexHole.pl.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 205/279
Hole Semantics
Hole Semantics mit Prolog
Semantische Regeln
Semantische Regeln
• Wir mussen nicht viel andern, da wir mit dem λ-Kalkul arbeiten.combine(t:U,[s:S]):-
betaConvert(some(T,and(hole(T),some(L,and(label(L),
app(app(S,T),L))))),U).
Das schließt die außere Skopusdomane ab.
• S, die Reprasentation fur den Satz, hat die Form λh.λl.φ.
• Wenn wir diese neue Regel (∃h0∃l1S@h0@l1) verwenden,bekommen wir: ∃h0∃l1λh.λl.φ@h0@l1.
• β-Reduktion ergibt eine USR ohne lambdagebundene Variablen.
• Die Skopusdomane muß immer auf der Satzebene so geschlossenwerden.Dieser Abschluß findet sich in der Grammatik auch furzusammengesetzte Satze.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 206/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Der Plugging-Algorithmus
Nach der Semantikkonstruktion haben wir Satz mit Hole-Semantics-USR,d. h. eine existenziell abgeschlossene konjunktive Formel einer getyptenSprache erster Stufe.
Der Algorithmus zur Konstruktion semantischer Reprasentationenaus der Information in der USR besteht aus vier Schritten:
1. Skolemisierung der Variablen in der USR.
2. Zerlegen der USR in ihre Komponenten und abspeichern derKomponenten in der Prolog-Datenbank.
3. Berechnung eines Pluggings.
4. Anwendung des Pluggings zur Konstruktion einer SRL-Formel.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 207/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Skolemisierung
Skolemisierung heißt, den Block der Existenzquantoren zu Begin der USRwegzuwerfen und die Variablen, die sie binden, durch Konstanten zuersetzen.
Mehr zur Skolemisierung spater.
Die Quantoren wegzuwerfen ist einfach, und fur die Substituierung derKonstanten benutzen wir das Prolog-Pradikat numbervars/3.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 208/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Zerlegung und Abspeicherung der USR (I)
Wir mussen die entsprechenden Pradikate als dynamisch spezifizieren:
:- dynamic plug/2, leq/2, hole/1, label/1.
:- dynamic some/3, all/3, que/4.
:- dynamic not/2, or/3, imp/3, and/3.
:- dynamic pred1/3, pred2/4, eq/3.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 209/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Zerlegung und Abspeicherung der USR (II)
USRen sind sehr einfach strukturiert.Wir mussen nur entsprechende Rekursionsschritte abarbeiten:
assertUSR(some( ,F)):-
assertUSR(F).
assertUSR(and(F1,F2)):-
assertUSR(F1),
assertUSR(F2).
assertUSR(F):-
\+ F=and( , ),
\+ F=some( , ),
assert(F).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 210/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Berechnung eines Pluggings
parent/2 legt die Eltern-Relation zwischen Labels und Holes fest:
parent(A,B):- imp(A,B, ).
parent(A,B):- imp(A, ,B).
parent(A,B):- or(A,B, ).
parent(A,B):- or(A, ,B).
parent(A,B):- and(A,B, ).
parent(A,B):- and(A, ,B).
parent(A,B):- not(A,B).
parent(A,B):- all(A, ,B).
parent(A,B):- some(A, ,B).
Wir brauchen noch einen weitere Klausel. Die Tatsache, daß das Hole A durch dasLabel B gefullt wird, wird als plug(A,B) reprasentiert.
Hier liegt ebenfalls Elternschaft vor, was durch folgende Klausel erfaßt wird:
parent(A,B):- plug(A,B).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 211/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Dominanz (I)
• Elternschaft ist ein Relation die der unmittelbaren Dominanz vonKnoten entspricht, wir sind aber an der Dominanz uber mehrere Ebenenhinweg interessiert.
• Die parent-Relation zusammen mit der ≤-Information in der USR kannbenutzt werden, um Dominanz zu definieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 212/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Dominanz (II)
dom(X,Y):- dom([],X,Y).
dom(L,X,Y):-
parent(X,Y).
dom(L,X,Y):-
leq(Y,X).
dom(L,X,Z):-
parent(X,Y),
\+ memberList(parent(X,Y),L),
dom([parent(X,Y)|L],Y,Z).
dom(L,X,Z):-
leq(Y,X),
\+ memberList(leq(Y,X),L),
dom([leq(Y,X)|L],Y,Z).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 213/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Bestimmung des Top-Knotens
Mit Hilfe der Dominanz konnen wir den Top-Knoten einer USRbestimmen. (Das Hole, das alles andere out-scopet, d. h. es zeigt auf dieSRL-Formel, die wir bauen wollen).
top(X):-
dom(X, ),
\+ dom( ,X), !.
Ein Knoten X ist der Top-Knoten, wenn es einen anderen Knotendominiert, aber nicht selbst von anderen Knoten dominiert wird.
Wenn alles glatt geht, d. h. daß ein zulassiges Plugging exisitiert,wird es nur einen Top-Node geben.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 214/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Zulassige Pluggings
admissiblePlugging(Plugs):-
retractall(plug( , )),
findall(X,(memberList(X,Plugs),assert(X)), ),
\+ dom(A,A),
\+ (parent(A,B), parent(A,C), \+ B=C, dom(B,D), dom(C,D)).
Wir loschen erst alle fruheren Plugging-Versuche und tragen die neuenPluggings ein.
Wir mussen sicherstellen, daß das Plugging keinen Zyklen erzeugt unddaß verschiedene Knoten mit demselben Elternteil nie denselben Knotendominieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 215/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Zuordnung von Labels zu Holes
Wenn wir wissen, was zulassige Pluggings sind,konnen wir rekursiv alle Holes mit einem der verfugbaren Labels fullen:
plugHoles([], , ).
plugHoles([H|Holes],Labels1,Plugs):-
selectFromList(L,Labels1,Labels2),
admissiblePlugging([plug(H,L)|Plugs]),
plugHoles(Holes,Labels2,[plug(H,L)|Plugs]).
Nimm ein Label aus der Liste Labels1, teste, ob plug(H,L) zu den bereitsfestgelegten Plugs paßt (und fuge die Plugs der Datenbasis hinzu).Berechne weitere Plugs fur die restlichen Holes (und Labels).
Wenn alle Holes geplugged sind, sind wir fertig. Der letzte Aufruf vonadmissiblePlugging/1 sorgt dafur, daß die Plugs in der Datenbasis sind.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 216/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Konstruktion einer SRL-Formel
• Wir haben jetzt eine USR und ein Plugging (noch in der Datenbasis).
• Wir mussen diese beiden Informationsquellen benutzen,um eine semantische Reprasentation abzuleiten.
• Das erledigt url2srl/2, das unter Bezug auf ein Plugging eine USRrekursiv in einen gewohnlichen Ausdruck erster Stufe umwandelt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 217/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Holes und Quantoren
url2srl(H,F):-
hole(H),
plug(H,L),
url2srl(L,F).
Wenn ein USR-Term ein Hole ist,wird das Plugging fur das Hole gesucht und mit dem Label weitergemacht.
url2srl(L,all(X,F)):-
all(L,X,H),
url2srl(H,F).
Wenn das Label auf einen Quantor zeigt,wird der Skopus des Quantors weiterverarbeitet.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 218/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Logische Verknupfunden und einfache Pradikate
Die logischen Verknupfungen sind einfach: Z. B. die Definition fur dieImplikation:
url2srl(L,imp(F1,F2)):-
imp(L,H1,H2),
url2srl(H1,F1),
url2srl(H2,F2).
einfache Pradikate:
url2srl(L,F):-
pred1(L,Symbol,Arg),
compose(F,Symbol,[Arg]).
url2srl(L,F):-
pred2(L,Symbol,Arg1,Arg2),
compose(F,Symbol,[Arg1,Arg2]).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 219/279
Hole Semantics
Hole Semantics mit Prolog
Der Plugging-Algorithmus
Alle Pradikate zusammen
plugUSR(USR,Sem):-
numbervars(USR,0, ), % 1 Skolemise USR
initUSR,
assertUSR(USR), % 2 Break down and assert USR
top(Top),
findall(H,hole(H),Holes),
findall(L,
(label(L),\+ parent( ,L)),
Labels),
plugHoles(Holes,Labels,[]), % 3 Calculate a plugging
url2srl(Top,Sem). % 4. Construct SRL formula
initUSR loscht die Prolog-Datenbasis,bevor wir mit der eigentlichen Arbeit anfangen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 220/279
Hole Semantics
Hole Semantics mit Prolog
Das Top-Level-Pradikat
Das Top-Level-Pradikat
holeSemantics:-
readLine(Sentence),
parse(Sentence,USR),
printRepresentations([USR]),
setof(Sem,plugUSR(USR,Sem),Sems),
printRepresentations(Sems).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 221/279
Computational Semantics
Skopusambiguitaten
Reflektion
Reflektion
• Speicher vs. constraint-basierte Unterspezifikation• Ausdrucksmachtigkeit• Computationelle Eigenschaften
• Wir haben diskutiert, wie man alle Lesarten bekommen kann,aber nicht, wie man die bevorzugte Lesart bekommt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 222/279
Computational Semantics
Skopusambiguitaten
Ubungsaufgaben
Ubungsaufgaben3.4.1 Unsere Implementation von Cooper- und Keller-Storage enthalten einen Filter, der alphabetische Varianten
herausfiltert, der Hole-Semantics-Code aber nicht. Haben wir etwas vergessen?3.4.2 Die Prolog-Definition der transitiven Hulle der Dominanzrelation, die im Text vorgestellt wurde, ist auf Grund
der Verwendung von memberList/2 und einem Akkumulator, der die bisher unbehandeltenImmediate-Dominance-Relationen verwaltet, etwas komplizierter als erwartet. Eine einfachere Alternativekonnte folgender Code sein:
dom(X,Y):- parent(X,Y).
dom(X,Z):- parent(X,Y), dom(Y,Z).
Testen Sie diese Definition an den folgenden beiden Datenbasen, in dem Sie dom(A,A) aufrufen, d. h. auf dasVorhandensein von Zyklen testen:
1. parent(a,b). parent(b,c). parent(c,a).
2. parent(d,a). parent(a,b). parent(b,c). parent(c,a).
Obwohl beide Datenbanken Zyklen enthalten, findet die obige Definition nur den Zyklus in der erstenDatenbank, in der zweiten verabschiedet sich Prolog in eine Schleife. Erklaren Sie, warum das so ist, underklaren Sie warum die Definition fur dom/2, die einen Akkumulator verwendet, mit beiden Fallen klar kommt.
3.4.3 Manche Theorien in bezug auf Quantorenskopus nehmen an, daß quantifizierte NPen aus Relativsatzen nichtherausskopen konnen (siehe Ubung 3.3.5). Andern Sie die semantische Regel fur Relativsatze (dieDominanzbeschrankungen), so daß quantifizierte NPen nur innerhalb von Relativsatzen Skopus haben konnen.Die Anderungen mussen in der Datei semLexHole.pl vorgenommen werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 223/279
Computational Semantics
Propositionale Inferenz
Abschnitt 5: Propositionale Inferenz
• Wir beschaftigen uns jetzt mit der zweiten Grundfrage vom Anfangdes Kurses: Wie konnen wir unsere semantischen Reprasentationennaturlichsprachlicher Ausdrucke dazu nutzen, Schlusse zu ziehen?
• In diesem Abschnitt diskutieren wir das quantorenfreie Fragmentder PL 1, bzw. die Aussagenlogik, wie dieses Fragment normalerweisegenannt wird.
• Zuerst diskutieren wir das Tableaux-Verfahren.
• Danach diskutieren wir das Resolution-Verfahren.
• Demos:• propTableaux.pl
• propResolution.pl
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 224/279
Computational Semantics
Propositionale Inferenz
Aussagenlogik
• Inferenz erster Stufe ist eine computationell komplexe Aufgabe(sogar eine unentscheidbare), weshalb wir uns der Losung des Problemsin kleinen Schritten nahren.
• Wir beginnen mit der Aussagenlogik, d. h. wir lernen etwas daruber,wie man aus mit ¬, →, ∨ und ∧ verknupften Formeln schließen kann.Quantoren kommen im Abschnitt 6.
• Statt
(dead(vincent)→happy(butch))∧(¬dead(vincent)→happy(mia))
schreiben wir einfach
(p → q) ∧ (¬p → r).
Wie die Symbole intern aussehen, ist in der Aussagenlogik nicht wichtig.Wir nennen Symbole wie p, q und r Satzsymbole.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 225/279
Computational Semantics
Propositionale Inferenz
Welche Inferenz-Aufgaben?
• Wir haben Querying bereits im Abschnitt 1 diskutiert.Heute beschaftigen wir uns mit Konsistenz- und Informativitatstests.
• Wir konnen zwei Fliegen mit einer Klappe schlagen: Zur Erinnerung:• φ ist informativ (d. h., nicht gultig) gdw. ¬φ konsistent ist.• φ ist uninformativ (d. h. gultig) gdw. ¬φ inkonsistent ist.
• Die Konsequenz ist, daß man mit einem Werkzeug, das ein Problemlost, das andere ebenfalls losen kann.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 226/279
Computational Semantics
Propositionale Inferenz
Welches Inferenz-Werkzeug?
• Wir haben im Abschnitt 1 gesagt, daß es zwei Werkzeuge fur dieseAufgaben gibt: Theorem-Beweiser und Modell-Bauer.
• Wir beschaftigen uns mit Theorem-Beweisern.Das sind Werkzeuge, die uns sagen,ob eine bestimmte Formel gultig (uninformativ) ist oder nicht.
• Wir werden in diesem Abschnitt und im Abschnitt 6 ein bißchen uberdas Modell-Bauen sagen, werden uns aber nicht im Detail damitbeschaftigen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 227/279
Computational Semantics
Propositionale Inferenz
Wie nahern wir uns der Aufgabe?
• Wir sehen uns zwei Verfahren aus eine Zweig der Logik an,der Beweis-Theorie genannt wird.
• Beweis-Theorie ist die Erforschung syntaktischer Techniken,die dazu verwendet werden, zu bestimmen,ob eine Formel gultig (uninformativ) ist oder nicht.
• Wir werden die beweistheoretischen Verfahren angucken,die sich fur die CL als wichtig erwiesen haben,namlich tableaux und resolution.
• Obwohl sie beide dieselbe Aufgabe erledigen,funktionieren sie recht unterscheidlich.Es ist wichtig (und interessant), etwas uber beide Verfahren zu wissen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 228/279
Computational Semantics
Propositionale Inferenz
Die Tableaux-Methode
Die Tableaux-Methode
• Syntaktisch, aber auf der Grundlage klarer semantischer Intuitionen.
• Einen Tableaux-Beweis kann man unabhangig von menschlichemVerstandnis finden.
• Methode kann an viele verschiedene Logiken angepaßt werden.
• Tableaux-Systeme sind mehr als nur Theorem-Beweiser:Sie konnen auch als Werkzeuge fur den Modellbau angesehen werden.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 229/279
Computational Semantics
Propositionale Inferenz
Die Tableaux-Methode
Die Grundidee
Angenommen, wir haben einen Ausdruck und einen der beidenWahrheitswerte True bzw. False. Ist es moglich, ein Modell zufinden, in dem der Ausdruck den gegebenen Wahrheitswert hat?
Die Tableaux-Methode ist im wesentlichen ein syntaktisches Verfahren,systematisch zu uberprufen, ob das moglich ist, oder nicht.
Es gibt uns einen systematischen Gultigkeitstest. Die gultigen Ausdruckesind die, die die Tableaux-Methode nicht widerlegen kann.
Das Tableaux-Verfahren ist also ein indirektes Verfahren:Um φ zu beweisen, geben wir ¬φ ein und zeigen,daß das zum Widerspruch fuhrt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 230/279
Die Tableaux-Methode
Beispiele
Beispiel 1
Beispiel 1: Beweis einer Disjunktion
Der Ausdruck p ∨ ¬p ist gultig.Wie wurde eine systematische Suche nach einer Widerlegung aussehen?
Eine mogliche Antwort: Fulle die Wahrheitstabelle aus.
Aber das wurde nicht fur PL 1 funktionieren und ware ohnehin nur furnicht-komplexe Ausdrucke praktikabel.
Stattdessen entwickeln wir Tableaux-Erweiterungsregeln.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 231/279
Die Tableaux-Methode
Beispiele
Beispiel 1
Notationskonventionen
F (p ∨ ¬p).
• Das ist unser erstes Tableau!
• Das ‘F ’-Prafix bedeutet, daß wir p ∨ ¬p widerlegen wollen.
• Wenn man ein Tableau mit der Hand aufschreibt, ist es praktisch,Zusatzinformation aufzuschreiben, wie z. B. Zeilennummern:
1 F (p ∨ ¬p)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 232/279
Die Tableaux-Methode
Beispiele
Beispiel 1
Tableauerweiterung mit der Disjunktionsregel
1 F (p ∨ ¬p)√
2 Fp 1,F∨3 F¬p 1,F∨
• Unser zweites Tableau!
• Es verwendet eine Tableau-Erweiterungsregel,die F∨ (widerlege Disjunktion) genannt wird,um den Ausdruck in Zeile 1 in zwei Teile zu zerlegen.
• Das√
-Symbol in Zeile 1 zeigt,daß wir die entsprechende Regel auf Zeile 1 angewendet haben.(Wir mussen niemals Regeln zweimal auf eine Zeile anwenden)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 233/279
Die Tableaux-Methode
Beispiele
Beispiel 1
Tableauerweiterung mit der Negationsregel
1 F (p ∨ ¬p)√
2 Fp 1,F∨3 F¬p 1,F∨,
√
4 Tp 3,F¬.
• Wir haben die Expansionsregel F¬ (widerlege eine Negation) verwendet.
• Wir sind fertig! Das Tableau ist regelgesattigt,d. h. wir konnen keine weiteren Regeln mehr anwenden.
• Das Tableau ist außerdem geschlossen,da es einen Konflikt zwischen den Zeilen 2 und 4 gibt.
Deshalb ist p ∨ ¬p gultig.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 234/279
Die Tableaux-Methode
Beispiele
Beispiel 2
Beispiel 2: Tableauerweiterung mit der Implikationsregel
Ist ¬(q ∧ r) → (¬q ∨ ¬r) gultig? Mal sehen . . .
1 F¬(q ∧ r) → (¬q ∨ ¬r)
Wir benutzen die Regel F→, die uns sagt, wie wir Implikationen widerlegen.
1 F¬(q ∧ r) → (¬q ∨ ¬r)√
2 T¬(q ∧ r) 1,F→3 F (¬q ∨ ¬r) 1,F→
Fur die Zeile 3 mussen wir eine Disjunktion widerlegen.Wir benutzen F∨ . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 235/279
Die Tableaux-Methode
Beispiele
Beispiel 2
Tableauerweiterung mit der Disjunktionsregel
1 F¬(q ∧ r) → (¬q ∨ ¬r)√
2 T¬(q ∧ r) 1,F→3 F (¬q ∨ ¬r) 1,F→,
√
4 F¬q 3,F∨5 F¬r 3,F∨
Wieso durften wir an Zeile 3 arbeiten?Wir haben doch Zeile 2 noch nicht behandelt!
Kein Problem!Wir konnen uns aussuchen, wo wir arbeiten.(einer der Vorteile von Tableaux)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 236/279
Die Tableaux-Methode
Beispiele
Beispiel 2
Tableauerweiterung mit der Negationsregel
1 F¬(q ∧ r) → (¬q ∨ ¬r)√
2 T¬(q ∧ r) 1,F→3 F (¬q ∨ ¬r) 1,F→,
√
4 F¬q 3,F∨,√
5 F¬r 3,F∨,√
6 Tq 4,F¬7 Tr 5,F¬8 F (q ∧ r) 2,T¬
Jetzt mussen wir uns mit Zeile 8 auseinandersetzen.Das wird interesant . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 237/279
Die Tableaux-Methode
Beispiele
Beispiel 2
Tableauerweiterung mit der Konjunktionsregel
1 F¬(q ∧ r) → (¬q ∧ ¬r)√
2 T¬(q ∧ r) 1,F→,√
3 F (¬q ∧ ¬r) 1,F→,√
4 F¬q 3,F∨,√
5 F¬r 3,F∨,√
6 Tq 4,F¬7 Tr 5,F¬8 F (q ∧ r) 2,T¬,
√
9 Fq 8, F∧ 10 Fr 8, F∧
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 238/279
Die Tableaux-Methode
Beispiele
Beispiel 3
Beispiel 3: Ein ungultiger Ausdruck
Was passiert, wenn der Ausdruck, mit dem wir arbeiten, nicht gultig ist?
Z. B. : (p ∧ q) → (r ∨ s)
1 F (p ∧ q) → (r ∨ s)
Wir mussen eine Implikation widerlegen,also benutzen wir die Regel F→ . . .
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 239/279
Die Tableaux-Methode
Beispiele
Beispiel 3
Implikations- und Konjunktionsregel
1 F (p ∧ q) → (r ∨ s)√
2 T (p ∧ q) 1,F→,√
3 F (r ∨ q) 1,F→4 Tp 2,T∧5 Tq 2,T∧
Zeile zwei verlangt, daß wir eine Konjunktion wahr machen.Wir benutzen die Expansionsregel T∧.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 240/279
Die Tableaux-Methode
Beispiele
Beispiel 3
Disjunktionsregel
1 F (p ∧ q) → (r ∨ s)√
2 T (p ∧ q) 1,F→,√
3 F (r ∨ s) 1,F→,√
4 Tp 2,T∧5 Tq 2,T∧6 Fr 3,F∨7 Fs 3,F∨
Nun zu Zeile 3. Die relevante Regel ist F∨.
Wir sind fertig – aber das Tablau ist nicht geschlossen, es ist offen.Somit ist der Ausdruck nicht gultig.
Wir konnen ein (aussagenlogisches) Modell aus dem Tablau auslesen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 241/279
Propositionale Inferenz
Die Tableaux-Methode
Expansionsregeln fur Negation
Expansionsregeln fur Negation
T¬φ F¬φFφ Tφ
• Man lese diese Regeln von oben nach unten.Der markierte Ausdruck uber der horizontalen Linie istdie Eingabe fur die Regel, und der Ausdruck darunter ist die Ausgabe.
• Wir nennen solche Regeln unare Regeln,da sie nur einen Ausdruck als Ausgabe liefern.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 242/279
Propositionale Inferenz
Die Tableaux-Methode
Expansionsregeln fur binare Verknupfungen
Expansionsregeln fur binare Verknupfungen
T (φ ∧ ψ) F (φ ∧ ψ)
Tφ Fφ FψTψ
F (φ ∨ ψ) T (φ ∨ ψ)
Fφ Tφ TψFψ
F (φ→ ψ) T (φ→ ψ)
Tφ Fφ TψFψ
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 243/279
Propositionale Inferenz
Die Tableaux-Methode
Aussagentableaux
Aussagentableaux
• Ein (Aussagen-)Tableaux ist ein Baum, dessen Knoten markierteaussagenlogische Ausdrucke sind.Ein Zweig eines Tableaux ist ein Zweig eines solchen Baumes.
• Wir beginnen mit einem Anfangstableaux.Das kann irgendein Tableaux mit genau einem Zweig sein.
• Tableaux-Expansion funktioniert wie folgt:Gegeben ein Tableaux: Versuche einen Knoten zu finden, der• kein markierter atomarer Ausdruck ist und• auf den noch keine Expansionsregel angewendet wurde.
Solche Knoten werden unexpandierte Knoten genannt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 244/279
Propositionale Inferenz
Die Tableaux-Methode
Aussagentableaux
Aussagentableaux
• Wenn es keine expandierbaren Knoten mehr gibt, halte an!Das Tableau ist regelgesattigt.
• Wenn das Tableau unexpandierte Knoten enthalt,wahle einen und wende die entsprechenden Expansionsregeln an,d. h. erweitere das Tableaux durch das Hinzufugen neuer Knoten,so wie es die Regel vorschreibt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 245/279
Propositionale Inferenz
Die Tableaux-Methode
Aussagentableaux
Anmerkung
Ein markierter Ausdruck kann zu mehreren Zweigen gehoren.Wenn wir eine Expansion vornehmen,mussen wir alle Zweige, an denen die Eingabeformel verfugbar ist,erweitern.
•
• T (φ ∨ ψ)
•
• •
Tφ Tψ Tφ Tψ
Wenn wir T (φ ∨ ψ) erweitern,mussen Tφ und Tψ an allen Verzeigungen eingesetzt werden.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 246/279
Propositionale Inferenz
Die Tableaux-Methode
Aussagentableaux
Geschlossene und offene Tableaux
• Ein Zweig eines Tableaux ist geschlossen,wenn er sowohl Tφ als auch Fφ enthalt, wobei φ ein Ausdruck ist.
• Ein Zweig, der nicht geschlossen ist, wird offen genannt.
• Ein Tableau ist geschlossen,wenn alle Zweige, die es enthalt, geschlossen sind.Es ist offen, wenn mindestens ein Zweig offen ist.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 247/279
Propositionale Inferenz
Die Tableaux-Methode
Aussagentableaux
Die Hauptdefinition
Ein Ausdruck φ ist Tableaux-beweisbar (oder einfacher beweisbar) gdw.es moglich ist, das initiale Tableaux, das nur aus dem Knoten Fφ besteht,in ein geschlossenes Tableaux zu expandieren.
Wenn φ beweisbar ist, schreibt man ⊢ φ.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 248/279
Propositionale Inferenz
Die Tableaux-Methode
Der Uninformativitatstest
Der Uninformativitatstest
Man benutzt einfach das folgende initiale Tableau:
Tφ1
.
.
.
Tφn
Fψ
D. h. wir versuchen, alle Pramissen wahr zu machen und dieSchlußfolgerung falsch.
Wenn das fehlschlagt – d. h. wenn wir ein geschlossenes Tableauxbekommen – dann ist das Argument φ1 ∧ . . . ∧ φn → ψ gultig.
Oder anders gesagt: ψ ist uninformativ in Bezug auf φ1. . .φn.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 249/279
Propositionale Inferenz
Die Tableaux-Methode
Korrektheit und Vollstandigkeit
Korrektheit und Vollstandigkeit
• Das Tableaux-System ist korrekt.D. h., fur jeden aussagenlogischen Ausdruck φ,
Wenn ⊢ φ dann |= φ.
Tableaux-Beweise fuhren uns nie in die Irre.
• Das Tableaux-System ist vollstandig.D. h., fur jeden aussagenlogischen Ausdruck φ,
Wenn |= φ dann ⊢ φ.
Es gibt keine Gultigkeit, die wir mit dem Tableaux-Beweis nicht findenkonnten: Wenn ein Ausdruck φ gultig ist, dann ist es moglich,das initiale Tableau Fφ zu einem geschlossenen Tableau zu expandieren.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 250/279
Die Tableaux-Methode
Tableaux in Prolog
Die Reprasentation von Tableaus
Tableaux in Prolog
Tableaux werden in Prolog als Listen dargestellt,die Listen markierter Ausdrucke enthalten.
Markierte Ausdrucke werden als Prolog-Terme mit den einstelligenFunktoren f und t reprasentiert.
Zum Beispiel:
[[f(imp(p,q))]].
Das steht fur ein Tableau mit einem Zweig,namlich einem Zweig, der den einen markierten Ausdruck F (p → q)enthalt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 251/279
Die Tableaux-Methode
Tableaux in Prolog
Die Reprasentation von Tableaus
Ein zweites Beispiel
[[t(and(p,q)), f(and(p,r))]].
Das steht fur ein Tableau mit einem Zweig.
Diesmal enthalt der Zweig aber zwei markierte Ausdrucke,namlich T (p ∧ q) und F (p ∧ r).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 252/279
Die Tableaux-Methode
Tableaux in Prolog
Expansion und Listenmanipulation
Expansion und Listenmanipulation
Die Prolog-Implementation von Aussagen-Tableaus besteht aus einerkleinen Anzahl von Pradikaten, die Listen entsprechend derTablau-Expansionsregeln verandert.
Man kann zum Beispiel leicht ein Pradikat definieren, daß fur die Eingabe
[[t(and(p,q)), f(and(p,r))]].
die folgende Ausgabe liefert:
[[t(p), t(q), f(and(p,r))]].
Die Ausgabe enthalt t(and(p,q)) nicht mehr. Warum?
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 253/279
Die Tableaux-Methode
Tableaux in Prolog
Expansion und Listenmanipulation
Wir konnen die Liste weiter verarbeiten
[[t(p), t(q), f(and(p,r))]].
Wir mussen F∧ anwenden, eine disjunktive Regel.
In unserer Prolog-Implementation bekommen wir das folgende zuruck:
[[t(p), t(q), f(p)], [t(p), t(q), f(r)]]
Man beachte, das diese Liste zwei Listen enthalt.(Unsere Prolog-Implementation kopiert ganze Zweige.)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 254/279
Die Tableaux-Methode
Tableaux in Prolog
closedTableau
Die Prolog-Implementation
Das Hauptpradikat ist closedTableau.Es versucht, rekursiv ein geschlossenes Tableau zu bauen.
closedTableau([]).
closedTableau(OldTableau):-
expand(OldTableau,TempTableau),
removeClosedBranches(TempTableau,NewTableau),
closedTableau(NewTableau).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 255/279
Die Tableaux-Methode
Tableaux in Prolog
expand
Ein Hilfspradikat
expand([Branch|Tableau],[NewBranch|Tableau]):-
unaryExpansion(Branch,NewBranch), !.
expand([Branch|Tableau],[NewBranch|Tableau]):-
conjunctiveExpansion(Branch,NewBranch), !.
expand([Branch|Tableau],[NewBranch1,NewBranch2|Tableau]):-
disjunctiveExpansion(Branch,NewBranch1,NewBranch2), !.
expand([Branch|Rest],[Branch|Newrest]):-
expand(Rest,Newrest).
Wenn es fur den ersten Zweig eine unare, konjunktive oder disjunktiveExpansion gibt, wende diese an und fuge das Ergebnis zum restlichenTableau hinzu.
In allen anderen Fallen arbeite die Liste weiter ab.c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 256/279
Die Tableaux-Methode
Tableaux in Prolog
expand
Die Umwandlung der Listen bei ExpansionenunaryExpansion(Branch,[Component|Temp]) :-
unary(SignedFormula,Component),
removeFirst(SignedFormula,Branch,Temp).
Wir wahlen eine unare Expansion,entfernen das erste passende Vorkommen dieser Expansion aus dem Zweigund bauen die temporare Liste mit dem Expansionsergebnis zusammen.
conjunctiveExpansion(Branch,[Comp1,Comp2|Temp]):-
conjunctive(SignedFormula,Comp1,Comp2),
removeFirst(SignedFormula,Branch,Temp).
disjunctiveExpansion(Branch,[Comp1|Temp],[Comp2|Temp]):-
disjunctive(SignedFormula,Comp1,Comp2),
removeFirst(SignedFormula,Branch,Temp).
Parallel fur konjunktive Expansionen und fur disjunktive Expansion.
Disjunktive Expansionen sind am teuersten, weil wir den ganzen Zweig kopieren.Wir wenden diese deshalb nach den anderen Expansionen an.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 257/279
Die Tableaux-Methode
Tableaux in Prolog
expand
Die einzelnen Expansionen
conjunctive(t(and(X,Y)),t(X),t(Y)).
conjunctive(f(or(X,Y)),f(X),f(Y)).
conjunctive(f(imp(X,Y)),t(X),f(Y)).
disjunctive(f(and(X,Y)),f(X),f(Y)).
disjunctive(t(or(X,Y)),t(X),t(Y)).
disjunctive(t(imp(X,Y)),f(X),t(Y)).
unary(t(not(X)),f(X)).
unary(f(not(X)),t(X)).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 258/279
Die Tableaux-Methode
Tableaux in Prolog
Entfernen geschlossener Zweige
Entfernen geschlossener Zweige
removeClosedBranches([],[]).
removeClosedBranches([Branch|Rest],Tableau):-
closedBranch(Branch), !,
removeClosedBranches(Rest,Tableau).
removeClosedBranches([Branch|Rest],[Branch|Tableau]):-
removeClosedBranches(Rest,Tableau).
Wenn das erste Listenelement ein geschlossener Zweig ist,arbeite mit dem restlichen Tableau weiter und gib das Ergebnis zuruck.
Nur wenn das nicht der Fall ist, entferne die geschlossenen Zweige aus derrestlichen Liste und baue das Ergebnis mit dem ersten Zweig zusammen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 259/279
Die Tableaux-Methode
Tableaux in Prolog
Entfernen geschlossener Zweige
Geschlossene Zweige
closedBranch(Branch):-
memberList(t(X),Branch),
memberList(f(X),Branch).
Ein geschlossener Zweig ist einer,der einen Ausdruck und dessen Negation enthalt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 260/279
Die Tableaux-Methode
Tableaux in Prolog
Das Top-Level-Pradikat
Das Top-Level-Pradikat
tprove(F):-
(
closedTableau([[f(F)]]), !,
write(’Theorem.’), nl
;
write(’Not a theorem.’), nl
).
Dieses Pradikat uberpruft Ausdrucke in bezug auf Gultigkeit:
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 261/279
Computational Semantics
Propositionale Inferenz
Resolution
Resolution
• Im Gegensatz zur Tableau-Methode verwendet Resolutionnur eine einzige Regel: die Resolutionsregel.
• Außerdem arbeitet Resolution normalerweise nicht direkt mit demEingabeausdruck.Stattdessen findet eine Vorverarbeitung (Pre-Processing) statt.Der Ausdruck wird in einen aquivalenten Ausdruck in konjunktiverNormalform (KNF) umgewandelt.Die Resulutionsregel wird dann auf den CNF-Ausdruck angewendet.
• Die Resulotionsmethode ahnelt dem Tableau-Verfahren in einerEigenschaft: Es ist ein indirektes Verfahren,d. h., um φ zu beweisen, zeigen wir, daß ¬φ zum Widerspruch fuhrt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 262/279
Propositionale Inferenz
Resolution
Konjunktive Normal Form (KNF)
Konjunktive Normal Form (KNF)
• Ein (aussagenlogisches) Literal ist entweder ein Satzsymbol (d. h. p, q,r , . . . ) oder die Negation eines Satzsymbols (d. h. ¬p, ¬q, ¬r , . . . ).
• Eine Klausel ist eine Disjunktion von Literalen.(p ∨ q ∨ ¬r ∨ s ∨ ¬t) ist eine z. B. eine Klausel.Damit eine Klausel wahr sein kann,muß mindestens eines ihrer Literale wahr sein.Die leere Klausel ([ ] geschrieben) kann nie wahr werden.
• Ein Ausdruck ist eine KNF, wenn es eine Konjunktion von Klauseln ist.(p ∨ q) ∧ (r ∨ ¬p ∨ s) ∧ (q ∨ ¬s) ist z. B. in KNF.Damit ein KNF-Ausdruck wahr sein kann,mussen alle enthaltenen Klauseln wahr sien.
• KNF-Ausdrucke haben eine sehr einfache Struktur, was oft ausgenutztwird, weil man sie einfach in Listennotation schreiben kann.Unser Beispiel kann man auch so schreiben: [[p, q], [r ,¬p, s], [q,¬s]].
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 263/279
Resolution
Konjunktive Normal Form (KNF)
Umwandlung von Ausdrucken in KNF
Umwandlung von Ausdrucken in KNF (I)
• Tatsache: Jeder aussagenlogische Ausdruck ist aquivalent zu einer KNF.
• Um einen Ausdruck in KNF umzuwandeln, wandeln wir den Ausdruck soum, daß die Negationen zu den Satzsymbolen kommen und entfernengleichzeitig alle Implikationen (→).
Dazu benutzen wir die folgenden Regeln:
• ersetze ¬(φ ∧ ψ) durch ¬φ ∨ ¬ψ• ersetze ¬(φ ∨ ψ) durch ¬φ ∧ ¬ψ• ersetze ¬(φ→ ψ) durch φ ∧ ¬ψ• ersetze (φ→ ψ) durch ¬φ ∨ ψ• ersetze ¬¬φ durch φ
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 264/279
Resolution
Konjunktive Normal Form (KNF)
Umwandlung von Ausdrucken in KNF
Umwandlung von Ausdrucken in KNF (II)
• Nachdem die Negationen jetzt bei den Satzsymbolen sind undalle Vorkommen von → weg sind,fahren wir mit den folgenden Ersetzungsregel fort:
• ersetze θ ∨ (φ ∧ ψ) durch (θ ∨ φ) ∧ (θ ∨ ψ)• ersetze (φ ∧ ψ) ∨ θ durch (φ ∨ θ) ∧ (ψ ∨ θ)• ersetze (φ ∧ ψ) ∧ θ durch θ ∧ (φ ∧ ψ)• ersetze (φ ∨ ψ) ∨ θ durch θ ∨ (φ ∨ ψ)
• Die ersten beiden Regeln bewegen die ∨ tiefer in den Ausdruck hineinund heben Vorkommen von ∧ an.Das ist genau das, was wir fur KNF brauchen.Die anderen beiden Regeln organisieren das Material um,so daß danach die ersten beiden Regeln evtl. angewendet werdenkonnen.
• Das war’s!
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 265/279
Resolution
Konjunktive Normal Form (KNF)
Umwandlung von Ausdrucken in KNF
Beispiel: Umwandlung von (¬p → q) → (¬r → s) in KNF
1. (¬p → q) → (¬r → s)
2. ¬(¬p → q) ∨ (¬r → s)
3. (¬p ∧ ¬q) ∨ (¬¬r ∨ s)
4. (¬p ∧ ¬q) ∨ (r ∨ s)
5. (¬p ∨ r ∨ s) ∧ (¬q ∨ r ∨ s)
6. [[¬p, r , s], [¬q, r , s]]
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 266/279
Propositionale Inferenz
Resolution
Die Resolutionsregel
Die Resolutionsregel
Aus
[p1, . . . , pn,R , pn+1, . . . , pm] and [q1, . . . , qj ,¬R , qj+1, . . . , pk ]
konnen wir
[p1, . . . , pn, pn+1, . . . , pm, q1, . . . , qj , qj+1, . . . , pk ].
ableiten. D. h. alles widerspruchliche fliegt raus.
• Z.B. kann man aus[p, s,¬t, r ] und [q, v ,¬s, r ][p,¬t, r , q, v , r ] ableiten.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 267/279
Propositionale Inferenz
Resolution
Anwendung der Resolutionsregel
Anwendung der Resolutionsregel
• Wir negieren den Ausdruck, den wir beweisen wollen,und wandeln ihn in KNF um.
• Wir wenden die Resolutionsregel auf die Klauseln des KNF-Ausdrucksimmer wieder an, bis es nicht mehr geht.
• Wenn wir mit diesem Verfahren eine leere Klausel erzeugen, zeigt das,daß ¬φ nicht konsistent ist (warum?), und deshalb ist φ gultig.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 268/279
Propositionale Inferenz
Resolution
Ein einfaches Beispiel
Ein einfaches Beispiel: Beweis von p ∨ ¬p
• Wir negieren p ∨ ¬p und erhalten ¬(p ∨ ¬p).
• Wir wandeln ¬(p ∨ ¬p) in KNF um und erhalten [[¬p], [p]].
• Eine Anwendnung der Resultionsregel ergibt [[]].
• Deshalb ist ¬(p ∨ ¬p) nicht konsitent.
• Also ist p ∨ ¬p gultig.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 269/279
Computational Semantics
Inferenz fur PL 1
Inferenz fur PL 1
• Jetzt diskutieren wir Inferenz fur PL 1.
• Wir zeigen zuerst, wie wir unser aussagenlogisches Tableau-System furSprachen erster Stufe erweitern konnen.Wir erortern auch Resolution, geben aber keine Details.
• Ein wichtige Rolle in der Diskussion spielt das Schlusselkonzeptunification.
• Wir werden sehen, daß die Implementation der Inferenz erster Stufe eineschwierige Aufgabe ist und daß es besser ist, fertige Theorem-Beweiserund Modell-Bauer zu benutzen, als diese neu zu entwickeln.
• Demos:• freeVarTabl.pl
• callInference.pl (featuring MACE and OTTER)
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 270/279
Computational Semantics
Inferenz fur PL 1
Die Hauptsache
• Es ist einfach, unser propositionales Tableaux-System zu einem(korrekten und vollstandigen) Tableaux-System fur PL 1 zuerweitern.
• Es ist sehr viel schwerer, das so zu tun,daß man eine effiziente Computerimplementation bekommt.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 271/279
Computational Semantics
Inferenz fur PL 1
PL1-Tableaux fur Menschen
Grundidee: Tableaux-Regeln elemenieren Quantoren und wandeln soPL1-Formeln in propositionale Formeln um. Hier sind die ersten beidenuniversellen Regeln, die wir brauchen:
T∀xφ F∃xφTφ(τ) Fφ(τ)
Dabei steht φ(t) fur das Ergebnis der Ersetzung der Variable,die durch den Quantor gebunden wird, durch den geschlossenen Term t.
Aus T∀xkiller(x) konnen wir Tkiller(jules), Tkiller(butch),usw. schließen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 272/279
Computational Semantics
Inferenz fur PL 1
Ein Beispiel
Wir zeigen die Gultigkeit von ∀xdie(x) → die(mia) ∧ die(zed)
1 F (∀xd(x) → d(m) ∧ d(z))√
2 T∀xd(x) 1,F→3 F (d(m) ∧ d(z)) 1,F→ ,
√
4 Td(m) 2,T∀5 Td(z) 2,T∀
6 Fd(m) 3,F∧ 7 Fd(z) 3,F∧
Man beachte, daß wir T∀ auf Zeile 2 zwei Mal angewendet haben.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 273/279
Computational Semantics
Inferenz fur PL 1
Was fur Tableaux-Regeln braucht man fur Formeln der Form T∃xφ oderF∀xφ? Das ist eine knifflige Angelegenheit.
• Angenommen, das Tableau enthalt die Formel T∃xkiller(x).
• Es ist nicht angemessen aufgrund dieser Information zu schließen, daßTkiller(jules) oder Tkiller(butch) oder sogarTkiller(closed-term) fur jeden geschlossenen Term der Sprache,mit der wir arbeiten gilt.
• Wir werden deshalb einen neuen Bezeichner (Parameter genannt)einfuhren und den Quantor eliminieren, indem wir diesen einsetzen(d. h., wir arbeiten mit einer machtigeren Sprache).
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 274/279
Computational Semantics
Inferenz fur PL 1
Die existentiellen Regeln
Hier sind F∀ und T∃:
F∀xφ T∃xφFφ(c) Tφ(c)
Hierbei steht φ(c) fur das Ergebnis der Substitution eines Parameters c,den wir bisher nicht im Tableau-Beweis benutzt haben, fur die neueleminierte Variable in der Matrix.
• Es ist wichtig, daß wir neue Parameter benutzen.
• Anmerkung: Die universellen Regeln mussen ebenfalls in der Lage sein,Parameter zu verwenden! Das heißt, daß die universellen Regelnunendlich viele Moglichkeiten zulassen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 275/279
Computational Semantics
Inferenz fur PL 1
Ein Beispiel
Wir zeigen, daß ∃x∀yshoots(x,y) → ∀y∃xshoots(x,y) gultig ist.(Dieses Beispiel zeigt die Anwendung von allen vier Quantorenregeln)
1 F (∃x∀yshoots(x,y) → ∀y∃xshoots(x,y))√
2 T∃x∀yshoots(x,y) 1, F→3 F∀y∃xshoots(x,y) 1, F→4 T∀yshoots(c1, y) 2, T∃5 F∃xshoots(x , c2) 3, F∀6 Tshoots(c1, c2) 4, T∀7 Fshoots(c1, c2) 5, F∃
Man beachte die Interaktion der existentiellen und universellen Regeln.Univerelle Regeln konnen auf Parameter zugreifen.
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 276/279
Computational Semantics
DRT
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 277/279
Computational Semantics
Anaphern und Prasupposition
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 278/279
Computational Semantics
Zusammenfassung
Zusammenfassung
c© Patrick Blackburn & Johan Bos, 2005, Ubersetzung Stefan Muller 2006, CL, FB 10, Universitat Bremen 279/279
Computational Semantics
Literatur
Allwood, Jens, Anderson, Lars-Gunnar und Dahl, Osten. 1973.Logik fur Linguisten. Romanistische Arbeitshefte, Nr. 8,Tubingen: Max Niemeyer Verlag.
Blackburn, Patrick und Bos, Johan. 2005. Representation and
Inference for Natural Language. A First Course in
Computational Semantics. Stanford: CSLI Publications.
Blackburn, Patrick, Bos, Johan und Striegnitz, Kristina. 2001.Learn Prolog Now!http://www.coli.uni-sb.de/∼kris/learn-prolog-now/.28.01.2005.
Gabsdil, Malte und Striegnitz, Kristina. 1999. Classifying
Scope Ambiguities. In Christoph Monz und Maartende Rijke (Hrsg.), Proceedings of ICOS-1 , First Workshopon Inference in Computational Semantics, Seiten125–131, ILLC Amsterdam.
Gabsdil, Malte und Striegnitz, Kristina. 2000. ClassifyingScope Ambiguities. Language and Computation 1(2),
307A–313,http://www.coli.uni-sb.de/∼gabsdil/papers/jlac00.ps.gz,29.10.2004.
Lohnstein, Horst. 1996. Formale Semantik und Naturliche
Sprache. Opladen: Westdeutscher Verlag.