7 Memory Organization und Deduktion
18. Vorlesung: Schemata und Eigenschaftsvererbung;
Nichtmonotonie und Datenabhängigkeit
Schemata:
Repräsentationsstrukturen, die aus der Konjuktion einer großen Anzahl von Fakten mit freien Variablen bestehen.
(Spezialfall: Script)
Abstraktes Schema:
prädikatenlogische Darstellung
Konkretes Schema:
tatsächliche Datenstruktur in einer Implementation
Schema-Instanz:
Das durch Einsetzen der freien Variablen erhaltene spezifische Objekt (speziell: Script-Instanz)
Schlüsselproblem für Memory Organization:
effiziente Handhabung von Schemata und
ihren Instanzen
(neue Begriffe)
! " $
% & ' ( ) *+
,-. + ( ) ( ( ) * /
( + ) ,
0+ ( ) *+ 01% &0101 2 1' 2
13 4 , 13 4 , 4 + 5
14 )
+ ) ,4
4 + 5 0-1+ 3 % *13 + 4 4
0. --6 3 . ( *+ ' 4
Ansatz: Benutze "property-inheritance"-links (ein neuer Typ von link), um Klassen und Individuen in Schemata einzufügen.
Suche dann entlang von inst- und isa- links, um ggfs. nicht direkt verfügbare Information zu gewinnen (durch Eigenschaftsvererbung)
(isa subclass superclass )
(inst individual class )
(forall(x)(if (inst x dog)
(and (friendliness x high) (eats x meat))))
"Mini-Schema"; als backward-chaining-Regel durch Theorembeweiser benutzbar; z.B. für das goal:
(Show: friendliness fido ?x)
Dann müssen subgoals der Form
(inst fido class)
untersucht werden (u.U. sehr viele!).
ACHTUNG – unterscheide:
Property-links von Klassen- Knoten eines Assoziativen Netzes (dog,mammal):
implizit allquantifizierte Assertionen
Property-links von Instanz- Knoten (fido,fifi):
assertierte Fakten für Individuen
z.B. (sex fido male) Type versus Token!
der dog-Information aus der Vererbungshierarchie
! " 8
Wie ausdrücken, daß es viele Hunde gibt?
(numerous dog) ?
Einen numerous -link bei dog einführen?
(friendliness dog high) (number dog high) ?
Geht nicht in Vererbungshierarchien, da Eigenschaften aller Klassenmitglieder auf Instanzen zu vererben sind
( nicht Eigenschaften einer Klasse)
Eine Möglichkeit: zwei dog - Knoten einführen
• einen für Eigenschaften der Klasse
• einen für Eigenschaften aller Klassenmitglieder
Andere Möglichkeit:
• Assertionen, die sich auf Klassen beziehen
• Assertionen, die sich auf "Pseudo-Individuen"
beziehen (typische Vertreter)
(numerous stop-sign)
(shape #typical-stop-sign octagonal) versus Eigenschaften von Klassenmitgliedern
dog
(sex fido male) (friendliness #typical-dog high) (sex fifi female) (eats #typical-dog meat)
(inst fido dog) (isa dog mammal)
(inst fifi dog) (furry #typical-mammal true) (numlegs #typical-mammal 4)
Schemata für Klasseninstanzen → Mengen von Pseudo-Assertionen:
(forall(x)(if (inst x class)
(and (p1 x v1) → (p1 #typical-class v1) (p2 x v2) → (p2 #typical-class v2)
... ))) → ...
p: predicate v: value
Allgemein:
! " :
dog
Um eine indexierte assertorische Datenbasis für solche Ausdrücke verwenden zu können, müssen die Funktionen index-fetch und list-index-fetch so modifiziert werden, daß für jede Superklasse s einer Konstanten nach #typical-s gesucht wird.
Dies erfordert zweifache Repräsentation der isa -Hierarchie:
• explizit: inst- und isa- statements in Prädikatenlogik
• implizit: durch links innerhalb der Indexierung
fifi
sex
(<2> 1 (sex fifi female)) inst
(<2> 1 (inst fifi dog))
#typical-dog
friendliness
(<2> 1 (friendliness #typical-dog high)) inst
Q R ST U VW SXY X Z SU [U \U []
dog
(forall(x)(if (inst x dog)
(exists (head owner license ...) (and (friendliness x high)
(own owner x)
Abstraktes Schema mit Rollen (holder-of owner license) (part-of head x)
...))))
Konkretes Schema: Beim Skolemisieren werden die Rollen zu Funktionen (if (inst ?x dog)
(and (friendliness ?x high) (own (owner-of ?x) ?x)
(holder-of (owner-of ?x) (license-of ?x)) (part-of (head-of ?x) ?x))
...))))
; < = > ? @AB C D E F G B HI ? J B E J B @ K L E C HAM N I B E O E HB AAM F B E P ^
Einführung von "Pseudo-Assertionen" für Eigenschaften der Klassenmitglieder führt zu Ausdrücken wie:
(holder-of (owner-of #typical-dog)(license-of #typical dog))
Problem:
_
Es ist zwar möglich, Assertionen über #typical-dog zu indexieren.
_
Wie aber sind funktionale Ausdrücke einzubeziehen wie (owner-of #typical-dog) ?
Q R ST U VW SXY X Z SU [U \U []
• In einem realistischen Beispiel wird nicht der funktionale Term
(owner-of fido) interessieren, sondern sein Wert (z.B. fred ).
• D.h. in der DATABASE werden Fakten folgender Art stehen:
(:= (owner-of fido) fred)
(:= (license-of fido) license-4)
• Das Prädikat ":=" bedeutet dabei gerichtete Gleichheit:
der Skolem-Term (owner-of-fido) kann durch fred ersetzt werden, aber nicht umgekehrt.
• Anders als das "=" , mit dem Atome wie ackroyd und murderer-97 unifizierbar gemacht werden, kann der Index-Mechanismus nicht geeignet erweitert werden.
Es könnte sehr viele
solche Funktionswerte
geben, für alle im
Schema eingeführten
Rollen!
; < = > ? @AB C D E F G B HI ? J B E J B @ K L E C HAM N I B E O E HB AAM F B E P ; ;
> Schemaregeln (mit Skolemfunktionen) werden überhaupt nicht indexiert.
Wenn (z.B.) dog in einem Inferenzprozeß vorkommt, wird das dog- Schema zu einer Liste momentan aktiver Schemata hinzugefügt und alle aktiven Schemata für Inferenzen zugänglich gemacht.
Problem: Die Liste aktiver Schemata kann sehr schnell sehr groß werden.
Beispiel: The lawyer took a cab to a restaurant near the university.
Dann könnten im nächsten Moment die Schemata für lawyer, cab, restaurant, university, aber auch die Schemata für deren Superklassen
( lawyer < professional < wage-earner < person...
angesprochen sein.
D.h. der eine Satz verlangt bereits etliche aktive Schemata! ---> Ineffizienz-Problem
Q R ST U VW SXY X Z SU [U \U []
> Ansatz von Charniak/McDermott
Skolem-Funktionen werden nicht "buchstäblich" indexiert, sondern nach dem Typ ihrer möglichen Werte:
Auch hiermit lassen sich nur in bestimmten Fällen Erfolge erzielen!
(bei Interesse: siehe S. 410f )
; < = > ? @AB C D E F G B HI ? J B E J B @ K L E C HAM N I B E O E HB AAM F B E P ; b
Bei Vorliegen unvollständiger Daten kann es vorkommen, daß bereits vorgenommene Ableitungen aufgrund neuer Information zurückgenommen werden müssen, z.B.:
c
Erwartungswerte (Defaults) werden überschrieben
c
Bekanntwerden von Ausnahmen von Regeln
c
Bekanntwerden gegenteiliger Evidenz für etablierte Schlüsse
c
Korrektur von Eingabedaten
c
zeitliche Änderung von Eingabedaten
Q R ST U VW SXY X Z SU [U \U []
fliegt(X) :- vogel(X), not abnorm(X).
abnorm(X) :- pinguin(X).
vogel(tweety).
>fliegt(tweety)? ==> yes
fliegt(X) :- vogel(X), not abnorm(X).
abnorm(X) :- pinguin(X).
vogel(tweety).
pinguin(tweety).
>fliegt(tweety)? ==> no
Beispiel (PROLOG mit Closed-World Assumption):
e f gh i j k lm h n gk
o i i p q r s th u v
wf m o x y
m j u u z u t{ | s
} j ~ j ti } n ti s
~ tn k z
u j u h q q j u
; < = > ? @AB C D E F G B HI ? J B E J B @ K L E C HAM N I B E O E HB AAM F B E P ;
defframe auto
(slots (sitze 5)
(zylinder 4) (räder 4))) defframe sportwagen (supers auto)
(slots (sitze 2)
(preis hoch))) (definstance flitzer of
sportwagen)
>Hat flitzer 4 zylinder?
>JA
Erweiterung des Frames sportwagen:
defframe sportwagen (supers auto)
(slots (sitze 2)
(preis hoch) (zylinder 6)))
>Hat flitzer 4 zylinder?
>NEIN
Q R ST U VW SXY X Z SU [U \U []
(a) A → B UNLESS C
(b) A & ¬C → B
Unkenntnis (ob C oder ¬C ):
(a) zugunsten der Regel (b) gegen die Regel
Ausnahmen erfordern 3-wertige Logik: wahr, falsch, unbekannt
Regeln mit Ausnahmen führen unmittelbar zu Nichtmonotonie, denn durch Zusatzinformation kann im Fall (a) klar werden, daß ein Ausnahmefall vorliegt.
(d.h. Konklusionen sind plausibel, nicht korrekt)
Nichtmonotones Schließen auch bei 2-wertiger Logik:
falls unbeweisbar als falsch
interpretiert (CWA)
Ableitungen
Fakten
Ableitungen
Fakten
Monotones Schließen:
Kenntnis weiter Fakten erhält alle bisherigen Ableitungen
Nichtmonotones Schließen:
Kenntnis weiter Fakten kann vorher abgeleitete Fakten unableitbar machen
PL-1 ist monoton! In PL-1 nicht modellierbar!
¡ ¢ £¤ ¥¦ ¥ § ¢ ¨¢ ©¢ ¨ª
«
Modale nichtmonotone Logiken
¬
logische Sprache wird um sog. Modaloperatoren erweitert
«
Default-Logiken
¬
Einführung nichtmonotoner Inferenzregeln
«
Circumscription
¬
aus einer Prämissenmenge nichtmonoton ableitbare Formeln werden definiert als aus einer Obermenge der Prämissen monoton ableitbare Formeln
hier nicht weiter betrachtet;
siehe z.B. Görz, Kapitel 1.2
Das von der Logik geforderte Verhalten wird (unter erheblichem Effizienzgewinn) dadurch approximiert, daß man annimmt, eine Formel sei wahr („konsistent“), solange ihre Negation nicht bewiesen wurde:
¬
„unbeweisbar“ wird ersetzt durch „bisher nicht bewiesen“
¬
Ableitbarkeit relativ zum Problemlösungszustand definiert
¬
Abhängigkeiten der einzelnen Schlüsse von Vorbedingungen werden aufgehoben
¬
falls sich später herausstellt, daß eine Annahme falsch war:
Schluß zurücknehmen
Datenabhängigkeit
¡ ¢ £¤ ¥¦ ¥ § ¢ ¨¢ ©¢ ¨ª
Datenbasiseintrag p
späterer Eintrag p → q
Vorwärtsverkettung: Eintrag q Löschen der Voraussetzung: p q ist nicht mehr begründet ! q
Löschen von Einträgen ==> Löschen von Folgerungen
D.h. das Fortbestehen des Datums q in DATABASE
ist abhängig vom Fortbestehen der Voraussetzung p .
®
justifiers
justification justificand
«
Begründungsnotiz für Einträge (data dependency note)
¬
Grund (justifier)
¬
Begründungen (justification)
¬
Begründetes (justificand)
¡ ¢ £¤ ¥¦ ¥ § ¢ ¨¢ ©¢ ¨ª
(mortal alice) (inst alice human)
(if (inst ?x) human)
(mortal ?x))
® °
p justifiers
justification justificand justificand
gelöscht
fälschliche zirkuläre Begründung für p
¡ ¢ £¤ ¥¦ ¥ § ¢ ¨¢ ©¢ ¨ª
durch sog. Truth-Maintenance-Systeme (auch: Reason-Maintenance-Systeme)
Charniak & McDermott, Kapitel 6, Seite 406-416