Bearbeiter: N.N.
Betreuer:Klenner/Clematide
"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 ....
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 = 1insgesamt 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)
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.
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