4. Logik-Datenbanken:
Die Begriffe "Logik-Datenbank", "deduktive Datenbank", "Wissenssysteme",...,
u.ä., wurden Mitte der 80er Jahre eingeführt. In dieser Zeit
wurden große Fortschritte in der sogenannten "Künstlichen Intelligenz"
Forschung, und ganz besonders im Teilbereich der logischen Programmierung
(LISP, PROLOG,...) gemacht. Bei Logik-Datenbanken kommen genau diese Entwicklung
zu tragen. Logik-Datenbanken, oder genauer deduktive Datenbanken, überdecken
die Fachgebiete der Datenbanken, der Expertensysteme (Wissensrepräsentation
ausschließlich in Regeln und Listen) und der logische Programmierung.
Dabei vollzieht sich die Änderung zur herkömmlichen Datenbank
nicht so sehr in den gespeicherten Daten - man kann ohne weiters auch eine
relationale Datenbank verwenden - sondern in einer Erweiterung des DBMS.
Es kann gesagt werden, dass sich die "Sichtweise" der Daten vom DBMS aus
entscheidend ändert.
4.1. Modellsicht versus Beweissicht:
Bei herkömmlichen (relationalen) DBMS wurden die Daten als direktes
Modell, oder möglichst isomorphe Abbildung, der Wirklichkeit gesehen.
Jeder Datensatz entspricht darin einem (Elementar-)Satz, welcher eine Tatsache
der Wirklichkeit beschreibt. Will man etwas in diesen Daten suchen, so
muss man sich mit denen in der Datenbank abgelegten "Satz-Fragmenten" begnügen.
D.h. alles was abgefragt werden kann muss vorher eingegeben werden. Es
soll hier aber nochmals erwähnt werden, dass auch relationale Datenmodelle
auf den Grundprinzipien der Logik basieren, jedoch nur rein extensionale
Fakten zugelassen werden.
Sieht man die Datenbank (Daten und DBMS) aber als Beweisapparat, so
ändert sich das Datenmodell in wesentlichen Punkten. Der extensionale
Anteil der Daten bleibt im wesentlichen gleich, nur werden die Tupel nun
als Basisaxiome eines logischen Kalküls betrachtet. Diese werden in
der Datenbank um intensionales Wissen erweitert. Diese intensionalen
Teile - die Folgerungs- bzw. Umformungsregeln - erlauben es nicht nur direkt
auf die extensionalen Fakten zuzugreifen, sondern auf neue Fakten zu schließen.
Die Fakten, die durch die Daten in der Datenbank repräsentiert werden,
werden um den Teil erweitert, der mittels der Schlussregeln erzeugt
werden kann. Dies ergibt die sogenannte "deduktive Hülle" an. Ausserdem
wird meist angenommen, dass alle Fakten, die nicht in der deduktiven Hülle
enthalten sind, als nicht zutreffend, also "falsch", einzustufen sind (man
spricht hier von der "closed world assumption").
Man kann auch sagen, dass sich die Daten in der Datenbank aus Fakten
(den Extensionen) und aus Wissen (den Intensionen) zusammensetzen. Dieses
Wissen ist meist als Regeln formalisiert, welche Erlauben durch Umformung
bestehender Fakten, neue Fakten zu erzeugen. Um Regeln formalisieren zu
können, muss man zuvor aber allgemeine Gesetzmäßigkeiten
in der Wirklichkeit, oder in der abstrahierten Struktur der Wirklichkeit,
erkannt haben. Die Logik (meist Prädikatenlogik 1. Stufe) kommt dort
zum Einsatz, wo Fakten und Wissen formalisiert werden und wo danach über
Anwendung der Regeln auf die bestehenden Fakten hypothetische Fakten bewiesen
oder widerlegt werden sollen.
Als logischer Kalkül kommen im wesentlichen die Aussagenlogik,
einstufige und mehrstufige Prädikatenlogiken zum Einsatz. Diese "klassischen
Logiken" können aber je nach Anspruch und Aufgabe der Datenbank so
erweitert sein, dass sie auch z.B. ungenaues, mögliches oder widersprüchliches
Wissen beinhalten können. Man verlässt dann den Bereich der klassischen
Prädikatenlogik und verwendet dann z.B. stochastische, modale oder
nonmonotone Kalküle, die allesamt zu den nichtklassischen Logiken
zählen (mehr dazu weiter unten).
Da der Beweisprozess automatisch, eben durch das DBMS, ablaufen soll
wurden mehrere Techniken entwickelt, die einen solchen automatische Beweis
ermöglichen, also deduktive Schlüsse aus den vorhandenen Fakten
ableiten bzw. berechnen können. Im folgenden Abschnitt sollen die
begrifflichen Grundlagen der wichtigsten, in deduktiven Datenbanken verwendeten,
Techniken besprochen werden.
4.2. Horn-Klausen, PROLOG, DATALOG:
Der Kalkül der Aussagenlogik behandelt logische Aussagen, welchen
semantisch immer einer von zwei möglichen Wahrheitswerten ("wahr",
"falsch") zugewiesen werden kann. Komplexere Sätze entstehen durch
Verknüpfung einfacher Aussagen mittels der logischen Konnektive "und",
"oder", "nicht" und der "Implikation". Als Schlussregel kommt hauptsächlich
der "Modus Ponens" zum Einsatz, der wie folgt lautet: P, P -> Q |-
Q (wenn P wahr, und P impliziert Q, dann ist auch Q wahr; |- bezeichnet
das Metasymbol der Ableitbarkeit).
Prädikatenlogik erster Stufe stellt (vereinfacht gesehen) eine
Erweiterung der Aussagenlogik um Variablen und Quantoren (Existenz- und
All-Quantor) dar. Als weitere logische Satzbausteine gibt es noch die Prädikate.
Hier kann bereits eine Analogie zum relationalen Modell erkannt werden,
wo die Relationen aus Tupeln aufgebaut sind. Prädikate symbolisieren
im Prinzip genau solche relationalen Verknüpfungen. Quantifizierte
Formeln der Prädikatenlogik entsprechen dann den Abfragen und Integritätsbedingungen
relationaler Datenbanksprachen.
Da das volle System der Prädikatenlogik zwar sehr mächtig,
aber formal auch schwer bearbeitbar ist, verwendet man Systeme mit reduzierter
Komplexität, bei denen gewisse Einschränkungen in der Syntax
die Anwendung automatischer Ableit- bzw. Beweissysteme erlauben. Die wohl
häufigste Einschränkung ist die auf sogenannte Horn Klausen.
Unter einer Klause versteht man dabei eine Formel die sich aus der Disjunktion
von Satzbausteinen zusammensetzt. Eine Horn-Klause ist dann eine Klause
mit mindestens einem positiven (also nicht negierten) Satzbaustein. Berücksichtigt
man, dass A -> B <=> B v ~A und dass ~A v ~B <=> ~(A^B) so
kann man die Hornklause wie folgt umformen:
A v ~B v ~C v ~D v....
A <- ~(~B v ~C v ~D v...)
A <- ~~(B ^ C ^ D ^....)
A <- B ^ C ^ D
Im Formalismus von PROLOG oder DATALOG würde diese Formel dann
so aussehen:
A :- B, C, D, ...
A wäre der sogenannte Kopf der Klause ("Head") und Teil
rechts von :- nennt man den Körper ("Body"). Der Kopf wird
also gewissermaßen über seinen Körper definiert. Mehrere
solcher Definitionen ergeben ein PROLOG Programm. Eine Klause ohne Körper
nennt man Einzelklause ("Unit Clause", ist immer "wahr"), eine ohne
Kopf wird als Abfrage ("Query" oder "Goal") bezeichnet.
Die Einzelklausen in einem logischen Programm stellen somit den extensionalen
Anteil der Datenbank dar. Alle anderen Klausen sind dann der intensionale
Anteil. Dieser intensionale Anteil repräsentiert in Analogie zum relationalen
Datenbankmodell die Integritätsbedingungen, und darüber hinaus
auch abgeleitete Fakten und erlaubt aber auch Rekursion.
Die Beweisverfahren für Systeme der Prädikatenlogik erster
Stufe basieren auf der Resolution. Das Grundprinzip das dahintersteht ist,
dass ein Statzbaustein einer disjunkiven Kette wahr sein muss, wenn alle
anderen Elemente der mit Disjunkten verbundenen Formel als falsch bewiesen
werden können. Wendet man das Verfahren der Resolution auf Horn Klausen
an erhält man Beweissysteme, welche hauptsächlich im Bereich
der logischen Programmierung (und auch bei PROLOG) angewendet werden.
Ein PROLOG-Programm besteht also aus einer Menge von Axiomen (den Definitionen).
Das DBMS, oder in diesem Kontext auch PROLOG Interpretierer oder auch Inferenzmaschine
genannt, ermöglicht es mit Hilfe der Axiome Theoreme zu beweisen.
Dies entspricht eine Abfrage im herkömmlichen datenbankkontext. Wenn
man das PROLOG-Programm mit P bezeichnet und die Abfrage mit Q, dann versucht
das DBMS den Satz P ^ ~Q zu widerlegen. P besteht aus der Konjunktion von
Axiomen, ist also per Definition immer wahr. Um also P ^ ~Q "falsch" zu
haben, muss ~Q "falsch" sein und somit Q "wahr". Eine detaillierte Darstellung
von PROLOG findet sich in ERTL 1988; über
Details der Funktionsweise und unterschiedlichen Methoden von Inferenzmaschinen
siehe z.B. COLOMB 1998 oder CREMERS
e.a. 1994.
Eine Anpassung der logischen Programmierung an die Bedürfnisse
der Datenbankprogrammierung stellt DATALOG dar. Dabei wird PROLOG so weiter
eingeschränkt, dass eine einfachere und effizientere Nutzung des Systems
hinsichtlich der zu erwarteten Datenbankfunktionalitäten gewährleistet
ist. Im konkreten Fall handelt es sich in erster Linie um Integritätsbedingungen
und die rekursive Verknüpfung diverser Dateninhalte. Da aber DATALOG
auf PROLOG aufbaut und somit ebenfalls ein logisches Programmiersystem
darstellt, sind natürlich alle Methoden des logischen Kalküls
auch innerhalb DATALOG anwendbar. Dies erlaubt einerseits eine Umformung
des logischen Programms entsprechend der Umformungsregeln des Kalküls,
sodass die Performanz der Beweismaschine erhöht wird und andererseits
ermöglicht der logische Kalkül die Formulierung von Formeln,
die in wichtigen Punkten weit über die Aussagekraft von Formeln der
relationalen Algebra hinausgehen.
Eine zusätzliche Erweiterung von PROLOG, die für die Anwendung
im Datenbankbereich von besonderer Wichtigkeit ist, ist die sogenannte
"all_solutions"-Methode. Diese Änderungen in PROLOG ermöglichen
sogenannte "set-at-a-time" Abfragen im Gegensatz zu "clause-at-a-time"
(mit gewissen Einschränkungen; siehe unten). Damit
ist gemeint, dass in PROLOG ein beliebiger Beweis gesucht wird, und wenn
dieser gefunden ist, beendet das System den Beweisprozess. Bei Datenbankabfragen
werden aber alle möglichen Beweise gesucht. Man will nicht nur wissen
ob eine Abfrage eine Lösung hat, sondern auch wie alle möglichen
Lösungen aussehen.
Allgemein gilt, dass PROLOG (mit der "all_solutions"-Methode)
die relationale Algebra logisch enthält. Alle Formeln der relationalen
Algebra können in solche der Horn-Klausen-Prädikatenlogik umgeformt
werden. Andererseits können aber gewisse PROLOG-Formeln, nämlich
jene welche Variablen oder Funktionen enthalten, bzw. solche mit rekursiven
Definitionen, nicht in die relationale Algebra transformiert werden. PROLOG,
aber auch DATALOG, sind also logisch mächtiger und expressiver als
die relationale Algebra. Diese Versatilität der Prädikatenlogik
erster Stufe ist aber auch gekoppelt an das Problem der Nicht-Terminierung.
4.3. Nicht-Terminierung:
Ein allgemeines Problem bei Inferenzmaschinen für Prädikatenlogik
erster Stufe, also auch bei PROLOG, stellt die Nicht-Terminierung dar.
Es gibt Theoreme, die von einer Inferenzmaschine nicht in einer endlichen
Anzahl von Schritten bewiesen oder widerlegt werden können. D.h. dass
die Inferenzmaschine bei gewissen Theoremen zu keiner Lösung, also
keinem Beweis kommen kann. Dies ist ein Aspekt der Prädikatenlogik
erster Stufe die auf die Unvollständigkeitstheoreme Kurt Gödls
zurückzuführen ist. Gödl hat gezeigt, dass in einem Kalkül,
der ausreichend kompliziert ist (vereinfacht gesagt genügt das Vorhandensein
rekursiver Axioms-Definitionen) es immer Theoreme geben wird, die weder
bewiesen noch widerlegt werden können. Die Anwendung dieser Unvollständigkeitstheoreme
Gödls auf formale Beweisverfahren wurde von Turing mit seinen Turingmaschinen
gezeigt (mehr zu diesem Thema findet sich in DEPAULI-SCHIMANOVICH
& WEIBEL 1997).
Ein einfaches Beispiel für ein nicht terminierendes logisches
Programm mit Resolutionsmethode ist mit fogendem Axiom bereits gegeben:
P :- P. Bei einer Abfrage ?~P sollte unter der " closed world
assumtion" (siehe oben) diese mit "wahr" bewertet
werden. Im automatisierten Beweisverfahren kommt es hingegen zu einem unendlichen
Zirkel.
Genau dieser Aspekt der Nicht-Terminierung macht auch eine "set-at-a-time"
Evaluierung (siehe oben) in PROLOG schwierig. Mit der "all-solutions"-Methode
kann zwar versucht werden alle möglichen Lösungen zu einer Query
zu finden, allerdings liegt im Prinzip der Nicht-Terminierung auch die
Möglichkeit, dass gewisse Lösungen nicht in einem endlichen Zeitintervall
gefunden werden können. Man kann also in PROLOG nicht bei allen Beweisergebnissen
sicher sein auch wirklich alle Lösungen zu einer komplexen Abfrage
erhalten zu haben, da es sein kann, dass der Beweisprozess nach einer vordefinierten,
endlichen Zeit abbrechen muss (falls er nicht zuvor nach einer endlichen
Anzahl von Beweisschritten von selbst terminierte) um nicht unendlich lange
im Beweisprozess gefangen zu sein.
In DATALOG wird der formale Apparat der Horn-Klausen von PROLOG noch
weiter eingeschränkt, sodass das Problem der Nicht-Terminierung ausgeschaltet
wird und echte "set-at-a-time" Abfragen ermöglicht werden. In der
striktesten Form beschränkt man sich auf sogenannte "sichere" Horn-Klausen
(das sind solche ohne Funktionen, Variablen und ohne Negation). In diesem
Fall sind fast alle Axiome die in DATALOG formuliert werden können
auch in die relationale Algebra transformierbar. Einzig rekursive Definitionen
lassen sich nur eingeschränkt transformieren (nämlich nur dann,
wenn auch die relationale Algebra um rekursive Strukturen erweitert wurde).
Es gibt aber auch Versionen von DATALOG wo weniger strikte Einschränkungen
getroffen werden um gewisse Aspekte im Sprachumfang der Prädikatenlogik
erhalten zu können.
4.4. Non-Monotonie:
Ein weiters Problem bei logischen Datenbanken stellt die Veränderung
der axiomatischen Wissensbasis dar. Logische Programme stellen normaler
Weise eine weitgehend statische, weil optimale, Beschreibung der Wirklichkeit
dar. Hat man einmal die richtigen Axiome gefunden, dann lassen sich aus
diesen alle bestehenden Sachverhalte ableiten. Dieses Grundmodell funktioniert
noch recht gut, wenn man es mit einem sehr eingeschränkten Problembereich
zu tun hat. Für eine allgemeinere Weltbeschreibung ist aber die Erstellung
der axiomatischen Wissenbasis nicht ganz so einfach. Somit ist es bei deduktiven
Datenbanken unerlässlich auch nach der ersten Erstellung der Wissensbasis
neues Wissen hinzufügen zu können oder auch bestehendes Wissen
verändern zu können.
Ein logisches System, das unveränderbar und statisch eine bestimmte
Welt beschreibt wird als monoton bezeichnet. Das Gegenteil dazu, also ein
System, bei dem sich mit der Zeit Axiome und auch abgeleitete Fakten verändern
können wird als non-monoton bezeichnet. Da man eine ewig gültige
Beschreibung der Wirklichkeit nur in einer sehr idealisierten Welt finden
wird können, ist also bei deduktiven Datenbanken die Erweiterung auf
eine non-monotone Sichtweise dringend notwendig. Dabei ist es nun von größter
Wichtigkeit, die logische Konsistez der Datenbank, also die Vermeidung
von logischen Widersprüchen, zu garantieren. Was bei relationalen
Datenbanken mittels Integritätsbedingungen gewährleistet wird,
nämlich die Vermeidung von widersprüchlichen und missverständlichen
Fakten, wird bei deduktiven Datenbanken durch Beschränkung auf
bestimmte logische Formen (siehe Beschränkungen in DATALOG weiter
oben),
durch beschränkende Abfragen (was zum Beispiel die genauere Spezifikation
gewisser Individuen betrifft; diese werden nach einer Veränderung
der Wissenbasis durchgeführt und dürfen keine Lösung haben;
wird eine Lösung gefunden, so wird dadurch ein Teil der Wissensbasis
identifiziert, der die Integritätsbedingungen verletzt) und durch
zusätzliche Methoden die non-monotone Veränderungen der
Wissensbasis erlauben, ermöglicht. Kommt es nämlich zu einem
Widerspruch in der Wissensbasis, so lässt sich in weitere Folge jedes
beliebige Faktum, also jede beliebige Abfrage beweisen (wegen Axiom: A
^ ~A -> B), was die Datenbank als nutzlos erscheinen lässt.
Prinzipiell wird bei diesen Methoden entweder versucht die Monotonie
des logischen Systems wieder herzustellen, oder aber in einer Erweiterung
der klassischen Logik, also in einer non-monotonen Logik zu arbeiten, die
trotz (lokaler) Inkonsistenzen eine logische Evaluierung von Sätzen
erlaubt.
Im Folgenden soll die sogenannte "belief revision" exemplarisch
als Methode für die non-monotone Erweiterung einer deduktiven Datenbank
dargestellt werden.
Korrektur von geglaubten Sätzen ("Belief Revision"):
Die sogenannte "belief revision" oder "Korrektur von geglaubten
Sätzen". Dabei werden die logischen Sätze in der Wissenbasis
nicht als ewig-gültige Wahrheiten betrachtet sonden als sogenannte
"beliefs" oder "geglaubte Sätze". Dabei werden gewisse Sätze
stärker geglaubt als andere. Zum Beispiel neu hinzugefügte Sätze
werden mit größter Sicherheit geglaubt, sodass bei der Verletzung
der Konsistenz der Wissensbasis (also bei der Verletzung von Integritätsbedingungen
der Datenbank) durch diese neu hinzugefügten Sätze in der Wissensbasis
andere weniger stark geglaubte Sätze gesucht werden, deren Entfernung
aus dem System die Konsistenz wieder herstellt, bzw. kann auch nach neuen
Sätzen gesucht werden, deren hinzufügen zur Wissensbasis die
Integrität und Konsistenz wieder herstellt.. Dieser Prozess wird als
"belief revision" bezeichnet.
Am Anfang dieser Methode steht die Identifizierung einer Integritätsverletzung
durch eine Abfrage einer Integritätsbedingung. Danach werden anhand
des Beweises die Bestandteile der Wissensbasis identifiziert, die für
die Ermöglichung der Lösung des Beweises maßgebend waren.
Je nachdem ob es sich dabei um negierte oder positive Fakten handelt kann
man dann entweder die doppelt-negierten Fakten, hinzufügen oder die
positiven Sätze aus der Wissensbasis entfernen. Meist gibt es dabei
aber mehrere Lösungen, sodass ein Entscheidungsverfahren notwendig
ist. Dabei werden den unterschiedlichen Sätzen bestimmte Glaubenswerte
(meist als diskrete Zahlenwerte), entweder direkt oder über Glaubens-Relationen,
zugewiesen und dann die Teile der Wissensbasis verändert, die die
geringeren Glaubenswerte aufweisen. Es handelt sich bei diesem Verfahren
also meist um einen halbautomatischen Prozess, bei dem durch Experten bestimmt
wird, welche Anteile der Wissensbasis mehr oder weniger stark geglaubt
werden, danach automatisch mittels Relationen zusätzliche Abhängigkeiten
berücksichtigt werden und Glaubenswerte entsprechend angepasst werden,
und am Ende wieder automatisch aufgrund der Analyse des Beweisverfahrens
der Integritätsverletzung und den festgelegten Glaubenswerten eine
Revision der Wissenbasis vorgenommen wird.
Neben der eben besprochenen Methode gibt es noch eine Vielzahl von Methoden
und Erweiterungen zu deduktiven Datenbanken die mit non-monotonen Ansätzen
umgehen. Hier eine Aufzählung der wichtigsten Gebiete (aus TROST
1996):
-
Modale Ansätze:
-
Mit Modaloperatoren für Konsistenz oder Glauben, werden mehrere mögliche
Welten gebildet, die jeweils konsistent sind.
-
Inferenzregeln (Default Logik):
-
Es werden zusätzliche Inferenzregeln eingeführt, die sich auf
Nichtableitbarkeit
beziehen (siehe ETHERINGTON 1988).
-
Theorie Formation (präferierte Subtheorien, "Assumtion-based Truth
Maintenance"):
-
Fakten + Annahmen bilden eine Theorie.
-
Konditionale Ansätze:
-
Ein binärere Konditionaloperator ("unter der Annahme, dass,...., dann...)
ermöglicht verschiedene Szenarien.
-
Domän-, Prädikat-, Formel-, (Fix-)punktweise priorisiert (Circumscription):
-
Ergänzung einer Formelmenge um Axiomeschemata zur Minimierung von
Extensionen.
Diese Aufzählung ist natürlich unvollständig, da sich gerade
im Bereich non-monotoner Logiken in der Forschung regelmäßig
neue Entwicklungen ergeben (mehr zu diesem Thema in GINSBERG
1987 und GENESERTH & NILSSON 1987).
4.5. Unvollständiges Wissen:
Relationale Datenbankmodelle beruhen auf der Annahme, dass das Modell eine
perfekte Abbildung (möglichst isomorph) der Wirklichkeit darstellt.
Darin darf es keine Ungenauigkeiten oder Unsicherheiten in der Beschreibung
von Sachverhalten geben. Bei deduktiven Datenbanken stellt sich das wesentlich
flexibler dar. So kann man z.B. in einer Datenbanksprache wie DATALOG auch
einen Sachverhalt wie A(a) v B(a) beschreiben, der z.B. aussagen könnte,
dass man weiss, dass eine Person (a) entweder in Wien (A()) oder in Bregenz
(B()) wohnt. Mit weiteren Axiomen könnte dieses "unsichere" oder besser
"unbestimmte" Wissen trotzdem zum Beweis einer Hypothese führen und
somit sein epistemischen Wert im Zuge eines Beweises voll zur Anwendung
kommen. In einer relationalen oder objektorientierten Datenbank ist das
kaum möglich, da dort alle Sachverhalte als mehr oder weniger unverrückbare,
deterministische "Elementarsätze" beschrieben werden und die Abspeicherung
einer Aussage wie "a wohnt in A oder a wohnt in B" durch Integritätsbedingungen
und die fehlende Disjunktion bei der Verknüpfung von Records
verhindert werden würde.
Weiter Ansätze unsicheres Wissen in Datenbanken abzubilden verwenden
meist eine erweiterte logische Sprache wie z.B. probabilistische Modallogiken
oder die sogenannte "Fuzzy Logic". Dabei wird der Wahrheitsgehalt, bzw.
der Beitrag einzelner Prädikate zum Wahrheitsgehalt bestimmter Elementarsätze
(oder Axiome) mittels einer rationalen Funktion mit einem kontinuierlichen
Wertebereich zw. 0 und 1 ermittelt. Dabei handelt es sich aber nicht um
nichtklassische, also z.B. mehrwertige Logiken, sondern nur um intensionale
Erweiterungen der klassischen Prädikatenlogik. Für die endgültige
Festlegung des Wahrheitswertes einer Aussage oder Formel wird von den rationalen
Werten mittels sogenannter "logischer Evaluierungsfunktionen" auf die diskreten
Werte 0 und 1 zurückgerechnet welche den Wahrheitswerten "falsch"
und "wahr' entsprechen. Näheres zur Thematik der probabilistischen
und fuzzy Datenbanken findet sich in ZANIOLI
e.a. 1997 und in RICH & KNIGHT 1991.
©Mag.Dr. Alfred Hofstadler : "Datenbanken und
Wittgenstein: ontologische Vergleiche",Diplomarbeit an der Universität
Wien, März 2001.