Ultima Ratio
Software und interaktive Installation
Daniela Alina Plewe
1997
 
Ultima Ratio ist eine interaktive Installation, die Konflikte aus Leben und Literatur mit Hilfe einer Software inszeniert. Dazu werden die Konflikte und Dilemmas auf logische Formeln reduziert, so daß ein System zur Findung von rationalen Entscheidungen (Decision Support System) aus der Künstliche-Intelligenz-Forschung sie auswerten und mit ihnen schlußfolgern kann.
Alle logischen Abläufe werden in Echtzeit als abtrakte 3D Diagramme visualisiert und auf eine runde Scheibe über den Betrachter projiziert. Die Besucher der interaktiven Installation haben die Wahl zwischen mehreren Funktionen, die unseren Umgang mit Ambivalenz thematisieren – und die Rationalität an die Grenze des unendlichen Zweifels, der Entscheidungslosigkeit und des Wahnsinns bringen.

Ambivalenz

Oft sind es Dilemmas, Paradoxa oder andere Arten von Ambivalenz, denen wir in Kunstwerken begegnen. Aus der Literatur kennen wir den Helden in einer ausweglosen Situation, der seine tragische Entscheidung fällt. Die Software von Ultima Ratio stellt Ambivalenzen und Widersprüche als Argumentationen dar. Dazu werden die verwendeten (natürlichsprachlichen) Argumente formalisiert, d.h. als logische Regeln (wenn dies- und keine Ausnahme-, dann  das) notiert. Wie in einem Disput können die Argumente aneinandergereiht werden, z. B. zu einem Pro- und einem Kontra- Strang, die zu einander widersprechenden Konklusionen führen.


Formalisierte Konflikte

In der Datenbank von Ultima Ratio sind zunächst einige (überwiegend) dramatische Konflikte gespeichert, die das Publikum um neue Argumente, Gegenargumente und Ausnahmen erweitern kann. Damit nicht nur Einträge in der verwendeten Programmiersprache (Prolog, siehe Beispiel) möglich sind, bringt ein internes Übersetzungsprogramm auch einfache natürlichsprachliche Sätze in die logische Form.
Obwohl das  Programm - anders als die klassiche Logik – auch Ausnahmen, unsichere und widersprüchliche Informationen erlaubt, macht das Publikum die mitunter schmerzhafte Erfahrung des Formalisierens wenn es die Datenbank erweitert: die Sicht auf die Dinge (was ist der Konflikt, wie kommt es dazu, was sind versteckte Annahmen, aus denen sich z.B. eine umstrittene Konklusion ableiten läßt) muß „expliziert “, logisch strukturiert und eingegeben werden. Dieser Vorgang der Interpretation, Desambiguierung und Explikation von Intuitionen ist für den hier verwendeten Ansatz von Künstlicher Intelligenz (nämlich auf symbolischer Logik basierend) paradigmatisch, verrät jedoch auch im allgemeinen, wie der Mensch sein Wissen zur Bewältigung des Lebens an die Maschinen vererbt.
Auch wenn die Methoden der Künstliche-Intellgienz-Forschung verwendet werden und zugleich ihr (partielles) Scheitern vorgeführt wird, so steht nicht die Simulation kognitiver Fähigkeiten des Menschens im Zentrum. Die hier verwendete Art der expliziten (und nicht etwa emergenten) Wissensrepräsentation soll den Besucher zur Introspektion und zur Reflektion seiner Methoden und damit seiner Kultur verführen.


Soll Hamlet Claudius töten?

Ja, denn er will sich an Claudius rächen, der seinen Vater ermordet hat. Nein, denn er glaubt, daß jemand, der gerade betet und in diesem Moment getötet wird, in den Himmel kommt. Fakt: Claudius betet. Also nicht töten. Was, wenn Hamlet einen atheistischen Zweifel (Himmel?) in sich hört? Dann doch töten...
Hamlet  Act 3, Scene 3 

Hamlet. [approaches the entry to the lobby] 
Now might I do it pat, now a' is  a-praying - 
    Fact: praying(claudius) 

And now I do 't, [he draws his sword] and so a' goes to heaven, 
    Rule: in_heaven(Y)  <- kills(X,Y), praying (Y) 

