CLab: Kooperative Antworten via Diagnose von Präsuppositionsverletzungen

Bearbeiter: N.N.

Betreuer:Klenner/Clematide

Einführung

Fragen wie: "Welches CL-Seminar bietet Greta Garbo heuer an" liegen Misskonzepte oder Misskonzeptionen zugrunde. Hier z.B. dass Greta Garbo CL unterrichtet. Eine kooperative Antwort sollte solche Misskonzepte aufdecken. Statt eines simplen KEINE also besser: "Greta Garbo unterrichtet keine CL (bei uns)". Grundsätzlich kann man dies anhand einer Präsuppositionsanalyse und allfälligen Präsuppositionsverletzungen erfassen. Im PP soll dies anhand einer in Prolog realisierten deduktiven Datenbank und via der Diagnose von Verletzungen von Integretätsbeschränkungen rekonstruiert werden.

Ziel und Zweck

Ziel ist die Portierung und Erweiterung einer SWI-Prologimplentierung eines kooperativen Frage-Antwort System nach Sicstus und seine Einbindung in unsere Weblernumgebung CLab. Die Erweiterung betrifft die Anwendung auf unsere Lehrsituation im Wintersemester 04/05.

Lernziel

Es gibt drei Lernziele. Es ist - erstens - eine wesentliche Fertigkeit sich in existierende Programme und vor allem Programmcode einzuarbeiten und diesen erweitern zu können. Die Portierung und Einbindung in unser CLab erfordert - zweitens - den Erwerb von (Programmier)Wissen aus dem Bereich Webtechnologie, es ist zudem das (pädagogische) Ziel eine für CL-Lerner interessante Lernheit zu kreieren. Drittes erfordert die Erweiterung auf unsere Domäne ein tiefes Verständnis des Prologprogramms und eigenständige Prologprogrammierung.

Details

Präsuppostionen:

"Welche Kurse bietet Roberto in der Linguistikabteilung an"

es gibt Kurse
es gibt Kurse in der Linguistikabteilung
es gibt eine Linguistikabteilung
Roberto bietet Kurse an

es gibt Veranstaltungen
es gibt Veranstaltungen in der Linguistikabteilung

Studenten bieten Kurse an
Studenten halten Veranstaltungen ab

es gibt Kurse in den Abteilungen
jemand bietet Kurse an
....

Misskonzeption:

Wenn keine positive Antwort gefunden werden kann, da eine Präsupposition oder eine Integritätsbedingung verletzt wurde.

Logische Definition von Präsupposition

Die Präsuppositionen einer Frage sind alle Teilformeln der logischen Repräsentation der Frage, wobei mind. ein Teilausdruck weggelassen wurde.

Die logische Repräsentation wird vom Parser erzeugt, bildet Sätze auf die Attribute etc. der Datenbank ab. Alle intensionalen Prädikate werden expandiert, geteilte Variablen werden explizit gemacht

Bsp.: List any freshers

{ X | enrolled(X,A), course(B,D,Y,MS), A = B, Y = 1 }


(direkte) Präsuppositionen:

P1: enrolled(X,A), course(B,D,Y,MS), A = B
P2: enrolled(X,A), course(B,D,Y,MS), Y = 1
P3: enrolled(X,A), A = B, Y = 1
P4: course(B,D,Y,MS), A = B, Y = 1
insgesamt 2^n-2 Präsuppositionen bei n Prädikaten, viele davon sind bedeutungslos ...

Def: Ein kohärenter Ausdruck ist ein solcher, bei dem jedes Prädikat mindestens eine Variable mit den anderen Prädikaten gemeinsam hat.

z.B. auf P2 trifft das nicht zu

Die kohärenten Präsuppositionen für das Bsp.:

enrolled(X,A), course(B,D,Y,MS), A = B  "die Menge der Einschreibungen in einen bestimmten Kurs"
course(B,D,Y,MS)                        "Menge der Kurse"
enrolled(X,A)                           "Menge der Einschreibungen"
course(B,D,Y,MS), Y = 1                " Menge der Kurse im ersten Jahr"

(siehe Gal et al. für die Details)

Integritätsbeschränkungen (IC):

ic(8,fail,[teach(jones,D,C),course(C,D,Y,M),M>20]).

'jones does not teach courses with more than 20 students').
Erkennung von IC-Verletzungen: merge-kompatibel

Def.: Ein IC ist merge-kompatibel mit einem Query gdw. der IC den Query subsumiert bzw. partiell subsumiert.

Ein Query verletzt einen IC, wenn der IC merge kompatibel zur Query ist und der merge (entweder) vollständig ist oder der nicht matchende Rest (Residue) des ICs als falsch bewiesen werden kann.

Beispiel:

how many courses with more than 20 students does Jones teach:

{count(X) | teach(jones,K,X), course(X,K,L,M), M>20}

vollständiger Match mit IC 8 von oben:

teach(jones,D,C), course(C,D,Y,M), M>20
teach(jones,K,X), course(X,K,L,M), M>20

--> 
ic 8 sagt ja aus, daß es nicht gleichzeitig gelten kann
Query fragt, ob es gleichzeitig gilt

Ressourcen

Der Prologcode aus Gal et al.

Literatur

Gal, Annie et al. (1991): Prolog for Natural Language Processing, Chichester: Wiley (Kapitel 7)