And so am I revenged. That would be scanned: 
    Rule: take_revenge_on(X,Y) <- kills(X,Y) 

A villain kills my father, and for that 
    Fact: killed(claudius,king) 

I his sole son do this same villain send To heaven... 
Why, this is bait and salary, not revenge. 
    Rule: - take_revenge_on(X,Y) <- in_heaven(Y) 

X wants to take revenge on Y if Y killed a person Z being close to X, and the killing is not justified. 
    Rule: goal_revenge(X,Y), <- 
                 close(X,Z,), killed(Y,Z), not justified (killed(Y,Z)) 

Hamlet and his father are close to each other. 
    Fact: close(hamlet, king) 

There is a conflict, if somebody wants to take revenge and can't. 
      Conflict: + <- goal_revenge(X,Y), not take_revenge_on(X,Y) 

Hamlet killing Claudius is assumed false, but this may be changed in the mode „remove conflict“. 
      Assumption: revisable(kills(hamlet,claudius),false). 

Entscheiden

Um die Fülle der widersprüchlichen und unsicheren Daten auszuwerten, sind im logischen Kern von Ultima Ratio einige Prinzipien der menschlichen Entscheidungsfindung (als Ableitungsregeln) implementiert :
- sichere Informationen (Fakten) gelten mehr als unsichere (Annahmen )
- angefochtenen Informationen sollen keine Schlußfolgerungen gezogen werden
- angefochtene Informationen sind solche, von denen das Gegenteil bekannt ist
- eine explizite Negation (wissen, dass nicht..) ist bedeutsamer als eine implizite (nicht wissen, dass..).
-  etc.
Entscheidungen fällt das System indirekt, indem es die am wenigsten in Zweifel gezogene  Argumentation ermittelt, die zur beabsichtigten Konklusion führt.


Funktionen

Diese «rationalen Maschine “ bietet die Grundlage für die verschiedenen Funktionen und sog. Dysfunktionen des Programms zwischen denen der User wählen kann. Dabei  sollen sich die Funktionen, ähnlich wie die Farben eines Bildes, gegenseitig – und den Umgang mit Ambivalenz - kommentieren.
Cascades of Doubt - Struggling Agents
rekonstruiert Konflikte aus der Innensicht eines Individuums. Die inneren Monologe der Helden ( in der Logik dargestellt als «Agenten “) werden vorgeführt. Mit change agent können die Benutzer die Charaktere beeinflussen, indem sie die Regeln und Annahmen ändern, von denen der Held ausgeht. Change world verändert die Fakten, aus denen das Programm ableitet, und generiert logische Alternativen zu den Original-Szenarien. Remove conflict liefert Vorschläge, wie manche Konflikte vermieden werden können, indem andere Annahmen über die Welt als wahr gelten.
 
War of Convictions - Arguments as Forces
führt die ziwschen den den Wissenseinheiten (z.B.zwei sich widersprechende Konklusionen) herrschenden Kräfte vor. Der Besucher wählt einen Konflikt aus der Datenbank, das System liefert ihm die dazugehörigen Argumente.
Diese Funktion ist erweiterbar zu einem Multi-Agenten-Szenario, in dem Agenten miteinander verhandeln bzw. Konflikte an streitbare Agenten delegiert werden können.
 
Crossovers - Tracing Motifs
verbindet verschiedene Szenarien durch ihre dramaturgischen Motive. Wenn Regeln in mehreren Kontexten auftreten, stellt das System zwischen ihnen eine Verbindung her und erzeugt synthetische Charaktere. So kann die Rache-Regel von "Hamlet" zu "Medea" führen, wo ebenso wie in „Casablanca “ eine Nebenbuhler-Regel gilt.
 
Dysfunktionale Modes
Nachdem mit diesen Funktionen eine Bildsprache eingeführt worden ist, bei der jedem logischen Schritt ein visuelles Pendant zugeordnet wurde, können nun Bilder geschaffen werden, die über die hier verwendete Logik, d.h. den implementierten Begriff von Rationalität, hinaus gehen und trotzdem eine Art logische Semantik haben.
 
Reasoning Running Wild - Counterarguments forever everywhere
zeigt die Allgegenwart von möglichen Zweifeln. Alle dargestellten Argumentketten werden ins Unendliche verlängert. Hier zeigt die Visualisierung mögliche Gegeneinwände, die nicht in der Datenbasis vorhanden sind.
 
Inversions - Negations with Negations
negiert alle Fakten, Annahmen und Regeln, damit der Besucher die Maschine in einer Welt, die nicht der Fall ist, schlussfolgern lassen kann. (Umfasst das Komplement einer logischen Ableitung auch das Irrationale ? ) Das Ergebnis ist logischer Surrealismus.
 
Modelling Virtues - Modifying Tools of Life
modelliert und variiert Tugenden in der rationalen Maschine, z.B. courage = live wrong; wa szunächst als nicht folgerichtig erscheint, wird nachträglich zum Folgerichtigen. Für Befindlichkeiten wie z.B. despair = navigation in a reluctant environment sorgt die Gestaltung der Interaktion.


Visualisierung

Alle Funtkionen werden mit Hilfe von 3-D Diagramme in einem virtuellen Raum visualisiert. Argumente erscheinen als fragile, abstrakte Gebilde, in denen sich Prämissen und Konklusionen als geometrische Formen aufbauen. Balance, Gravitation und andere Effekte zeigen die Dynamik von Argument und Gegenargument. Dem Schlußfolgern entspricht eine Bewegung durch den virtuellen Raum, wobei der Benutzer entweder dem Autopiloten folgt, oder selbst navigiert.


Interaktive Installation

In der interaktiven Installation tritt der Besucher unter eine große, runde Scheibe, auf die von oben projiziert wird. Ein Eyetracker (oder ein Headtracker) verfolgt die die Bewegungen des Betrachters, und verzerrt die Bilder perspektisch je nach dem Standpunkt des Betrachters.Über Joystick und Tastatur (ersetzbar durch eine akustische Spracherkennung) interagiert der Besucher mit dem System.


Der Weisheit letzter Schluss

Den  Menschen zwingt die Zeit mit ihrer Verpflichtung zu handeln, das Raisonnieren zugunsten einer Entscheidung abzubrechen. Ein Computer-Programm dagegen kann mit der Verfeinerung des Wissens die Ultima Ratio immer weiter treiben....

 
 
 
 
 
Logical Kernel Output
Agent: Hamlet, revengeful, christian 
World: King is dead, Claudius killed king, Hamlet and king are close, Claudius is praying 
Mode of reasoning: Detect conflict

            Voice 1 
                   There is a conflict if 
                   goal_revenge(A,B) and not(take_revenge_on(A,B)) 

            Voice 1 
                   There is a rule 

                   goal_revenge(A,B) if 
                   close(A,C) and killed(B,C) and 
                   not(justified(killed(B,C))) 

            Voice 1 
                   close(hamlet,king) is a fact 

            Voice 1 
                   killed(claudius,king) is a fact 

            Voice 1 
                   I propose that justified(killed(claudius,king)) does 
                   not hold 

            Voice 2 
                   There are no rules for 
                   justified(killed(claudius,king)) 

            Voice 2 
                   I accept that justified(killed(claudius,king)) does not 
                   hold 

            Voice 1 
                   Concluding goal_revenge(hamlet,claudius) from 

                   close(hamlet,king) and killed(claudius,king) and 
                   not(justified(killed(claudius,king))) succeeds 

            Voice 1 
                   I propose that take_revenge_on(hamlet,claudius) 
                   does not hold 

            Voice 2 
                   There is a rule 

                   take_revenge_on(hamlet,claudius) if 
                   kills(hamlet,claudius) and 
                   not(-(take_revenge_on(hamlet,claudius))) 

            Voice 2 
                   kills(hamlet,claudius) is not assumed 
 

             Voice 2 
                   Concluding take_revenge_on(hamlet,claudius) from 

                   kills(hamlet,claudius) and 
                   not(-(take_revenge_on(hamlet,claudius))) fails 

            Voice 2 
                   I accept that take_revenge_on(hamlet,claudius) does 
                   not hold 

            Voice 1 
                   Deriving a conflict from 

                   goal_revenge(hamlet,claudius) and 
                   not(take_revenge_on(hamlet,claudius)) succeeds