Entwicklung eines Metamodells zur Agentenorientierten

Transcrição

Entwicklung eines Metamodells zur Agentenorientierten
Westfälische Wilhelms-Universität Münster
Entwicklung eines Metamodells
zur Agentenorientierten Softwareentwicklung
Masterarbeit
im Fachgebiet Wirtschaftsinformatik
Themensteller:
Prof. Dr. Guido Wirtz
vorgelegt von:
Florian Klein
Steinfurter Straße 18
48149 Münster
Tel. 0251/278682
[email protected]
Abgabetermin:
2003-03-21
– II –
Inhaltsverzeichnis
1 Einleitung ................................................................................................................. 1
1.1 Motivation......................................................................................................... 1
1.2 Ziele.................................................................................................................. 3
1.3 Methodik........................................................................................................... 4
1.4 Aufbau .............................................................................................................. 5
2 Agentenorientierung – eine Bestandsaufnahme......................................................... 6
2.1 Ursprünge der Agentenforschung ...................................................................... 6
2.1.1 Die Erforschung Künstlicher Intelligenz.................................................... 6
2.1.2 Auf der Suche nach neuen Wegen in der Softwareentwicklung ................. 9
2.2 Der Agentenbegriff ......................................................................................... 14
2.3 Agenten in der Theorie.................................................................................... 19
2.3.1 Theorie der Systemebenen ...................................................................... 19
2.3.2 Mentalistische Theorien .......................................................................... 21
2.3.2.1 Rechtfertigung einer mentalistischen Perspektive............................ 21
2.3.2.2 Semantik mentalistischer Modelle................................................... 24
2.3.2.3 Agententheorien.............................................................................. 25
2.3.3 Physikalische Abstützung........................................................................ 28
2.3.4 Agentenkommunikation .......................................................................... 29
2.4 Agenten im Modell ......................................................................................... 33
2.4.1 Referenzmodelle ..................................................................................... 34
2.4.2 Methodologien ........................................................................................ 38
2.4.3 Modellierungssprachen ........................................................................... 43
2.5 Agenten in der Praxis ...................................................................................... 45
2.5.1 Standards ................................................................................................ 45
2.5.1.1 Der MASIF-Standard...................................................................... 46
2.5.1.2 Der FIPA-Standard ......................................................................... 47
2.5.2 Agentenplattformen und Toolkits ............................................................ 50
2.5.3 Agentenbasierte Anwendungen ............................................................... 51
3 Entwurf des Metamodells ....................................................................................... 57
3.1 Modellphilosophie........................................................................................... 57
3.1.1 Modellbegriff .......................................................................................... 57
3.1.2 Agentenbegriff ........................................................................................ 58
3.1.3 Integrationskonzept ................................................................................. 59
3.1.4 Architekturprinzipien .............................................................................. 60
3.1.5 Agententheorie........................................................................................ 62
3.1.6 Systemtheorie ......................................................................................... 65
3.2 Modellstruktur................................................................................................. 66
3.2.1 Physical Layer......................................................................................... 67
3.2.2 Conceptual Layer .................................................................................... 69
– III –
3.3 Modellelemente............................................................................................... 70
3.3.1 Physical Layer......................................................................................... 73
3.3.1.1 Environment Model ........................................................................ 74
3.3.1.2 Entity Model................................................................................... 78
3.3.1.3 Process Model............................................................................... 105
3.3.1.4 Service Model............................................................................... 110
3.3.1.5 Zusammenfassung der Physical Layer........................................... 117
3.3.2 Conceptual Layer .................................................................................. 118
3.3.2.1 Mental Model ............................................................................... 119
3.3.2.2 Behavioral Model ......................................................................... 129
3.3.2.3 Social Model................................................................................. 141
3.3.2.4 Application Model ........................................................................ 158
3.3.2.5 Zusammenfassung der Conceptual Layer ...................................... 167
3.3.3 Zusammenfassung des Gesamtmodells.................................................. 168
4 Studie zur operativen Umsetzung des Metamodells .............................................. 170
4.1 Vorgehensweise ............................................................................................ 171
4.1.1 Verwendete Modellierungsmethode ...................................................... 171
4.1.1.1 Anforderung und Auswahl ............................................................ 171
4.1.1.2 Abstract State Machines................................................................ 172
4.1.1.3 Abstract State Machine Language ................................................. 175
4.1.2 Dekomposition und Strukturierung durch Zwischenziele....................... 177
4.2 Aufbau der Spezifikation............................................................................... 178
4.2.1 Die objektorientierte Cb Laufzeitumgebung ........................................... 179
4.2.1.1 Strukturen ..................................................................................... 179
4.2.1.2 Ausführbare Elemente................................................................... 184
4.2.1.3 Native Klassen .............................................................................. 187
4.2.2 Zur Umsetzung des Metamodells .......................................................... 188
4.3 Erkenntnisse und Kritik ................................................................................. 189
4.3.1 Zur Eignung von AsmL......................................................................... 190
4.3.1.1 Zur Eignung der verfügbaren Werkzeuge ...................................... 190
4.3.1.2 Zur konzeptionellen Eignung der Sprache ..................................... 191
4.3.2 Ausführbare Spezifikationen als Modellierungsmittel............................ 194
5 Fazit und Ausblick................................................................................................ 196
– IV –
Verzeichnis der Modellelemente
Physical Layer............................................................................................................. 73
Environment ........................................................................................................... 76
Entity...................................................................................................................... 83
Agent ............................................................................................................... 88
Agent Shell.................................................................................................... 88
Agent Core.................................................................................................... 88
Item ............................................................................................................... 89
Message ....................................................................................................... 90
Resource ....................................................................................................... 91
Proxy
....................................................................................................... 92
Type
....................................................................................................... 92
Facility............................................................................................................... 93
Percept............................................................................................................... 94
Sensor .................................................................................................................... 96
Visual Sensor ..................................................................................................... 97
Auditive Sensor ................................................................................................. 97
Effector .................................................................................................................. 98
Operative Effector.............................................................................................. 99
Verbal Effector .................................................................................................. 99
Context................................................................................................................. 101
Perceptual Context ........................................................................................... 101
Effective Context ............................................................................................. 102
Process ................................................................................................................. 108
Natural Law ..................................................................................................... 109
Enforcement Process ................................................................................... 109
Mechanism .................................................................................................. 109
Autonomous Process........................................................................................ 110
Service ................................................................................................................. 113
–V–
Conceptual Layer ...................................................................................................... 118
Outlook ................................................................................................................ 120
Statement.............................................................................................................. 121
Inherent Statement ........................................................................................... 122
Cognitive Statement ......................................................................................... 123
Derived Statement............................................................................................ 124
Factual Statement............................................................................................. 124
Modal Statement .............................................................................................. 125
Semantics .................................................................................................... 125
Aim
..................................................................................................... 126
Premeditiaton ....................................................................................................... 127
Agent Personality ................................................................................................. 127
Position ................................................................................................................ 131
Schedule............................................................................................................... 133
Action .................................................................................................................. 133
Physical Effect ................................................................................................. 134
Mental Effect ................................................................................................... 134
Behavior............................................................................................................... 135
Spontaneous Behavior...................................................................................... 136
Conditioned Behavior ...................................................................................... 136
Manifestation ................................................................................................... 137
Deliberation ..................................................................................................... 137
Solitary Behavior ............................................................................................. 138
Interactive Behavior ......................................................................................... 138
Culture ................................................................................................................. 144
Role ...................................................................................................................... 145
Norm .................................................................................................................... 147
Axiom ............................................................................................................. 148
Rule ............................................................................................................. 149
Language.............................................................................................................. 149
Professed Intention ............................................................................................... 152
Explicitly Professed Intention .......................................................................... 153
Implicitly Professed Intention .......................................................................... 153
Assertion.......................................................................................................... 154
Directive .......................................................................................................... 154
Commitment .................................................................................................... 155
Permission ....................................................................................................... 155
Interdiction ...................................................................................................... 156
Declaration ...................................................................................................... 156
Expression ....................................................................................................... 156
Agent.................................................................................................................... 159
Community........................................................................................................... 161
User .................................................................................................................... 162
Purpose................................................................................................................. 163
Mission................................................................................................................. 164
– VI –
Abkürzungsverzeichnis
ABA
ACL
ADT
AEE
AES
AI
A.L.I.C.E.
AMS
AO
AOP
AOSE
ARPA
ASM
AsmL
ATP
ATS
AUML
BDI
BGB
B2B
CORBA
COM
CompTiNE
CPM
C#
dag
DAI
DARPA
DASCh
DCOM
DESIRE
EMS
ePK
ERIM
ERIM CEC
ERM
FIPA
FIPA ACL
HMS
HTTP
IDL
IIS
IRC
JADE
JAFIMA
JFIPA
JVM
Agent-Based Applications
Agent Communication Language
Abstract Data Type
Agent Execution Environment
Agent Execution System
Artificial Intelligence
Artificial Linguistic Internet Computer Entity
Agent Mangagement System
Agent Orientation, Agentenorientierung
Agent Oriented Programming (Modellierungssprache)
Agent Oriented Software Engineering,
Agentenorientierte Softwareentwicklung
Advanced Research Projects Agency
Abstract State Machine
Abstract State Machine Language
Agent Transport Protocol (Aglets Toolkit)
Agent Type System
Agent Unified Modeling Language
Belief – Desire – Intention (Architekturmodell)
Bürgerliches Gesetzbuch
Business to Business
Common Object Request Broker Architecture
Component Object Model
Compile Time Named Entity
Critical Path Method
C Sharp, Programmiersprache im Rahmen von Microsoft .NET
directed acyclic graph (gerichteter azyklischer Graph)
Distributed Artificial Intelligence
Defence Advanced Research Projects Agency
Dynamical Analysis of Supply Chains (Projekt)
(Microsoft) Distributed Component Object Model
Design and Specification of Interacting Reasoning Components
Effector-Medium-Sensor (Modell)
ereignisgesteuerte Prozeßkette
Environmental Research Institute of Michigan
ERIM Center for Electronic Commerce
Entity-Relationship-Model
Foundation for Intelligent Physical Agents
FIPA Agent Communication Language
Holonic Manufacturing System (Industrieprojekt)
Hyper Text Transfer Protocol
Interface Definition Language (CORBA)
(Microsoft) Internet Information Server
Internet Relayed Chat
Java Agent Development Framework
Java Framework for Intelligent and Mobile Agents
Java FIPA (Agentenplattform)
Java Virtual Machine
– VII –
KAoS
KI
KIF
KSE
KQML
LAN
LISP
MAS
MASE
MASIF
NCMS
.NET
NPC
OMG
OO
PERT
PPS
Prolog
P2P
RFC
RMI
RouTiNE
SE
SOAP
SQL
UDDI
UML
UPnP
URL
VM
WAN
WSDL
W3C
XML
Knowledgeable Agent-oriented System
Künstliche Intelligenz
Knowledge Interchange Format
Knowledge Sharing Effort
Knowledge Query and Manipulation Language
Local Area Network
List Processing (Programmiersprache)
Multi-Agent System, Multiagentensystem
(Abweichende Verwendung bei Silva et al.) Mobile Agent System
Multiagent Systems Engineering (Methodologie)
Mobile Agent System Interoperability Facility
National Center for Manufacturing Sciences
dot Net (kein Akronym), Entwicklungsplattform von Microsoft
Non-Player Character
Object Management Group
Object Orientation, Objektorientierung
Program Evaluation and Review Technique
Produktionsplanung und -steuerung
Programming in Logic (Programmiersprache)
Person to Person
Request For Comment (hier: Spezifikationen der Internetprotokolle)
(Java) Remote Method Invocation
Run Time Named Entity
Software Engineering, Softwareentwicklung
Simple Object Access Protocol (XML)
Structured Query Language
Universal Description, Discovery and Integration
Unified Modeling Language
Universal Plug and Play
Uniform Resource Locator
Virtual Machine
Wide Area Network
Web Services Description Language (XML)
World Wide Web Consortium
Extensible Markup Language
– VIII –
Abbildungsverzeichnis
Abbildung 3.1
Abbildung 3.2
Abbildung 3.3
Abbildung 3.4
Abbildung 3.5
Abbildung 3.6
Abbildung 3.7
Abbildung 3.8
Abbildung 3.9
Abbildung 3.10
Abbildung 3.11
Abbildung 3.12
Abbildung 3.13
Abbildung 3.14
Abbildung 3.15
Abbildung 3.16
Abbildung 3.17
Abbildung 3.18
Abbildung 3.19
Abbildung 3.20
Abbildung 3.21
Abbildung 3.22
Abbildung 3.23
Abbildung 4.1
Abbildung 4.2
Abbildung 4.3
Abbildung 4.4
Die Teilmodelle der Physical Layer............................................. 67
Die Teilmodelle der Conceptual Layer ........................................ 69
Wesentliche Elemente eines ERM-Diagramms............................ 72
Elementbeziehungen innerhalb des Environment Model .............. 77
Schematischer Aufbau eines Anwendungssystems ...................... 78
Untergliederung des Begriffs Entity............................................. 82
Grundlegendes Zustandsmodell eines Agenten............................ 86
Schema des Agentenlebenszyklus................................................ 87
Elementbeziehungen innerhalb des Entity Model......................... 94
Interaktion innerhalb des Entity Model ...................................... 102
Ausschnitt eines Entity Model für einen Marktplatz................... 103
Klassendiagramm für den obigen Ausschnitt ............................. 105
Elementbeziehungen innerhalb des Process Model .................... 110
Klassifikationsschema für Services............................................ 112
Übersicht über die wichtigsten Elemente der Physical Layer ..... 117
Elementbeziehungen innerhalb des Mental Model ..................... 128
Elementbeziehungen innerhalb des Behavioral Model ............... 139
Behaviors zweier Agenten in einem PPS-System....................... 141
Elementbeziehungen innerhalb des Social Model ...................... 157
Elementbeziehungen innerhalb des Application Model .............. 165
Definition einer Role auf einem elektronischen Marktplatz........ 166
Übersicht über die wichtigsten Elemente der Conceptual Layer. 167
Zentrale Modellbegriffe und Relationen .................................... 168
Die Interfaces der CompTiNE-Hierarchie ................................. 180
Die Interfaces der RouTiNE-Hierarchie ................................... 182
Ausschnitt aus der Hierarchie der Ausdruckstypen .................... 185
Übersicht über die unterstützten Befehlstypen ........................... 186
–1–
1
1.1
Einleitung
Motivation
Agentenorientierte Ansätze finden gegenwärtig in zahlreichen Bereichen der Informatik
und Softwaretechnik zunehmende Beachtung. Softwareagenten wurden schon vor über
zehn Jahren von zahlreichen Autoren aus den Bereichen der künstlichen Intelligenz und
der Systementwicklung als zukunftsträchtiges Konzept identifiziert (vgl. [Rosenschein/Genesereth 1985], [Shoham 1990], [Wooldridge 1992]), haben jedoch erst vor
dem Hintergrund exogener technischer und sozialer Entwicklungen das gegenwärtige
hohe Maß an Aufmerksamkeit erregt. Das Internet, das seitdem die globale Kommunikation revolutioniert, offene Standards propagiert und Automation, Integration und
Vernetzung im Unternehmensbereich vorangetrieben hat, und der sich aktuell abzeichnende Trend zu mobilen Anwendungen sind dafür verantwortlich, daß Agenten heute
eines der aktivsten und dynamischsten Forschungsgebiete der Informatik darstellen
[Kalenka 2001, S. 12].
Die Agentenmetapher ist ein mächtiges Abstraktionskonzept, dessen Reiz in der
Möglichkeit zur intuitiven Beschreibung komplexen Systemverhaltens liegt [Lind 2000,
S. 1]. Bei seiner Formalisierung stellen seine Eingängigkeit und Vielseitigkeit jedoch ein
wesentliches Hindernis dar. Da das Konzept in den unterschiedlichsten Anwendungskontexten attraktiv ist, ist das Feld von einer starken Heterogenität bezüglich der
Forschungsgegenstände und –ziele geprägt. ‚Agent’ ist dadurch zu einem äußerst
facettenreichen Begriff geworden. Erschwerend kommt hinzu, daß der Begriff eine
starke Faszination auf Medien und Marketingabteilungen ausübt, da er direkt die
weitverbreitete Idealvorstellung eines (mit-)denkenden, intelligenten Computers
[Sundsted 1998a] anspricht. Unrealistische Versprechungen an die Anwender und
übertriebener Optimismus auf Seiten der Entwickler resultieren zwangsläufig in
enttäuschten Erwartungen, die leicht zur Disqualifikation einer Technologie führen
können ([Wooldridge/Jennings 1995, S. 3], [Tveit 2001, S. 2]). Seine inflationäre Anwendung und undifferenzierte Ausdehnung erodiert zudem den Begriff und droht langfristig, ihn zu einem inhaltslosen Modewort (‚Noise Term’) zu machen [Wooldridge/Jennings 1995, S. 4].
–2–
In der Agententheorie als noch jungem Forschungsgebiet existieren noch zahlreiche
teilweise widersprüchliche Grundlagenartikel, die sich um eine Positionsbestimmung
bemühen. Dabei wird häufig diskutiert, ob die Agentenorientierung mit ihren Möglichkeiten und Mängeln ein neues Paradigma der Softwareentwicklung sei. Lind zieht zur
Beantwortung dieser – im Grunde sophistischen – Frage die Definition eines Paradigmas als „[…] theoretisches Gebäude […], in dessen Rahmen Theorien, Gesetze und
Verallgemeinerungen und die Experimente zu ihrer Untermauerung formuliert sind“1
heran [Lind 2000, S. 11], was der Agentenorientierung sicherlich zuzugestehen ist. Den
eigentlichen Kern des Problems trifft aber eher der Duden [Duden 1990b] mit der
Definition als „Denkmuster, das das wissenschaftliche Weltbild, die Weltsicht einer Zeit
prägt“: Kann die Agentenorientierung die Objektorientierung als vorherrschende
Abstraktion verdrängen?2
Jennings hält sie dazu sowohl für geeignet als auch fähig [Jennings 2000, S. 2], räumt aber
ein, daß die Geschichte der Softwareentwicklung reich an brillanten Ideen ist, die es nie
bis in den Mainstream geschafft haben [Jennings 1999, S. 5]. Die Agententechnologie hat
auf dem Weg dorthin noch einen weiten Weg vor sich. Ein Einsatz im professionellen
Bereich erfordert anwenderfreundliche Vorgehensmodelle und solide Werkzeugunterstützung [Tveit 2001, S. 1]. Die Entwicklung geeigneter Werkzeuge wird allerdings nur
dann auf breiter Basis erfolgen, wenn zunächst eine anerkannte Methodologie existiert
[Sycara 1998]. Diese Erkenntnis hat zu einer Schwemme vorgeschlagener Vorgehensmodelle, Modellierungssprachen, Referenzmodelle, Architekturen und Plattformen
geführt. Die daraus resultierenden Probleme, namentlich weitere Fragmentierung, wenig
Wiederverwendung und mehrheitlich im Prototypenstadium stagnierende Projekte,
werden etwa in [Kendall et al. 1998b, S. 1] gewürdigt, nur um im Anschluß mit der
Einführung eines weiteren Referenzmodells beantwortet zu werden [ibid.].
1
“3 : a philosophical and theoretical framework of a scientific school or discipline within which theories,
laws, and generalizations and the experiments performed in support of them are formulated” [Webster
2002b].
2
Eine vergleichbare Interpretation des Begriffs Paradigma findet sich auch bei Kuhn in“The Structure of
Scientific Revolutions“ [Kuhn 1996]. Eine seiner relevanten Beobachtungen in diesem Zusammenhang
ist, daß neue Paradigmen existierende Paradigmen nie schlagartig verdrängen, sondern meist erst von
der nachfolgenden Forschergeneration als kanonisch akzeptiert und allgemein verbreitet werden.
–3–
1.2
Ziele
Welchen Beitrag kann vor diesem Hintergrund das hier vorgeschlagene Metamodell
leisten? Historisch bedingt wird die Agentenforschung von zwei zumeist deutlich
abgegrenzten Strömungen bestimmt: Im akademischen Bereich überwiegt der Anteil der
Autoren mit einem Hintergrund im Bereich der künstlichen Intelligenz (KI), während in
der Praxis evolutionäre Weiterentwicklungen klassischer Softwaretechnik klar dominieren. Der Schwerpunkt liegt im Bereich der KI auf formalen logischen Modellen, die
sich mit der Beschreibung mentaler Zustände ([Rao/Georgeff 1991]), Wissensrepräsentation ([KSE 1995]), Kommunikation ([FIPA C00037], [Viroli/Omicini 2002b]) und Inferenzstrategien beschäftigen, sowie soziologisch gefärbten Betrachtungen über Agentengruppen ([Hogg/Jennings 1997], [Kalenka 2001]). Softwaretechnisch geprägte Forschung
beschäftigt sich mit der Entwicklung praxistauglicher Methodologien ([Brazier et al.
1997], [Wooldridge et al. 2000], [Wood/Deloach 2001]), der Erweiterung objektorientierter Modellierungstechniken ([Bauer et al. 2001], [Lind 2001]) und der praktischen
Umsetzung auf Basis existierender Technologien ([Parunak 2000]). Im kommerziellen
Einsatz ist Infrastruktur eindeutig wichtiger als hochentwickelte Intelligenz [Lawton
1996].
Das Metamodell will zum einen die verschiedenen Sichtweisen in Beziehung setzen und
einen gemeinsamen Bezugsrahmen vorschlagen. Darüber hinaus soll aber auch der
Frage nachgegangen werden, was das verbindende Moment der betrachteten Ansätze
darstellt und die Agentenorientierung im Kern ausmacht. Agentenorientierung wird
dabei primär als abstraktes Prinzip verstanden. Eine objektorientierte Sichtweise wird
von den unterschiedlichsten Sprachen und Laufzeitumgebungen umgesetzt, verwendet,
unterstützt oder zumindest simuliert. Die Ansätze unterscheiden sich zum Teil in
wesentlichen konzeptionellen Punkten fundamental, etwa bei Kapselung, Typensystem,
Vererbungsmechanismen und Speicherverwaltung. Selbst bei Verwendung derselben
Sprache können verschiedene Klassenbibliotheken inkompatible Philosophien umsetzen. Dennoch sind die verwendeten Modellierungstechniken und –prinzipien weitgehend identisch. Mit UML (Unified Modeling Language) [Booch et al. 1998] existiert ein
programmiersprachenunabhängiger Standard zur grafischen Beschreibung objektorientierter Modelle. Entscheidend ist die Verwendung der selben Abstraktion – dem Objekt
als zustandsbehafteter, gekapselter Entität. In diesem Sinne steht das vorgeschlagene
–4–
Metamodell auch nicht in Konkurrenz oder Widerspruch zu existierenden Architekturen
oder Modellierungsmethoden. Sein Abstraktionsgrad erlaubt ihm, unterschiedliche
Methoden einzubinden und alternative Formalismen zuzulassen, da es weder auf eine
spezielle Anwendung oder Architektur abgestimmt ist noch e i n e bestimmte Herangehensweise vorschreiben will. Das Modell ist vom Ansatz her deskriptiv, was jedoch in
keiner Weise einer Beschränkung auf den kleinsten gemeinsamen Nenner gleichkommen soll. Es werden durchaus konkrete Elemente definiert, die eine präzise Beschreibung, Strukturierung und Klassifikation existierender Systeme erlauben sollen. Dies legt
als logischen nächsten Schritt die Entwicklung einer (grafischen) High-LevelSpezifikationssprache auf Basis des Modells nahe, deren Ziel ultimativ wäre, ein
eingängiges, vielseitiges, weitgehend neutrales Ausdrucksmittel im Stile von UML zu
bieten.
1.3
Methodik
Am Anfang der Entwicklung eines Metamodells zur Agentenorientierung muß die
Frage nach dem Verständnis des Agentenbegriffs stehen, das darin zum Ausdruck
kommen soll. Wie läßt sich Agentenorientierung abgrenzen? Welche Ansätze und
Anwendungen sollen erfaßt werden, welche nicht?
Diese Fragen können nur vor dem Hintergrund der existierenden Literatur beantwortet
werden. Ein Metamodell, das den Anspruch erhebt, eine breite Auswahl an Architekturen und Methoden adäquat beschreiben zu können, kann nicht auf rein ideeller Ebene
formuliert werden, sondern muß sich aus der Analyse seines Betrachtungsgegenstandes
ableiten. Daher wird zunächst eine Literaturanalyse vorgenommen, wobei die beiden
Strömungen der Agentenforschung gleichermaßen beachtet werden sollen.
Die Agentenorientierung ist nicht nur selbst ein äußerst aktives Forschungsgebiet,
sondern hat auch von ihren beiden Mutterdisziplinen eine umfangreiche Literatur
geerbt. Eine umfassende Darstellung aller einschlägigen Theorien, Modelle und
Architekturen würde den Umfang dieser Arbeit daher bei weitem sprengen. Der
Schwerpunkt der Betrachtung soll auf den grundlegenden Theorien zur Formalisierung
des Agentenbegriffs liegen. Um eine solide Fundierung in der etablierten Agententheorie zu garantieren, wird versucht, aus dem Gesamtbestand der Literatur die vorherrschenden Lehrmeinungen herauszufiltern. In Vorbereitung des Modellierungsprozesses
–5–
werden diese kurz rezipiert. Ferner werden, ohne jeglichen Anspruch auf Vollständigkeit zu erheben, einige konkrete Architekturen und Anwendungsgebiete betrachtet, um
den praktischen Bezug des Metamodells zu sichern. Die einzelnen Theorien und
Konzepte werden zueinander in Beziehung gesetzt und fallweise um Anmerkungen und
eine Beurteilung bezüglich ihrer Relevanz für das Metamodell ergänzt.
Die Literaturanalyse soll primär deskriptiv sein und hält sich mit Festlegungen zurück.
Sie soll auch keine taxonomische Einteilung der Ansätze vorschlagen – schließlich ist
eines der Ziele, die am Ende des Modells stehen, einen entsprechenden Bezugsrahmen
erst zu schaffen.
Der Versuch einer Synthese der Teilsichten bleibt daher dem Entwurf des Metamodells
vorbehalten. Die Darlegung seiner Grundprinzipien kann somit gleichzeitig als Fazit der
vorhergehenden Studie verstanden werden.
1.4
Aufbau
Im folgenden Abschnitt werden zunächst die Diskussion um das Selbstverständnis der
Agentenorientierung und den Agentenbegriff kurz summiert. Anschließend werden
ausgewählte Theorien, Methoden und Architekturen beschrieben. Zur Abrundung der
Darstellung werden einige beispielhafte agentenbasierte Anwendungen angeführt.
Der dritte Abschnitt der Arbeit beginnt mit der Erläuterung der Philosophie und des
groben Aufbaus des mehrschichtigen Metamodells. Dann werden ebenenweise die
einzelnen Elemente und Prozesse eingeführt und in Strukturmodellen miteinander in
Beziehung gesetzt. Parallel werden dabei jeweils ausgewählte Modellkonzepte anhand
von konkreten Beispielen veranschaulicht.
Im vierten Abschnitt wird schließlich die Möglichkeit einer Umsetzung des Strukturmodells in ein operatives Modell sondiert. Dabei wird insbesondere auf die diesbezügliche Eignung von Abstract State Machines (ASM) eingegangen (vgl. [Gurevich 2000],
[Börger 1999], [Huggins 2003]).
Abschließend werden die Ergebnisse kurz zusammengefaßt und Vorschläge zur
weiteren Entwicklung des Modells formuliert.
–6–
2
2.1
Agentenorientierung – eine Bestandsaufnahme
Ursprünge der Agentenforschung
Zu Beginn der Betrachtung soll eine historische Perspektive gewählt werden, um die im
Anschluß vorgestellten Theorien, Modelle und Anwendungen vor dem Hintergrund des
Kontextes, in dem sie entwickelt worden sind, beurteilen zu können. Obwohl sich die
meisten Ideen weiterhin den Bereichen KI-Forschung oder Softwareentwicklung
zuordnen lassen [Wooldridge et al. 2000, S. 22], ist diese Differenzierung allein unzureichend. Die beiden Zweige der Agentenforschung umfassen selbst wieder zahlreiche
Unterströmungen, die sich gegenseitig berührt, beeinflußt und vermischt haben. Je mehr
sich die Agentenorientierung zudem als eigenes Forschungsgebiet etabliert, wird wohl
auch die beschriebene Dichotomie an Bedeutung verlieren – im Bereich Multiagentensysteme (MAS), dem zentralen Thema der Disziplin, verwischen die Grenzen schon
jetzt. Dennoch lohnt es sich, kurz einen genaueren Blick auf die Wurzeln der modernen
Agentenforschung zu werfen.
2.1.1 Die Erforschung Künstlicher Intelligenz
Als Geburtsstunde der modernen KI-Forschung wird allgemein die DartmouthKonferenz (1956) mit Pionieren wie Minsky, McCarthy, Newell und Simon angesehen
[Schneider/Voß 2001]. Ähnlich wie die Agentenforschung hat die KI mit einem fundamentalen Begriffsproblem zu kämpfen: Was ist künstliche Intelligenz? Minsky definierte Künstliche Intelligenz als „die Wissenschaft, Maschinen Dinge tun zu lassen, die
Intelligenz erforderten, wenn sie von einem Menschen getan würden.“3 Diese Definition
wirft sofort eine neue Frage auf: Was ist ü b e r ha u p t Intelligenz?4 Verschiedene Antworten haben zu fundamental unterschiedlichen Ansätzen geführt. Russell und Norvig
3
4
Im Original: “Artificial Intelligence is the science of making machines do things that would require
intelligence if done by men.“ [Minsky 1968].
Eine Antwort fällt umso schwerer, als die technische Entwicklung selbst das Begriffsverständnis
verändert hat: Durch die Erfindung des Computers wurde etwa die Fähigkeit zur Durchführung
mathematischer Berechnungen, vorher als herausragende Leistung des menschlichen Intellekts betrachtet, entwertet [Kalenka 2001, S. 21].
–7–
[Russell/Norvig 1995] schlagen deren Klassifikation gemäß vier genereller Herangehensweisen vor: menschlich denken (think humanly), menschlich handeln (act humanly), rational denken (think rationally) und rational handeln (act rationally).
Die ersten Arbeiten zielten darauf ab, menschliche Denkprozesse nachzubilden. Ziel
war ein ‚universeller Problemlöser’. Der Ansatz gilt heute als gescheitert, zumal unser
Verständnis des menschlichen Intellekts immer noch äußerst begrenzt ist [Atkinson et al.
2000, S. 192, S. 305ff]. Die Debatte, ob prinzipiell auf der Grundlage heutiger Rechnerarchitekturen Intelligenz auf menschlichem Niveau emulierbar ist (Strong AIHypothese) oder nicht5 (Weak AI-Hypothese), lebt aber weiterhin fort, gerade auch im
Zusammenhang mit Agententechnologien.
Parallel wurde von Anfang an das verwandte Ziel möglichst menschlichen Verhaltens
verfolgt. Der Ansatz hatte für das Feld zwar keine zentrale Bedeutung, dafür aber
naturgemäß eine enorme Außenwirkung.6 Heute lebt er vor allem in Wettbewerben
[Loebner 2001] zum Bestehen des umstrittenen [Shieber 1994] Turing-Tests fort. Bei der
Erforschung innovativer Techniken für Benutzerschnittstellen hat er allerdings eine
Renaissance in Gestalt sprechender Büroklammern [Microsoft 2001] und vergleichbarer
‚anthropomorpher’ Agenten erlebt.
Die KI-Forschung litt darunter, daß reale Erfolge immer im Schatten übertriebener
Erwartungen standen [Schneider/Voß 2001, S. 7]. Nach dem Verfliegen der ersten
Euphorie folgte eine Periode der Konsolidierung und der Erforschung der Grundlagen
rationalen Denkens. Die Rückführung auf ideale Regeln (Syllogismen) sollte zu
optimalen Problemlösungen führen [Kalenka 2001, S. 26]. Der Ansatz steht in der
Tradition der klassischen Logik. Aufbauend auf den Arbeiten von Boole [Boole 1847]
und Frege ([Cleve/Lämmel 2001], [Frege 1879]) zur Aussagenlogik entstand die Prädika-
5
Die Gegner der Hypothese behaupten, Computer könnten menschliches Verhalten bestenfalls nachbilden (Syntaktische Ebene), ohne aber jemals ein Bewußtsein oder echtes Verständnis zu entwickeln
(Semantische Ebene) (vgl. etwa [Gams 1995]). Das bekannteste Argument zur Unterstützung dieser
Behauptung ist die 1980 von Searle formulierte Chinese Room-Analogie [Searle 1980]. Die Debatte
wird mit Vehemenz geführt, vergleiche [Bringsjord 1997]: ‚Strong AI Is Simply Silly’.
6
Diesbezügliche Werke der Science Fiction wie der sprechende, denkende Computer HAL 9000 aus dem
Film 2001: A Space Odyssey (1968) haben das öffentliche Verständnis von KI bis heute nachhaltig
geprägt.
–8–
tenlogik mit den zugehörigen Inferenzstrategien und Notationen zur Wissensrepräsentation. Die entwickelten Formalismen prägen die Agententheorie noch heute. Formallogische Ansätze haben allerdings mit theoretischen Grenzen der Berechenbarkeit und
Verifizierbarkeit, wie sie etwa durch Gödels Unvollständigkeitstheorem [Gödel 1931]
formuliert wurden, zu kämpfen. Die ‚klassische KI’ ist dennoch erfolgreich bei der
Lösung komplexer Probleme, die sich in einen abstrakten Kontext stellen lassen, wobei
die Existenz geeigneter Heuristiken zur effizienten Durchforstung des Suchraums von
zentraler Bedeutung ist. In der Praxis sind Entscheidungen jedoch oft in eingeschränkter
Zeit und auf Grundlage unvollständiger Daten zu treffen, was rein formale Modelle vor
Probleme stellt.7
Der Ansatz des ‚rationalen Handelns’ arbeitet daher primär ergebnisorientiert. Im Sinne
einer behavioristischen Perspektive wird die Intelligenz eines Programms nur nach
seinem Verhalten (in Form von Interaktion mit seiner Umwelt), nicht nach seinen
Entscheidungsprozessen, beurteilt. Welches Verhalten rational ist, wird dabei in
Unkenntnis der optimalen Lösung empirisch anhand von Erfolgsquoten definiert. Im
Rahmen des Ansatzes wurden zum einen neue empirische Verfahren vorgeschlagen,
etwa ‚naturanaloge’ Heuristiken wie neuronale Netze oder genetische Algorithmen.
Zum anderen entwickelte sich ein Trend zur größeren Spezialisierung, generische
Konzepte mit umfassendem Anspruch traten in den Hintergrund. Zudem hatten
praktische Erfolge, etwa im Bereich Expertensysteme, die Bedeutung domänenspezifischen Wissens und seiner effizienten Erfassung unterstrichen.
Ende der siebziger Jahre entstand als neue Disziplin die verteilte Künstliche Intelligenz
(DAI), die sich mit der Aufgabendistribution und Koordination bei verteilten Problemlösungsstrategien beschäftigt [Kalenka 2001, S. 29]. Konkrete Konzepte zur Modellierung entsprechender Systeme schlugen später z. B. Brooks mit der Subsumption
Architecture [Brooks 1986] und Kaelbling mit den Situated Automata [Kaelbling 1986] vor.
In der Folgezeit setzte sich dann für das Konzept der ‚rational handelnden Programme’
7
Das aus dem 14 Jhd. stammende Bild von Buridans Esel [Meyers 1987], der zwischen zwei gleichermaßen attraktiven Heuhaufen verhungert, da keine ‚hinreichende kausale Grundlage’ für eine Entscheidung zuungunsten eines der beiden existiert, illustriert dieses Problem recht treffend.
–9–
verbreitet die Bezeichnung ‚intelligente Agenten’ durch. Der Begriff war bezüglich der
Frage nach starker oder schwacher KI im Grunde wertneutral. Jedoch beruhten viele
Konzepte gerade auf der Idee, ein System aus einfacheren Agenten aufzubauen.
Agenten wurden daher primär als Bausteine von Multiagentensystemen mit eingeschränkter individueller Intelligenz gesehen. Damit einher ging ein Paradigmenwechsel:
die ‚nouvelle AI’ [Brooks 1990, S. 10] löst ‚einfache’ Probleme in komplexer Umgebung. Angemessenster praktischer Benchmark ist nicht mehr die Fähigkeit zum Schach, sondern zum Fußballspielen [Kitano et al. 1997].
Bezüglich der Strategie zur Koordination von Multiagentensystemen existieren
gegenwärtig zwei Schulen [Kalenka 2001, S. 16]: Reduktionismus und Konstruktionismus. Erstere modelliert ‚top-down’, ausgehend vom Gesamtziel, homogene Systeme
‚gutwilliger’ Agenten, was zu sehr komplexen Modellen führen kann. Letztere beginnt
mit der Modellierung individueller Agenten, die eine egoistische Nutzenmaximierung
verfolgen, und setzt sie anschließend zu einem heterogenen System zusammen, was
chaotisches Verhalten nach sich ziehen kann. Einen wichtigen Teilaspekt stellt dabei in
beiden Fällen das ‚Sozialverhalten’ der Agenten dar. Der Social Simulation Approach
[Castelfranchi 1990] versucht in diesem Zusammenhang, Erkenntnisse der Sozialwissenschaften auf Agentensysteme zu übertragen. So werden etwa Agenten mit einem
‚sozialen Gewissen’ vorgeschlagen [Kalenka/Jennings 1995]. Eine verbreitet verwendete
Analogie sind aus der Makroökonomik entlehnte Marktmodelle [Excelente-Toledo et al.
2001].
2.1.2 Auf der Suche nach neuen Wegen in der Softwareentwicklung
Wie auch in anderen Wissenschaftszweigen ist in der Informatik die Frage, wie gut ihre
theoretischen Konzepte und Formalismen bei der Anwendung auf Probleme realistischen Umfangs skalieren, von großer praktischer Bedeutung. Wesentlich ist dabei oft
weniger, o b sich ein System mit einem bestimmten Formalismus beschreiben läßt, als
– 10 –
ob es sich in z w e c k m ä ß i g e r Weise beschreiben läßt.8 Diese Überlegung hat in der
Geschichte zur Einführung jeweils höherer Abstraktionsebenen geführt, wann immer
die verfügbaren Abstraktionsmittel für eine bestimmte Problemklasse nicht mehr
ausreichend erschienen.
In [Wegner 1997] stellt Wegner die kontrovers diskutierte These auf, daß interaktive
Systeme prinzipiell nicht mehr algorithmisch beschreibbar sind.9 Schon die formalen
Grundlagen der Objektorientierung seien unklar, was ihrem Erfolg jedoch nicht
hinderlich gewesen wäre. Die entscheidendere (und unstrittigere) Erkenntnis aus seiner
Argumentation scheint mit Hinblick auf die Softwareentwicklung eher, daß rein
algorithmische Spezifikationen nicht das vorteilhafteste Ausdrucksmittel zur Darstellung komplexer Systeme sind.
Hewitt hat schon 1977 angeregt, daß der Kontrollfluß bei der Ausführung eines
Programms sich auch im Sinne einer ‚Konversation zwischen Experten’ als Muster des
Nachrichtenaustausches zwischen verschiedenen Actors interpretieren lasse [Hewitt
1977]. Der Artikel markiert einen der Ursprünge der verteilten KI; die Actors, atomare
Paare aus einer Berechnungsvorschrift und einer Liste von Acquaintances, haben aus
heutiger Sicht allerdings mehr Ähnlichkeit mit Objekten als mit Agenten. Da für jede
elementare Rechenoperation jeweils ein entsprechender Actor definiert sein muß,
entspricht das Actor-Modell in seinem Abstraktionsgrad eher einem streng objektorientierten System und ist als Grundlage eines agentenorientierten Ansatzes unzureichend
[Wooldridge/Jennings 1998, S. 5]. Die Idee, Systemverhalten über die Interaktion aktiver
Elemente zu definieren, hat es aber bereits erfolgreich formalisiert.
8
9
Ein umfangreiches Komponentensystem besteht im kompilierten Zustand nur noch aus
Maschinensprachecode. Somit läßt es sich offensichtlich auch direkt in Maschinensprache spezifizieren
– ein solches Ansinnen wäre nur alles andere als praktikabel.
Wegner argumentiert plausibel, daß eine a d ä q u a t e Darstellung realer Computersysteme Ein- und
Ausgabebeziehungen einbeziehen müsse [Wegner 1997, S. 1f]. Weiterhin behauptet er allerdings, daß
Interaktionsmaschinen mächtiger als Turingmaschinen seien und damit den akzeptierten Berechenbarkeitsbegriff sowie die Churchsche These in Frage stellen [ibid., S. 2f]. Als formalen Beleg für die
Irreduzierbarkeit von Interaktionsmaschinen auf Turingmaschinen führt er dabei die Aussage an, die
Eingabeströme ersterer ließen sich nicht auf e n d l i c h e n Bändern ausdrücken [ibid., S. 3]. – Eine Kritik
der zugrundeliegenden Interpretation der Churchschen These findet sich in [Copeland 2002]. Für eine
umfassende Kritik an Wegners Ansatz siehe [Prasse/Rittgen 1998].
– 11 –
Komponentenbasierte Systeme mit ihrer viel gröberen Granularität bieten hingegen
Actors mit einem ausreichend hohen Abstraktionsgrad, so daß die interaktionszentrische
Sichtweise tatsächlich einen Vorteil bei der Modellierung des Systems verspricht. Erst
mit der Verbreitung solcher Systeme begann daher das Agentenkonzept allmählich, in
der Softwareentwicklung Fuß zu fassen. Insoweit verwundert es nicht, daß die meisten
praktischen Anwendungen auf entsprechenden Technologien wie Java RMI [Sun
2001], CORBA [OMG 2002] oder COM [Williams/Kindel 1994] basieren (vgl. etwa [IKV
1998], [OMG 1998] oder [Parunak 2000]).
Agentenorientierung: Anspruch…
Welche Signifikanz hat Agentenorientierung als Konzept der Softwareentwicklung?
Was kann sie leisten, was nicht? Ovum bezeichnet Agentenorientierung als ‚neue
Revolution im Softwarebereich’10 [Ovum 1994]. Von der Mehrheit der Autoren wird
Agentenorientierung jedoch nicht als radikaler Bruch mit etablierten objektorientierten
Technologien, sondern als deren evolutionäre Fortentwicklung betrachtet (vgl. z.B.
[Jennings 1999, S. 6], [Shoham 1993]). Kernzielsetzung bleibt die effiziente Entwicklung
preiswerter, wartbarer Software [Tveit 2001, S. 2]. Oft werden Analogien zwischen
objekt- und agentenorientierten Modellelementen sogar explizit angeführt und Entsprechungspaare, etwa ‚Agent’ – ‚Objekt’ oder ‚Rolle’ – ‚Interface’, definiert (vgl. etwa
[Lind 2000, S. 6]). Auch beim Ansatz zur Reduzierung der Systemkomplexität bietet die
Agentenorientierung nichts prinzipiell Neues: Wie in klassischen Komponentenmodellen wird ein modulares, strukturiertes System von Subsystemen entworfen. Drei
Techniken spielen dabei eine Schlüsselrolle: Dekomposition, Abstraktion und Organisation [Booch 1994]. Jennings identifiziert in diesem Zusammenhang drei Schwachpunkte
objektorientierter Ansätze: übermäßig feinkörnige Bausteine, zu rigide Festlegung der
Interaktionsmuster und unzureichende Handhabung von Organisationsstrukturen.
[Jennings 1999, S. 1]. Agenten bieten dagegen eine natürliche Zerlegung gemäß einer
mehrstufigen Zielhierarchie. Die zielorientierten Bausteine kommunizieren nicht auf der
(imperativen) Systemebene, sondern flexibel auf der Wissensebene. Entsprechend der
10
Im Original: ‚a new revolution in software’ [Ovum 1994].
– 12 –
Natur realer Systeme ist der Kontrollfluß dezentral organisiert ([ibid., S. 3f], siehe auch
[Meyer 1997]). Abstraktion wird durch größere semantische Nähe zwischen den
Modellkonstrukten und den Elementen der Problemdomäne erleichtert [ibid., S. 4].
Organisatorische Beziehungen zählen zu den Grundelementen agentenbasierter Systeme
und sind daher transparent und flexibel manipulierbar [ibid., S. 4f]. Dadurch soll
Agentenorientierung zu fehlertoleranteren Anwendungen mit wartbarerem, intuitiverem
Code führen und eine inkrementelle Konstruktion des Systems erleichtern – nur schwer
quantifizierbare, aber durchaus signifikante Vorteile. Andere Autoren sehen in Agenten
vor allem das Potential zur flexiblen, spontanen Interaktion auch über Systemgrenzen
hinaus. Durch Kapselung in Agenten soll das Schnittstellenproblem klassischer
Softwaresysteme gelöst werden [Russell/Norvig 1995]. Im Zusammenhang mit verteilten
und mobilen Anwendungen werden Agenten auch als technisches Konzept für robuste
und ressourcensparende Transaktionen über ein Netzwerk diskutiert. Eine Analyse der
IBM Research Division [Harrison 1995] erkennt zwar im Vergleich mit konventionellen
Techniken in keinem Teilbereich für sich genommen zwingende Vorteile, attestiert dem
Gesamtkonzept auf Grund von Synergien jedoch erhebliches Potential.
… und Realität
Der Einsatz neuer Technologien birgt jedoch auch Risiken. So kann die Ausdruckskraft
und konzeptionelle Eleganz des agentenorientierten Ansatzes leicht dazu verleiten, ihn
als Allheilmittel einsetzen zu wollen. Wooldridge und Jennings stellen in [Wooldridge/Jennings 1998] politische, analytische und technische Fehler in Verbindung mit dem
Einsatz von Agententechnologien übersichtlich dar. Unabhängig vom konkreten
Anwendungsfall ist Agentenorientierung mit inhärenten konzeptionellen Problemen
behaftet. Nichttriviale, praxisbezogene Softwaresysteme zählen zu den komplexesten
von Menschen hervorgebrachten Konstrukten [Jennings 1999, S. 1]. Das Maß an
Komplexität wird dabei nicht durch die Modellierungsmethode bestimmt, sondern
wohnt ihnen unmittelbar inne11 [Brooks 1995]. Effiziente Modellierungstechniken
können Komplexität nur verlagern und verstecken, nicht beseitigen. Die Agentenmeta-
11
Brooks bezeichnet dieses Phänomen als ’the essential complexity of software’ [Brooks 1995].
– 13 –
pher bezieht ihr Potential aus ihrem hohen, über das Objektkonzept hinausgehenden
Abstraktionsgrad. Während Objekte nur ihren inneren Zustand kapseln, findet bei
Agenten zusätzlich eine Kapselung von Verhalten und Entscheidungsprozessen statt,
wodurch zunächst Komplexität verborgen wird. Gleichzeitig wird allerdings strukturelle
Komplexität in prozessuale Komplexität in Form von nichtdeterministischen Interaktionsmustern umgewandelt und damit auf die Systemebene verlagert. Deutlich illustriert
wird dies durch Simulationswerkzeuge, einem naheliegenden und in der Praxis populären (vgl. etwa [Parunak 2000, S. 396f]) Einsatzgebiet von Agententechnologie. Bei der
Beschreibung von Systemen, die nicht mehr durch ein monolithisches Simulationsmodell erfaßbar sind, werden die aktiven Komponenten intuitiv durch von vergleichbar
einfachen Regeln gesteuerte Agenten repräsentiert, deren Zusammenspiel dann in
potentiell chaotischem Systemverhalten resultiert. Dieses Prinzip wird eindrücklich
durch zelluläre Automaten [Wolfram 1983] illustriert. Die Erhaltung der Komplexität
des simulierten Systems ist dabei erklärtes Ziel – das simulierende System bleibt im
gleichen Maße chaotisch. Über letzteres lassen sich somit a priori keine Aussagen
treffen, die nicht auch aus dem simulierten System ersichtlich sind. In allen anderen
Gebieten der Softwareentwicklung ist dieser Effekt hingegen hochgradig unerwünscht,
da die garantierte Einhaltung kritischer Spezifikationen für die meisten Anwendungen
essentiell ist. Der neuralgische Punkt ist, ob sich zur Koordination der autonomen
Agenten robuste, hinreichend einfache Regeln finden lassen, die das gewünschte
Systemverhalten garantieren. Da Agentensysteme aber oft nicht auf der Systemebene,
sondern auf der Komponentenebene (‚bottom-up’) konzipiert werden, wird das Ausbalancieren dieser Regeln leicht ein müheseliger, iterativer Prozeß [Jennings 1999, S. 6].
Auch die in die Fähigkeit der Agenten zur Interoperabilität gesetzten Hoffnungen
bleiben bislang unerfüllt. Die Systemlandschaft ist extrem fragmentiert – es existiert
eine schier unendliche Anzahl weitgehend inkompatibler akademischer und kommerzieller Agentenplattformen. Verschiedene Konsortien haben Standards vorgeschlagen,
um zumindest auf der infrastrukturellen Ebene (Migration/Kommunikation) die
wesentlichen Hindernisse auszuräumen. Zu nennen sind hier besonders der MASIFStandard [OMG 1998] der OMG (Object Management Group) [OMG] und der FIPAStandard [FIPA C00001] der FIPA (Foundation for Intelligent Physical Agents) [FIPA].
Unabhängig von deren Erfolg existiert allerdings ein tiefgreifendes konzeptionelles
Problem. Die für Agenten charakteristische Kommunikation auf der Wissensebene
– 14 –
erfolgt im Allgemeinen durch den Austausch von Nachrichten, die die Form von
Sprechakten (‚Speech Acts’) haben [Wooldridge/Jennings 1995, S. 20]. Deren Semantik
wird zwar in Form einer ‚Agent Communication Language’ (ACL) formal spezifiziert;
in einem heterogenen Umfeld garantiert dies jedoch selbst bei Verwendung der gleichen
ACL kein gegenseitiges Verständnis. Während Sprache von den Sozialwissenschaften
als soziales Konstrukt interpretiert wird, konstruieren aktuelle ACL-Definitionen
Sprache aus der Perspektive der Individuen, was zur Entstehung von Idiolekten und
‚autistischen’ Systemen führt [Singh 1998a, S. 46].
Im Netzwerkbereich sind der Mangel einer standardisierten Infrastruktur und Sicherheitsbedenken die größten Hemmschuhe bei der Einführung der Technologie. Da in
diesem Bereich bislang die ‚erfolgreichsten’ und prominentesten autonomen Agenten
viraler Natur sind12, dürfte auf Seiten der Serverbetreiber die Bereitschaft, Benutzer
personalisierte Agenten serverseitig ausführen zulassen, tendenziell verhalten sein
[Harrison 1995, S. 14].
2.2
Der Agentenbegriff
Bei der Annäherung an den Agentenbegriff wird mit Blick auf seine Entstehungsgeschichte unmittelbar klar, daß sich keine umfassende und dabei gleichzeitig präzise und
trennscharfe Definition finden lassen wird. Jeder Definitionsversuch geht bei der
Abwägung dieser beiden Ziele zwangsläufig einen Kompromiß ein. Die Gewichtung
hängt letztendlich vom Anspruch der Definition ab, weswegen sie in ihrem Entstehungskontext gesehen werden sollte. Ein vermeintlich allgemeingültiges Entscheidungskriterium wird sich der Kritik der davon Ausgeschlossenen stellen müssen,
während in einem operativen Kontext, etwa im Rahmen der Erstellung einer formalen
Methode oder einer Agentenplattform, eine stark einschränkende Sichtweise absolut
legitim ist.
12
Die Erfolge diverser ‚Agenten’ ([CERT 2001a], [CERT 2001b], [Moore et al. 2003]) auf Microsoft‚Plattformen’ (IIS, SQL-Server) zeigen zum einen das (Gefahren-)Potential der Technologie, unterstreichen zum anderen aber auch die entscheidende Rolle einer standardisierten Infrastruktur für einen
Erfolg dieser Größenordnung.
– 15 –
In theoretischen Betrachtungen zum Selbstverständnis der Agentenorientierung wird
oftmals vor allem eine Abgrenzung von der ‚klassischen’ Softwareentwicklung
angestrebt, wobei meist eine Reihe für Agenten charakteristischer Eigenschaften
definiert wird. In einem vielbeachteten Artikel stellen Franklin und Graesser zur Klärung
der Frage „Agent oder bloß Programm?“ [Franklin/Graesser 1997] verschiedene
Definitionen einander gegenüber und destillieren die in ihren Augen wesentlichsten
Charakteristika heraus, wobei allerdings kaum auf den Hintergrund der jeweiligen
Vorschläge eingegangen wird. Nicht zuletzt deswegen bleibt die Antwort unbefriedigend, so daß die von ihnen entwickelte Definition13 nicht entscheidend zu einer
abschließenden Begriffsklärung beitragen konnte ([Wooldridge 1997b], [Kalenka 2001, S.
34]).
Gemein ist allen Perspektiven lediglich die etymologisch motivierte Sicht eines Agenten
(von lat.: agens, handelnd) als handelnde Entität. Gemäß der allgemeinsprachlichen
Verwendung des Begriffs („Agent: Gesandter, Handlungsreisender“ [Duden 1990a]14)
wird oft, gerade im Zusammenhang mit ‚persönlichen’ Agenten, die für ihre Benutzer
Arbeiten übernehmen, noch der (als formales Kriterium unkritische) Aspekt des
s t e l l v e r t r e t e n d e n Handelns angeführt.
In der KI-Forschung wird zunächst die Beziehung des Agenten zu seiner Umwelt
betont. Die Definition als ‚System, das seine Umwelt durch Sensoren wahrnimmt und
durch Effektoren verändert’ [Russell/Norvig 1995, S. 33] wird durch die Idee des
‚rationalen Handelns’ quasi impliziert. Dabei wird diese Umwelt oft zusätzlich als
dynamisch [Hayes-Roth 1995, S. 108] und komplex [Maes 1995] qualifiziert, was auf die
Fähigkeit zu adaptivem und flexiblem Verhalten hindeuten soll. Im Zusammenhang mit
Robotern (zur Kontrastierung mit rein virtuellen Software Agents häufig als Physical
Agents bezeichnet) ist das Sensoren-Effektoren-Modell offensichtlich mehr als nur eine
Abstraktion.
13
“An autonomous agent is a system situated within and a part of an environment that senses that
environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in
the future.” [Franklin/Graesser 1997].
14
Entsprechend auf Englisch: „agent: (4) one who is authorized to act for or in the place of another”
[Webster 2002a].
– 16 –
Die Betrachtung des Agenten als gekapseltes System mit Ein- und Ausgabebeziehungen
setzt voraus, daß diese systemintern bestimmt sind, weswegen die Bezeichnung als
‚autonom’ in diesem Sinne unstrittig ist. Technisch wird diese Sicht oft durch die
Modellierung in einem eigenen Prozeß oder Thread ausgedrückt. Autonomie ist jedoch
immer ein relativer Begriff, der etwa auch auf einer inhaltlichen Ebene interpretiert
wird, was auf eine Gleichsetzung von autonomem Verhalten mit (potentiellem)
Nichtdeterminismus hinausläuft.
Weiterhin erfordert Handeln, daß ein Agent zumindest entweder auf externe Stimuli
reagiert oder aus eigener Initiative tätig wird. Proaktives Verhalten muß in irgendeiner
Form motiviert sein, was auf die verbreitete Charakterisierung von Agenten als
‚zielorientierte Systeme’ führt. Diese Sichtweise findet sich etwa bei Wooldridge in der
populären15 Definition eines Agenten als „gekapseltes Computersystem, das in einer
Umgebung befindlich und in dieser Umgebung zu flexiblem, autonomen Handeln zum
Erreichen seiner Entwurfsziele befähigt ist“16 [Wooldridge 1997a]. Vor dem Hintergrund
der Entwicklungsgeschichte der KI ist verständlich, warum von einigen Autoren aus der
Zielorientierung abgeleitet wird, Agenten müßten problem- bzw. domänenspezifisch
sein (etwa [Repenning 1993]). Eine eher technische Konsequenz ist die Forderung nach
Persistenz [Smith et al. 1994], die für eine längerfristige Zielverfolgung notwendig
erscheint.
Die Zielorientierung ist auch der Ansatzpunkt der klassischen (‚rational denken’) KI,
deren Agentenbegriff eine mentalistische Sicht impliziert: Der Agent kann anhand
seiner Ziele und daraus abgeleiteten Absichten beschrieben werden. Er teilt dabei die
Merkmale eines klassischen wissensbasierten Systems, d.h. er verfügt über einen
Wissensschatz, auf dessen Grundlage er zu logischen Schlußfolgerungen in der Lage ist.
Formal läßt sich seine Essenz durch eine Logik und eine Menge geeigneter Prädikate
ausdrücken.
15
16
[Jennings 1999, S. 2].
Im Original: „An agent is an encapsulated computer system that is situated in some environment, and
that is capable of flexible, autonomous action in that environment in order to meet its design objectives” [Wooldridge 1997a].
– 17 –
Die verteilte KI behält dieses Konzept meist prinzipiell bei, legt aber naturgemäß den
Schwerpunkt auf die soziale Interaktion zwischen Agenten. Ihre sozialen Fähigkeiten
zum Dialog, Verhandeln und Koordinieren [Coen 1995] werden vielfach als definierende Elemente eines ‚sozialen Agentenbegriffs’ gesehen. Da das Konzept der sozialen
Interaktion auf die Kommunikation mit menschlichen Benutzern erweiterbar ist, kann es
prinzipiell auch Systeme aus einem einzelnen Agenten erfassen.
Diese soziale Interaktion mit dem Benutzer steht bei der Verwendung von Agenten als
Instrument zur Implementierung intuitiver Benutzerschnittstellen im Mittelpunkt.
Entsprechende Interface-Agenten oder persönliche Assistenten stehen nicht im prinzipiellen Widerspruch zu den bisherigen Konzepten, bilden aufgrund der sehr spezifischen
an sie gestellten Anforderungen aber dennoch eine Klasse für sich. Die Erfüllung der
Erwartungen des Benutzers ist das entscheidende Erfolgskriterium, besonders, wenn der
Benutzer dem Agenten kritische Aufgaben anvertrauen soll. Von besonderer Bedeutung
sind dabei eine klare, präzise Kommunikation, anwendungsspezifische Eignung und
intelligente Handhabung von deren Grenzen (‚graceful degradation’, wie bei Expertensystemen). Foner stellt in [Foner 1993, S. 35f] eine ausführliche Liste wesentlicher
Anforderungen zusammen.
Diese letzten Punkte zielen bereits weniger auf die Frage, was die Essenz des Agentenbegriffs ausmacht, sondern eher darauf, wie er zu präzisieren ist, um in einem bestimmten Kontext sinnvoll anwendbar zu sein. In derselben Kategorie sind auch andere, in
vielen Fällen durchaus nützliche Anforderungen anzusiedeln. Die Forderung nach
Aufrichtigkeit, Gutwilligkeit und rationalem Verhalten [Wooldridge/Jennings 1995, S. 6]
ist etwa im Kontext geschlossener Systeme sozialer Agenten vernünftig, als allgemeines
Prinzip jedoch zu einschränkend.
Als letzte zentrale Eigenschaft wird Mobilität, die Fähigkeit zur Relozierung des
Agenten zur Laufzeit, angeführt ([Sundsted 1998b], [Lawton 1996]). Dies ist eng mit der
Sicht von Agenten als zukunftsweisende Netzwerktechnologie [Harrison 1995, S. 1]
verknüpft. Mobilität ist sicherlich keine allgemeine Eigenschaft von Agenten; da sie
jedoch ein weitgehend unabhängiges Konzept darstellt, wird sie im allgemeinen einfach
als charakteristische Eigenschaft der speziellen Klasse der mobilen Agenten (Mobile
Agents) gesehen.
– 18 –
In der Softwaretechnik wird vor allem der Gedanke der Autonomie aufgegriffen. Odell
bezeichnet Agenten als „Objects that can say ‘go’ and ‘no’” [Odell 1999]. Lind
beschreibt Agenten als evolutionäre Fortentwicklung: Objekte führten Funktionen und
Daten zusammen und verwalten dadurch ihren internen Zustand selbst. Agenten
vereinen Objekte mit Ressourcen wie etwa Rechenzeit und gewinnen dadurch Kontrolle
über ihre internen Prozesse [Lind 2000, S. 10].
Diese Betrachtungen unterstreichen zwar einerseits die Vielfältigkeit des Agentenbegriffs, zeigen aber andererseits auch, daß die verschiedenen Interpretationen nicht
unbedingt unvereinbar sein müssen, sondern nur unterschiedliche Weiterentwicklungen
eines gemeinsamen, allein lediglich noch zu unspezifischen Grundkonzeptes sind. Unter
Anerkennung dieser Prämisse wird deutlich, daß vielleicht weniger eine endgültige
Definition des Agentenbegriffs vonnöten ist, als vielmehr eine verbindliche Terminologie für die einzelnen Teilkonzepte, die es erlauben würde, das einem Konzept zugrundeliegende Agentenverständnis knapp und allgemein verständlich zu definieren. Solche
Definitionen könnten etwa die Form des von Jennings und Wooldridge in Anlehnung an
die Unterscheidung zwischen schwacher und starker KI eingeführten ‚starken’ und
‚schwachen Agentenbegriffs’ (strong/weak notion of agency) [Wooldridge/Jennings
1995, S. 5f] annehmen. Die schwache Interpretation17 umfaßt Autonomie, Proaktivität,
Reaktivität und soziale Interaktion, die starke Interpretation fügt dem eine mentalistische Sicht und die Fähigkeit zu logischen Folgerungen hinzu.
Abschließend sollte nicht vergessen werden, daß „der Agentenbegriff vor allem ein
Werkzeug zur Systemanalyse sein soll, nicht eine verbindliche Beschreibung, die die
Welt in Agenten und Nicht-Agenten unterteilt“18 [Russell/Norvig 1995, S. 33]. In Industrieprojekten dominiert eine rein pragmatische Verwendung des Agentenbegriffs
[Parunak 2000, S. 393ff]. Lind schlägt hierfür die Bezeichnung ‚sehr schwacher Agentenbegriff’ (very weak notion of agency) vor: Agent ist alles, worauf sich diese Abstraktion
aus Sicht des Entwicklers sinnvoll anwenden läßt [Lind 2000, S. 4]. Wie theoretische
17
18
Im Original: ‘autonomy’, ‘proactivity’, ‘reactivity’,’ sociability’ [Wooldridge/Jennings 1995, S. 5].
Im Original: „The notion of an agent is meant to be a tool for analyzing systems, not an absolute
characterization that divides the world into agents and non-agents.” [Russell/Norvig 1995, S. 33].
– 19 –
Konzepte in der Praxis verwendet werden, hängt ohnehin weniger von ihrer abstrakten
Definition als von den eingesetzten Methodologien und Werkzeugen ab – ob dabei das
Ergebnis eigentlich ‚nur’19 ein Programm ist, ist am Ende unerheblich. 20
Auf Basis dieser Betrachtungen wird im Rahmen des Modellentwurfs21 eine Arbeitsdefinition entwickelt werden, wobei besonders die letzten beiden Gedanken, eine pragmatische Begriffsverwendung und eine um einen generischen Kern herum modular
aufgebaute Definition, Einfluß finden.
2.3
Agenten in der Theorie
2.3.1 Theorie der Systemebenen
Die Theorie der Systemebenen (Computer System Level Paradigm) formalisiert das
Prinzip aufeinander aufbauender Abstraktionsgrade zur Beschreibung von Computersystemen. Die Ebenen sollen jeweils in sich geschlossen, gleichzeitig aber durch die
Mittel der nächstniedrigeren Ebene ausdrückbar sein. Für jede Ebene werden die
Gesichtspunkte System (der Gegenstand der Betrachtung), Components (die aktiven
Elemente des Systems), Medium (die vom System verarbeiteten Elemente), Compositional Laws (Regeln für den Aufbau des Systems) und Behavioural Laws (Regeln über
das Zusammenspiel der aktiven Elemente) festgelegt.
Das Grundmodell sieht die Ebenen Device Level (Physikalische Ebene, Medium sind
Elektronen, kontrolliert durch die Naturgesetze), Circuit Level (Schaltkreisebene,
argumentiert in Spannungspotentialen), Logic Level (Interpretation der Spannungen als
“Is it an Agent, or just a Program?” [Franklin/Graesser 1997].
Diese Interpretation ist nicht zwangsläufig ‚unwissenschaftlich’. Kuhn legt unter Berufung auf
Wittgenstein dar, wie natürlichsprachige Begriffsklassen nicht durch eine Auswahl von Eigenschaften
definiert sind, die von allen ihren Elementen notwendigerweise geteilt werden muß, sondern durch die
fallweise Beurteilung der ‚Familienähnlichkeit’ zwischen einer unbekannten Instanz und den bereits
anerkannten Vertretern der Begriffsklasse. In ähnlicher Weise werde oft ein Paradigma von den
Mitgliedern eines Forschungszweiges erfolgreich und einvernehmlich verwendet, obwohl keine
allgemein anerkannte formale Definition existiert [Kuhn 1996, S. 44ff].
21
Siehe Abschnitt 3.1.2, S. 58.
19
20
– 20 –
Wahrheitswerte, boolesche Logik auf Bitebene) und Symbol Level (Symbolebene,
formuliert aus symbolischen Ausdrücken Programme) vor. [Kalenka 2001, S. 91ff]
Die Theorie formalisiert im Grunde nur das bereits beschriebene intuitive Prinzip, zur
Modellierung eines Systems den jeweils zweckmäßigsten Formalismus zu benutzen,
expliziert aber die wichtige Anforderung, daß ausreichend präzise Regeln bezüglich der
Abstützung einer Abstraktion auf die darunterliegende Ebene existieren müssen, um sie
darauf zurückführen zu können.
Die Wissensebene
Im Zuge der Entwicklung wissensbasierter Systeme erschien die Symbolebene nicht
mehr ausreichend. Newell [Newell1982] schlug daher 1982 die Einführung einer
‚Wissensebene’ (Knowledge Level) vor, die es erlauben sollte, in Zielen und Fakten zu
argumentieren. An die Stelle des Programms mit seinen Ausdrücken, Abarbeitungsfolgen und Strukturen tritt als neues System der Agent. Components sind seine Ziele und
möglichen Handlungen (Goals und Actions). Medium ist Wissen (Knowledge), wobei
Ziele und Handlungen eine besondere Form von Wissen darstellen. Compositional Laws
werden nicht definiert. Behavioural Law ist das Rationalitätsprinzip (Principle of
Rationality). Dieses besagt, daß ein Agent, wenn er Wissen darüber besitzt, daß eine
Handlung zum Ereichen seiner Ziele führt, diese Handlung auswählen wird. Seine
Hauptaufgabe ist es, alle Elemente der Ebene in Beziehung zueinander zu setzen. Als
operatives Prinzip ist es, etwa in Bezug auf Konflikte, zu unspezifisch. Bei der Abstützung auf die Symbolebene wird es daher durch den ‚Problemlösungsprozeß in seiner
Gesamtheit’ umgesetzt. Wissen und Handlungen werden in entsprechenden Daten- und
Programmstrukturen abgebildet.
Die Soziale Ebene
Auf der Wissensebene aufbauend konstruieren Jennings und Campos [Jennings/Campos,
1997] mit Blick auf Multiagentensysteme eine noch höhere Abstraktion, die ‚Soziale
Ebene’. Das betrachtete System ist nun eine Organisation von Agenten. Auf dieser
Ebene sind die Components ganze Agenten und ihre Kommunikationskanäle. Compositional Laws sind Rollen und Beziehungen, die die Agenten annehmen und eingehen,
und die Regeln, die dies kontrollieren. Behavioural Laws bestimmen den Verhaltensko-
– 21 –
dex, nach dem die individuellen Ziele mit den Zielen des Systems ausbalanciert werden.
Medium ist das soziale Wissen der Agenten über ihre Mitagenten, Einflußmöglichkeiten, Rechte und Pflichten. Die neue Perspektive soll es ermöglichen, das Verhalten des
Agentensystems zu erfassen, ohne sich mit den Implementierungsdetails der einzelnen
Agenten auseinander setzen zu müssen [Jennings 1999, S. 7]. Das Interesse von Jennings
und Campos gilt dabei besonders dem Gleichgewicht zwischen individuellen und
gemeinschaftlichen Interessen. Abhängig von den Auswirkungen auf die Gemeinschaft
und den ausführenden Agenten unterscheiden sie zwischen gemeinnützigen (alle
profitieren), egoistischen, selbstlosen und sinnlosen (alle verlieren) Handlungen [Kalenka
2001, S. 101]. Auf dieser Basis definieren sie das ‚soziale Rationalitätsprinzip’ (Principle of Social Rationality), das besagt, daß ein Agent eine Handlung ausführen wird,
wenn ihr gesellschaftlicher Gesamtnutzen positiv ist. Kalenka kritisiert dabei, daß diese
Definition nicht wie behauptet allen Typen von Agentensystemen gerecht werde,
sondern implizit sozial verantwortliche Agenten voraussetze [Kalenka 2001, S. 102].
Die beiden vorgeschlagenen Ebenen bieten einen nützlichen Ansatz zur groben
Strukturierung des Metamodells. Gerade die entscheidende – bei abstrakten Konzepten
der KI immer besonders sensible – Abstützung auf eine niedrigere Ebene wird von
Jennings und Campos jedoch ausgespart.
2.3.2 Mentalistische Theorien
2.3.2.1 Rechtfertigung einer mentalistischen Perspektive
Mentalistische Theorien beschäftigen sich mit der Anwendung von originär in Verbindung mit dem menschlichen Geist definierten Begriffen auf künstliche Systeme. Sie
haben in der KI-Forschung eine lange Tradition. Newells Wissensebene, indem sie mit
Wissen und Zielen von Agenten argumentiert, ist im Grunde ein solches mentalistisches
Konzept. Damit ist ihre Motivation bereits etabliert: Es geht darum, die Abstraktionsebene der Programmierung hinter sich zu lassen.
McCarthy argumentiert in [McCarthy 1979], warum es sinnvoll sein kann, Maschinen
Absichten, Überzeugungen, Willen, Wissen, Fähigkeiten oder Bedürfnisse zuzuschreiben. Der Grund ist für ihn epistemologischer Natur: die Verwendung dieser Konzepte
– 22 –
erlaubt uns, Erkenntnisse zu gewinnen, die uns sonst aufgrund unserer eingeschränkten
Auffassungsgabe verwehrt blieben.22 Dies konkretisiert er in sechs auf KI-Programme
bezogenen Begründungen [ibid., S. 5], die aber im Grunde ganz allgemein die Vorteile
eines Formalismus zur abstrakten Modellierung herausstellen:
1. Der Quellcode eines Programms spezifiziert primär Abläufe, der Zustand zu einem
bestimmten Zeitpunkt ist nicht direkt ablesbar. Eine abstraktere Begriffswelt erleichtert es, seinen Zustand zu verfolgen und verständlich zu beschreiben.
2. Selbst wo eine Simulation technisch oder praktisch nicht möglich ist, können
abstrakte Konzepte eine ‚manuelle’ bzw. mentale Simulation kritischer Aspekte
zulassen.
3. Argumentation auf einer abstrakteren Ebene ermöglicht generelle Aussagen, die
nicht durch eine endliche Anzahl von Simulationsläufen gewonnen werden können.
4. Programme werden leichter verständlich, weil Implementierungsdetails wegfallen.
5. Die abstrakten Konzepte können bei der Analyse und Wartung hilfreich sein, da mit
ihrer Hilfe auf das Konzept, das der Entwickler im Kopf hatte, geschlossen werden
kann.
6. Programme lassen sich auf der Ebene abstrakter Strukturen effizienter vergleichen.
Für intelligente Agenten bieten sich mentalistische Begriffe als eine solche Abstraktion
aus verschiedenen Gründen an. Das Hauptargument ist, daß Menschen bereits daran
gewöhnt sind, im alltäglichen Umgang miteinander ständig subjektive Annahmen über
die Absichten anderer zu formulieren, um deren Verhalten zu verstehen und vorauszusagen. Daher dürfte eine Übertragung auf Agenten den meisten Menschen natürlich und
intuitiv verständlich erscheinen – sofern der Sinngehalt des Begriffs bei der Übertragung erhalten bleibt [ibid., S. 1]. Verallgemeinernd belegt Dennett solche Akteure, deren
Verhalten sich durch die Zuschreibung von Annahmen und Absichten (Intentional
Notions) vorhersagen läßt, mit der Bezeichnung Intentional System [Dennett 1987, S.
49]. Ein solches System besitzt eine ‚Geisteshaltung’ (Intentional Stance).
22
Dies ist letztlich eine erkenntnistheoretische Umformulierung des bereits mehrfach erwähnten Prinzips
der Zweckmäßigkeit von Modellierungsmethoden.
– 23 –
Für das Verständnis von Systemen höherer Ordnung, etwa Agenten, die bei der Lösung
eines Problems ihre eigenen Wissensdefizite analysieren sollen und somit Metawissen
(Wissen ü b e r Wissen) benötigen, erscheint eine mentalistische Interpretation fast
unvermeidlich, da schließlich dem Agenten selbst ein zumindest primitives Wissenskonzept mitgegeben werden muß [McCarthy 1979, S. 2]. Nichtsdestotrotz betont
McCarthy, daß die Zuschreibung mentalistischer Attribute kein komplexes ‚mentales’
System erfordert. Er empfiehlt, die Anwendbarkeit eines konkreten Konzepts konservativ, die generelle Anwendbarkeit mentalistischer Konzepte auf ein Objekt aber großzügig zu beurteilen [ibid.]. Das Objekt selbst muß keinerlei intrinsische mentale Qualitäten
besitzen.23 Dies illustriert er durch die mentalistische Modellierung eines Thermostaten
unter Verwendung von Annahmen („Es ist zu warm/kalt.“) und Absichten („Es soll die
eingestellte Temperatur erreicht werden!“) [ibid., S. 14]. Shoham hält dem allerdings
entgegen, daß mentalistische Konzepte in Fällen, in denen ein rein mechanistisches
Verständnis zur Analyse ausreichen würde, keinerlei zusätzlichen Nutzen stiften
[Shoham 1990, S. 6].
Das Konzept der Wissensebene besagt, daß sich ein System vollständig auf dieser
Ebene beschreiben läßt. McCarthy merkt hingegen an, daß Beschreibungen auf einer
mentalistischen Ebene immer zu unvollständigen Systemen führen, die für sich
genommen – selbst unter der Annahme einer streng deterministischen Implementierung
auf der nächstniedrigen Ebene – keine vollständige Voraussage ihres Verhaltens
zulassen [McCarthy 1979, S. 6].
Zudem bleibt das Problem, die genaue Bedeutung der einzelnen Konzepte zu formalisieren.
23
Interessant ist in diesem Zusammenhang ein Artikel von Searle [Searle 1990]. Er kritisiert darin die
Annahme der kognitiven Psychologie, Bewußtseinsprozesse durch eine Interpretation des menschlichen
Gehirns als komplexe Rechenmaschine erklärbar machen zu können. Dabei würde gemeinhin verdrängt,
daß syntaktische und semantische Beschreibungen nur Konstrukt und dem Gehirn physiologisch
gesehen nicht intrinsisch seien. Insoweit wäre per se die Verwendung mentalistischer Konzepte auf ein
Agentensystem oder einen Thermostaten in keinem geringeren Maße gerechtfertigt als für das Gehirn!
– 24 –
2.3.2.2 Semantik mentalistischer Modelle
Eine solche Formalisierung wirft erhebliche Probleme auf. Zum einen sind die zugrundeliegenden umgangssprachlichen Begriffe unscharf definiert. Wann hat etwa ein Agent
ein Ereignis vorsätzlich verursacht? McCarthy illustriert die Schwierigkeiten einer
logisch präzisen Antwort am Beispiel der durchaus plausiblen Definition „Ein Agent hat
ein Ereignis vorsätzlich verursacht, wenn es nicht eingetreten wäre, wenn seine
Absichten anders gewesen wären.“ In der realen Welt existiert aber kein kartesisches
Produkt, so daß keine Aussage darüber gemacht werden kann, was ceteris paribus in
diesem Falle geschehen wäre. [McCarthy 1979, S. 8]
Weiterhin scheitert der Versuch, mentale Begriffe unmittelbar mit den Mitteln der
klassischen Logik zu beschreiben. Boolesche Logik arbeitet in Kategorien, mentale
Einstellungen sind nicht substituierbare Instanzen. Ist eine Aussage wahr, sind alle
äquivalenten Aussagen wahr. Glaubt jemand eine Aussage, glaubt er nicht zwangsläufig
alle inhaltlich gleichwertigen Aussagen.
Der erfolgreichste Ansatz sind die Possible Worlds Semantics (vgl. [Wooldridge/Jennings
1995, S. 12ff] für eine ausführliche und formale Einführung), die von Hintikka [Hintikka
1962] vorgeschlagen und von Kripke [Kripke 1963] axiomatisch formuliert worden sind.
Die Annahmen eines Agenten werden dabei als eine Menge möglicher Welten beschrieben. Eine mögliche Welt ist ein Zustand, der durch das verfügbare Wissen nicht
ausgeschlossen wird. Ein Grund für die Beliebtheit dieses Ansatzes ist, daß er hinsichtlich der Akquisition und Repräsentation des Wissens neutral ist. Formal beschrieben
wird er durch eine um die dualen Operatoren notwendigerweise ( ) und möglicherweise
(◊) erweiterte klassische Logik. Diese Operatoren beschreiben den Wahrheitsgehalt
einer Aussage in den möglichen Welten: w e i ß ein Agent Aussage ‚A’, so ist A
notwendigerweise in allen Welten wahr, weiß er dagegen nicht, daß A falsch ist, wird A
in einigen der möglichen Welten, also möglicherweise, wahr sein. Mit Hilfe der
Operatoren werden fünf Axiome definiert, die den Umgang mit Annahmen und Wissen
ermöglichen: Aus Wissen kann durch Implikation neues Wissen gewonnen werden
(Axiom K), das Wissen eines Agenten ist konsistent bzw. frei von Widersprüchen
(Axiom D), was gewußt (im Gegensatz zu nur geglaubt) wird, ist auch wahr (Axiom T,
knowledge axiom), der Agent weiß, was er weiß (Axiom 4, positive introspection
axiom), und der Agent weiß, was er nicht weiß (Axiom 5, negative introspection axiom).
– 25 –
Das weitreichende Axiom 5 wird nicht allgemein als Element der Definition von Wissen
akzeptiert. Die größten praktischen Probleme bereitet allerdings das elementare Axiom
K, da es zusammen mit der ebenfalls unverzichtbaren necessitation rule (jede gültige
Formel ist auch notwendigerweise gültig) impliziert, daß der Agent a l l e logischen
Konsequenzen seiner Annahmen ebenfalls annimmt, was den Horizont jedes realen
Agenten übersteigen dürfte (Logical Omniscience Problem). Dessen ungeachtet bildet
das Modell die Grundlage zahlreicher Agententheorien und der Spezifikation der
meisten Agentenkommunikationssprachen.
2.3.2.3 Agententheorien
Eine Agententheorie versucht, die ‚mentale Haltung’ eines Agenten in Attribute zu
fassen und diese miteinander strukturell und dynamisch in Beziehung zu setzen. Die
Liste der vorgeschlagenen Attribute umfaßt unter anderem Ziele, Bedürfnisse, Annahmen, Wissen, Handlungen, Wahlmöglichkeiten, Fähigkeiten, Beziehungen und Interaktionen.
Bratman [Bratman 1987] hat erstmals die besondere Bedeutung von Annahmen, Zielen
und Absichten herausgestellt und damit die Klasse der BDI (Belief-Desire24-Intention)
Theorien begründet. Die Verwendung der Possible Worlds Semantics zu ihrer Definition wirft allerdings ein schwieriges Problem auf: Axiom K impliziert, daß Agenten auch
alle Konsequenzen ihrer Absichten, also auch unerwünschte Nebeneffekte, beabsichtigen müssen.
Cohen und Levesque
Cohen und Levesque [Cohen/Levesque 1990] haben diesen Ansatz weiterentwickelt,
indem sie auf den Grundbegriffen Ziel und Annahme ein System abgeleiteter mentaler
Konstrukte aufstellen. Ein persistentes Ziel (Persistent Goal) ist etwa eine Aussage, von
der der Agent nicht glaubt, daß sie momentan wahr ist (Zielaspekt), und an der er
solange festhält, bis er glaubt, daß sie entweder wahr ist oder niemals wahr werden kann
24
Desire wird in diesem Zusammenhang als zu Goal äquivalenter Begriff verwendet.
– 26 –
(Persistenzaspekt). Eine Absicht (Intention) ist ein darauf aufbauendes Konstrukt: Wenn
der Agent sich in einer Situation befindet, in der er glaubt, eine Handlung ausführen zu
werden, ein persistentes Ziel hatte, diese Situation herbeizuführen und die Handlung
tatsächlich ausführt, dann lag eine Absicht vor. Neben dieser esoterisch anmutenden
Definition formulieren sie jedoch auch einen konkreten Absichtsbegriff, den sie mit
sieben Anforderungen an rationale Agenten illustrieren:
1. Absichten setzen Agenten Ziele, die es zu realisieren gilt.
2. Absichten führen zur Bildung neuer, zwingend nicht konfliktierender Absichten.
3. Agenten registrieren Erfolge und wiederholen gemeinhin gescheiterte Aktionen.
4. Agenten glauben, daß die Realisierung ihrer Absichten möglich ist.
5. Agenten glauben nicht, daß sie ihre Absichten nicht realisieren werden.
6. In gewissen Situationen glauben Agenten, daß sie ihre Absichten umsetzen werden.
7. Agenten müssen nicht unbedingt alle Seiteneffekte ihrer Absichten beabsichtigen.
Dieser Absichtsbegriff soll dem durch die vorgeschlagene Logik etablierten äquivalent
sein.
Rao und Georgeff
Inbegriff des BDI-Konzepts ist heute die von Rao und Georgeff in [Rao/Georgeff 1991]
vorgeschlagene alternative Theorie. Neben Annahmen und Zielen führen sie Absichten
direkt als Primitiv ein, da sie sich davon vielfältigere Anwendbarkeit, eine präzisere
Abgrenzung zwischen endogen (Entscheidung) und exogen (Handlungskonsequenz)
bestimmten Entwicklungen und eine Lösung für das Problem der unerwünschten
Seiteneffekte versprechen [ibid., S. 1].
Ihre Logik beruht auf dem Konzept des Zeitbaums (Time Tree). Zu jedem Zeitpunkt
existiert genau eine Vergangenheit, aber mehrere mögliche zukünftige Zustände. Jeder
Knoten beschreibt einen Zustand (Situation), jede Kante ein Ereignis (Event). Einzelne
Kanten können damit als Handlungen des Agenten, Pfade als Pläne oder Abläufe
verstanden werden. Die von einem Knoten abgehenden Kanten repräsentieren gleichzeitig die Wahlmöglichkeiten eines Agenten. Erfolg ist nicht impliziert – hat eine Hand-
– 27 –
lung mehrere mögliche Konsequenzen, etwa Erfolg und Scheitern, werden diese durch
getrennte Kanten modelliert.
Annahmen, Ziele und Absichten in einer Situation werden wiederum durch Possible
Worlds Semantics beschrieben. Dabei wird aber jede mögliche Welt durch einen
eigenen Zeitbaum, also eine strukturierte Menge von Zuständen, beschrieben. Ein in
einem solchen möglichen Zeitbaum erreichbarer Zustand heißt, je nach Typ des Baums,
belief-, goal- oder intention-accessible. Der angestrebte Zustand (Zielbaum) muß dabei
nicht vollständig den entsprechenden erwarteten Zustand beschreiben (Annahmenbaum), so daß als unvermeidlich anerkannte, aber unerwünschte Konsequenzen nicht
automatisch zu Zielen werden. Umkehrt gilt allerdings das Prinzip des starken Realismus: Jeder Zielbaum muß im entsprechenden Annahmenbaum enthalten sein, so daß die
Erreichung der Ziele nicht nur für nicht unmöglich gehalten wird (schwacher Realismus), sondern sogar ein konkreter Pfad zu jedem erreichbaren Zielzustand existiert. Der
Absichtenbaum ist wiederum im Zielbaum enthalten; beabsichtigte Zustände (Absichtenbaum) sind angestrebte Zustände, zu deren unmittelbaren Erreichung sich der Agent
verpflichtet hat.
Das vorgestellte Konzept ist elegant, erfordert allerdings eine komplexe modale Logik,
die auf Pfaden und Zuständen arbeitet. Neben den aus der temporalen Logik übernommenen Operatoren next, eventually, always und until führt diese noch die zusätzlichen
Pfadoperatoren inevitable (unvermeidbare Konsequenz) und optional (mögliche
Konsequenz) ein.25 Die Logik mit allen ihren Implikationen ist noch nicht erschöpfend
erforscht, jedoch ist absehbar, daß das Problem der formalen Verifikation von Modellen, schon in der klassischen Logik NP-vollständig, mit den verfügbaren Mitteln nicht
handhabbar ist (für eine ausführliche Analyse vgl. [Wooldridge 1998]).
Jennings und Wooldridge regen an, Agententheorien als Spezifikationen und ihre
logischen Formalismen als Spezifikationssprachen zu interpretieren, da zum einen viele
ihrer Probleme von klassischen Spezifikationssprachen her bekannt sind und zum
anderen ihre Nützlichkeit sich so durch ihre Ausdrucksfähigkeit in einem gegebenen
25
Im Grunde können die Operatoren als Allquantor und Existenzquantor für erreichbare Zustände
verstanden werden.
– 28 –
Kontext unmittelbar bewerten läßt [Wooldridge/Jennings 1995, S. 22]. In Anbetracht
ihres mathematisch-formalen Charakters und der hohen logischen Komplexität der
meisten vorgeschlagenen Theorien scheint aber ihre Anwendung als Spezifikationssprache durch die breite Masse der Softwareentwickler noch in weiter Ferne zu liegen.
2.3.3 Physikalische Abstützung
Verfechter einer ‚schwächeren’ KI lehnen nicht nur mentalistische Methoden, sondern
die Verwendung symbolischer Logik generell ab. Brooks [Brooks 1990] argumentiert,
daß ein solcher Ansatz fundamental ungeeignet sei, um Agenten mit ‚pragmatischer’
Intelligenz zu konstruieren, die sich in realistischen Szenarien behaupten können.
Eines der grundlegendsten von der frühen KI-Forschung etablierten Konzepte ist die
Hypothese, daß Intelligenz durch ein System von Symbolen realisiert wird. Denken
wird damit zur kontextfreien Manipulation von Symbolen gemäß prinzipieller Regeln.26
Als Folge dieser Sicht ergibt sich, daß die Objekte der realen Welt im Modell durch
abgegrenzte, benannte Symbole repräsentiert werden müssen. Diese Symbole sind
jedoch nicht intrinsischer Teil der beschriebenen Welt, sondern die Konstruktion eines
Beobachters. Bewegt sich nun ein Agent in einem nichttrivialen Umfeld, muß sein
Wahrnehmungssystem die Welt (nach universellen, problemneutralen Grundsätzen) in
entsprechende Symbole umsetzen. Dabei wird oft angenommen, die erzeugte Interpretation würde eine objektive Aussage über die Wirklichkeit machen. In Wahrheit handelt
es sich jedoch nur um ein Modell der Wirklichkeit, das eine zweckorientierte27, subjektive Beschreibung liefert. Das Problem bei der Verwendung formaler Logik ist nun, daß
subjektive Wahrheiten mit einem im Kern objektiven Formalismus beschrieben werden
sollen. Modale Logik begegnet diesem Problem zwar, führt aber zu einem ‚unnatürlichen’ Verständnis kognitiver Prozesse und nicht handhabbarem Rechenaufwand. Das
wohldokumentierte Problem der Explizierung aller Annahmen (Frame Problem) ist eine
weitere unerwünschte Konsequenz [ibid., S. 2].
26
27
Hier greift wiederum die bereits zitierte Kritik von Searle (vgl. Fußnote 23, S. 19).
Zur Zweckorientierung als notwendiges Merkmal von Modellen vgl. etwa [Holten 1999, S. 9].
– 29 –
Als Alternative schlägt Brooks das Prinzip der physikalischen Abstützung vor (Physical
Grounding) [ibid., S. 3ff], das durch seine Arbeiten an praxistauglichen Physical Agents
motiviert ist. Seine These ist, daß das objektivste Modell der Welt die Welt selbst ist,
und daher jede Wissensrepräsentation direkt in ihr verankert sein sollte. Wissen wird
nicht gespeichert, sondern möglichst kontinuierlich von problemspezifischen Sensoren
aus der Umwelt abgeleitet. Umgekehrt werden Absichten unmittelbar durch Effektoren
umgesetzt. Das intelligente System kann durchaus höhere Abstraktionsebenen besitzen,
die sich aber explizit auf die niedrigeren Systemebenen abstützen müssen. Das System
ist streng hierarchisch und wird von unten nach oben konstruiert. Die SubsumptionArchitektur [ibid., S. 4] ist die Implementierung eines solchen Systems auf Basis von
Netzen endlicher Automaten und ist von zahlreichen Robotern erfolgreich eingesetzt
worden.
Für das Metamodell liefert diese Theorie wesentliche Anregungen, da sie eine ganzheitliche Sicht des Systems fördert und die technische Umsetzung intelligenten Verhaltens
in den Vordergrund stellt.
2.3.4 Agentenkommunikation
Die Kommunikation zwischen Agenten ist natürlich gerade in interaktionszentrischen
Modellen von zentraler Bedeutung, so daß ihrer Beschreibung bei der Konstruktion von
Multiagentensystemen eine große Wichtigkeit zukommt. Aus diesem Grund konzentrieren sich die bisherigen Bemühungen, Standards für Agentensysteme zu definieren, vor
allem auf diesem Gebiet.28
Kommunikation beruht auf der Existenz einer von Sender und Empfänger geteilten
Interpretation einer Nachricht. Für die Interaktion zwischen Agenten sind dabei zwei
Aspekte relevant: Zur Kommunikation auf der Sachebene wird eine verbindliche
Definition der Grundbegriffe und Kompositionsregeln zur Formulierung von faktischen
Aussagen bezüglich ihrer Umwelt (bzw. ihrer Problemdomäne) benötigt. Der Austausch
28
An dieser Stelle soll die theoretische Seite entsprechender Definitionen im Vordergrund stehen.
Bezüglich der praktischen Implikationen ihrer Verwendung als Standards siehe Abschnitt 2.5.1, S. 45.
– 30 –
über Absichten und Einstellungen von Agenten erfordert eine Möglichkeit zur Formulierung von Aussagen zweiter Ordnung, die faktische Aussagen im Sinne der modalen
Logik näher qualifizieren.
Das erste Problem entspricht der Frage nach adäquater Wissensrepräsentation in
wissensbasierten Systemen und kann sich daher auf eine umfangreiche Literatur
abstützen. Das zentrale Problem beim Wissensaustausch ist die Verständigung auf eine
konsistente gemeinsame Ontologie. Gruber [Gruber 1993] definiert eine Ontologie in
diesem Kontext als „Spezifikation einer Konzeptualisierung“, eine formale Beschreibung der in einer Domäne zulässigen Konzepte und Beziehungen zwischen diesen
Konzepten.29 Diese Konzepte müssen dann mit einer geeigneten Syntax, etwa unter
Verwendung von Prädikaten, XML [Bray et al. 2000] oder LISP [Steele 1990] Listen,
versehen werden.
Die Kommunikation von Absichten und Einstellungen wird durch die Theorie der
Sprechakte (Speech Acts) adressiert. Sprechakte sind Aussagen, die wahr werden, indem
sie ausgesprochen werden.30 Verschiedene Nachrichtentypen lassen sich durch Klassen
von Sprechakten beschreiben [Labrou et al. 1999, S. 46]. Die Semantik der Sprechakte
selbst wird dabei zumeist wieder durch eine modale Logik im Sinne einer Agententheorie beschrieben.
Die beiden prävalenten Agentenkommunikationssprachen (ACL) sind KQML (Knowledge Query and Manipulation Language) [KSE 1993], die im Zuge des 1990 von der
ARPA initiierten Knowledge Sharing Effort (KSE) [KSE] entstanden ist, und FIPA
ACL ([FIPA C00007], [FIPA C00008], [FIPA C00009], [FIPA C000010], [FIPA C000011]
und [FIPA C00037]), die eine Weiterentwicklung der bei France Télécom entwickelten
Sprache Arcol darstellt.
29
In diesem Sinne kann auch das vorliegende Metamodell als Versuch, eine Ontologie der Agentenorientierung aufzustellen, interpretiert werden.
30
Die Aussage des Priesters „Hiermit erkläre ich Euch zu Mann und Frau.“ ist etwa ein alltägliches
Beispiel für einen solchen Sprechakt.
– 31 –
KQML
Die Entwicklung von KQML ist ein dezentraler Prozeß, der von einer großen Anzahl
unabhängiger Forscher vorangetrieben wird. Dies führt einerseits zu einer unüberschaubaren Anzahl von Varianten und sogar zur Formulierung konkurrierender Spezifikationen [Labrou/Finin 1997a], andererseits aber auch zu einer großen Anzahl von Implementierungen, die die vorgeschlagenen Konzepte testen, erweitern und verbessern.31 Die
Semantik von KQML ist im ursprünglichen Entwurf nur informal spezifiziert [KSE
1993, S. 8ff]. Der Ansatz ist pragmatisch, bei der Einführung der zahlreichen Performatives (Typen von Sprechakten) geht Ausdrucksvermögen vor Minimalismus [ibid., S.
13]. Jeder Implementierung steht es frei, Performatives hinzuzufügen oder wegzulassen,
solange die vordefinierten nicht umdefiniert werden [ibid., S. 4]. Zur Definition von
Ontologien wird die Sprache Ontolingua verwendet, von einigen Dialekten auch KIF
(Knowledge Interchange Format) [Labrou et al. 1999, S. 46]. Die eigentliche Wissensrepräsentation wird allerdings auf der Inhaltsebene intransparent gekapselt. Die Kommunikationsebene besteht aus Absender, Adressat und einer eindeutigen Nummer. Die
Nachrichtenebene enthält das Performative sowie Metadaten wie die verwendete
Ontologie und die Kodierung des Inhalts. Die eigentliche Nachricht ist eine Liste im
LISP-Stil. Als Reaktion auf Kritik an der Spezifikation wurden die Performatives später
mit einer (nicht näher spezifizierten) BDI-Logik formalisiert, was zwar eine entsprechende Agentenarchitektur nahe legt, aber nicht vorschreiben soll. Jedes Performative
wird durch Preconditions, die Bedingung, aber nicht Auslöser sind, Postconditions, die
nach erfolgreicher Durchführung erfüllt sein müssen, und Completion Conditions, die
die Bedingungen für eine erfolgreiche Ausführung festlegen, beschrieben.
FIPA ACL
FIPA ACL ist KQML oberflächlich sehr ähnlich (vgl. [Labrou 2001, S. 11f]). Die
prolog-basierte Syntax von Arcol wurde bewußt an die LISP-Syntax von KQML
angepaßt, um die Wiederverwendung existierender Parser zu ermöglichen. Auf der
31
Der Entwicklungsprozeß von KQML weist interessante Parallelen zu den größeren der aktuellen
Projekte zur Entwicklung von Open Source Software auf.
– 32 –
semantischen Ebene sind die Unterschiede allerdings so groß, daß eine Übersetzung der
meisten Performatives in entsprechende Communicative Acts der FIPA ACL nicht
möglich ist. Die Sprache ist ein synthetisches Produkt, bei dessen Erarbeitung auf
konzeptionelle Sauberkeit und eine formale Spezifikation Wert gelegt wurde, das aber
über lange Zeit von keinem System implementiert wurde.32 Sie bietet vergleichsweise
wenige, generische Sprechakte, deren Interpretation allerdings erheblich höhere
Anforderungen an Agenten stellt (vgl. [Labrou 2001, S. 10]). Zur Spezifikation wird ein
um unsichere Annahmen (Uncertain Belief) erweitertes BDI-Modell verwendet, mit
dessen Hilfe für jeden Akt notwendige Feasibility Preconditions und der erwartete
Rational Effect, der aber keine Bedingung für konformes Verhalten ist, festgelegt
werden.
Kritik
Beide Sprachen teilen das Problem, nicht trotz, sondern gerade wegen ihrer formalen
Semantiken nicht verifizierbar zu sein. Da die zu ihrer Spezifikation verwendeten
Formeln der jeweils zugrundegelegten modalen Logik hochgradig unentscheidbar sind
[Wooldridge/Jennings 1995, S. 25], kann die Konformität einer Implementation nicht
formal bewiesen werden. Somit sind Inkonsistenzen zwischen verschiedenen Systemen
fast unvermeidlich.
Singh geht in seiner Kritik [Singh 1998a] noch weiter und erklärt die verwendeten
formalen Semantiken schon im Ansatz für unzureichend, um offene Systeme (mit
potentiell böswilligen Agenten) zu modellieren oder Interoperabilität zwischen den
Systemen verschiedener Entwickler zu gewährleisten. Die Beschreibung in mentalistischen Begriffen betont die private Perspektive des Agenten [ibid., S. 40]. Wie anfangs
erwähnt ist Sprache jedoch ein soziales Konstrukt. Formal ließe sich etwa das Konzept
der Lüge korrekt als ‚Agent L äußert Aussage A und nimmt gleichzeitig ¬A an’ fassen.
Dies entspricht nur auf den ersten Blick der intuitiven Definition. Ob ein Agent gelogen
hat, läßt sich nicht allein aus seinem Verhalten bestimmen, sondern hängt von seinen
Annahmen, also einem Aspekt seines nicht beobachtbaren mentalen Zustandes, ab.
32
Inzwischen existieren Implementationen in Form von JADE [JADE] oder JFIPA [JFIPA].
– 33 –
Implementiert der Agent keine BDI-Architektur, existiert die Annahme noch nicht
einmal konkret, sondern nur in der Interpretation seines Programmierers! Die Interaktion zwischen Menschen wird dagegen von sozialen Konventionen geregelt [ibid., S. 45].
Sie kommt ohne die von den ACLs angenommene White Box (‚Gedankenlesen’) aus, da
Konformität ausschließlich auf Grundlage des Verhaltens des Agenten beurteilt wird.
Außerdem kritisiert Singh die mangelnde Expressivität der Sprachen [ibid., S. 43]. Ein
verbreiteter Effekt in KQML-Systemen ist, daß fast ausschließlich Nachrichten mit
dem Performative ‚tell’ ausgetauscht werden, während die Semantik der eigentlichen
Anwendung im Inhalt der Nachrichten definiert wird.33 Den Grund für diesen Effekt
sieht er darin, daß die zahlreichen Sprechakte der ACLs in lediglich zwei Klassen
fallen: Aufforderungen und Beteuerungen. In der menschlichen Kommunikation
existieren jedoch mindestens noch fünf weitere Kategorien: Erlaubnis, Verbot, Versprechen, Deklaration und Meinungsäußerung.
Die Interoperabilität zwischen Systemen ist somit auf gleich zwei Ebenen gestört. Als
Ausweg regt Singh an, in einer hybriden Spezifikationssprache die Konkretheit sozialer
Konventionen mit der Mächtigkeit mentalistischer Attribute zu verbinden [ibid., S. 46f].
2.4
Agenten im Modell
Die Einteilung der im Anschluß umrissenen Konzepte in Modelle, Methodologien und
Modellierungssprachen sei als weitgehend wertungsfreies Strukturierungsmittel
verstanden, da sich diese Aspekte in konkreten Vorschlägen oft überlagern und
vermischen. Modellierungssprachen implizieren oft eine Methodologie, und viele
Vorgehensmodelle beziehen sich auf eine konkrete Architektur.
33
Dies ist im Grunde dasselbe Problem, das auftritt, wenn ein Agent mit rein objektorientierten Methoden
beschrieben werden soll. Das Ergebnis ist ein Objekt mit ca. zwei sehr mächtigen Methoden, act()
und receive(Message), die über seine Funktionsweise so gut wie nichts aussagen.
– 34 –
2.4.1 Referenzmodelle
Ähnlich wie das vorgestellte Metamodell versuchen Referenzmodelle, eine möglichst
allgemeingültige aber gleichzeitig konkrete Beschreibung eines Agentensystems zu
ermöglichen, so daß hier eine gewisse inhaltliche Nähe besteht. Die betrachteten
Referenzmodelle setzen dabei jedoch jeweils andere Schwerpunkte: die einen konzentrieren sich auf bestimmte Teilperspektiven des Systems, während andere mehr Wert
auf direkte Implementierbarkeit legen und daher einen stärker normativen Charakter
besitzen.
Referenzmodelle versprechen eine Standardisierung der Terminologie und der Technologie. In der noch jungen Agentenorientierung ist dieser Effekt jedoch noch nicht
eingetreten, da grob geschätzt mehr Referenzmodelle existieren als Agentenplattformen,
die eine fr e m d e Referenzarchitektur implementieren.
JAFIMA - Java Framework for Intelligent and Mobile Agents
JAFIMA (Java Framework for Intelligent and Mobile Agents) ist ein implementierungsorientierter Architekturvorschlag ([Kendall et al. 1998b], [Kendall et al. 1999]), der
sich das ehrgeizige Ziel setzt, allgemein anerkannte Begriffsdefinitionen und Architekturprinzipien zu liefern und gleichzeitig operationalisierbare Anforderungsdefinitionen
an kommerzielle Systeme zu ermöglichen und Kompatibilität zwischen verschiedenen
Agentensystemen zu garantieren [Kendall et al. 1998b, S. 1]. Die Architektur basiert auf
dem schwachen und starken (hier als ‚wissensbasiert’ interpretiert [ibid., S. 2]) Agentenbegriff von Jennings und Wooldridge. Externe Objekte werden über Sensoren wahrgenommen und zu Annahmen verarbeitet. Eine ausdrucksbasierte Inferenzkomponente
verarbeitet diese und instantiiert aus einem Schatz von Fähigkeiten eine oder mehrere
Absichten als eigenständige Threads, in deren Rahmen Externe Objekte wiederum über
Effektoren manipuliert werden. Das Modell ist in einer Schichtenarchitektur strukturiert,
in der zunehmend abstrakte Ebenen jeweils nur mit den benachbarten Ebenen in
Beziehung stehen sollen [ibid., S. 2]. Die Ebenen sind Sensory (Wahrnehmung), Beliefs
(Annahmen), Reasoning (Inferenz), Actions (Ausführung der Absichten), Collaboration
(Zusammenarbeit mit anderen Agenten), Translation (Übersetzung von Nachrichten in
andere Ontologien) und Mobility (Migration) [ibid., S. 3]. Die Elemente der einzelnen
Ebenen werden durch objektorientierte Entwurfsmuster (Scheduler, Mediator, Visitor,
– 35 –
Factory, Broker, Observer etc.) spezifiziert ([Kendall et al. 1999, S. 5ff] und [Kendall et al.
1997]). Wie bereits der Name andeutet, wird dabei auf eine Implementierung in Java
abgezielt.
Das Modell ist interessant, da es versucht, den starken Agentenbegriff mit Hilfe von
softwaretechnisch fundierten Methoden umzusetzen. Allerdings dürfte das Ziel, durch
konkrete Festlegungen Interoperabilität auf einer technischen und semantischen Ebene
zu ermöglichen, in einem prinzipiellem Konflikt zu seinem allgemeinen Anspruch
stehen. Zudem fehlt eine Modellierung der Umwelt und sozialer Aspekte. Aus modelltheoretischer Sicht erscheint zudem das formulierte Ebenenmodell nicht konsistent mit
der zugrundegelegten Definition einer Schichtenarchitektur: die höheren Ebenen sind
weniger zunehmend starke Abstraktionen als vielmehr vernetzte nebengeordnete
Funktionsmodule.
Referenzmodell für die Überwachung mobiler Agentensysteme
Ein bemerkenswertes Modell wird von Silva et al. vorgeschlagen [Silva et al. 2001]. Es ist
das einzige unter den im Rahmen dieser Arbeit vorgestellten Konzepten, das einen
möglichst neutralen Ansatz im Stil des hier vorgelegten Metamodells verfolgt und
weder ein bestimmtes Anwendungsgebiet unterstellt noch eine eigene Architektur zu
propagieren versucht. Es soll vor allem ein deskriptives Werkzeug sein, das eine
Erörterung und Klassifikation von Agentenarchitekturen (primär für mobile Agenten)
erlauben soll. Dabei konzentriert es sich auf eine statische Erfassung der bereitgestellten
Infrastruktur. Die Perspektive ist konzeptionell und verhältnismäßig grobkörnig: Das
Modell definiert wesentliche Grundbegriffe und generische Architekturelemente, die
von konkreten Systemen entsprechend parametrisiert werden müssen.
Die Autoren sehen Agentensysteme als evolutionäre Weiterentwicklung von Komponententechnologien und beziehen sich konsequenterweise auf den schwachen
Agentenbegriff gemäß Jennings und Wooldridge. MAS (von den Autoren im Rahmen des
Modells abweichend als Mobile Agent Systems definiert) stellen dabei sowohl konzeptionell als oft auch technisch eine Zwischenebene zwischen objektorientierter
Middleware (CORBA, Java RMI) und agentenbasierten Anwendungen im Sinne des
starken Agentenbegriffs (ABA) dar. Das MAS basiert auf den Diensten der Middleware,
die ABA auf der Infrastruktur des MAS [Silva et al. 2001, S. 189f].
– 36 –
Die definierte Begriffswelt ist übersichtlich. Agenten sind aktive Objekte, die stellvertretend und autonom spezifische Aufgaben ausführen, wobei mindestens ein eigener
Thread vorgeschlagen wird. Sie sind Instanzen von Agententypen, in deren Rahmen
auch die bei Migration wichtigen assoziierten Ressourcen wie etwa Quellcode verwaltet
werden. Ein Node ist ein physikalischer Netzwerkknoten. Der Begriff des MAS umfaßt
die gesamte (Software) Infrastruktur, die von den Agenten benötigt wird, also insbesondere auch die Ausführungsumgebung in Form eventueller Virtual Machines. Mehrere
MAS können sich einen Node teilen. Die öffentlichen Schnittstellen des MAS konstituieren den Context, die logische Repräsentation des MAS. Innerhalb des Contexts besetzen
die Agenten Places, über die sie adressierbar sind. Jeder Agent hat einen Benutzer, der
besondere Zugriffsrechte auf ihn hat. Auf der Ebene der ABA existieren ein oder
mehrere Agenten, die eine Community bilden und eine gemeinsame Kommunikationsund Wissensrepräsentationssprache teilen. Die Beziehungen und Mechanismen auf
dieser Ebene werden allerdings nicht vertieft [ibid., S. 191-194].
Das MAS wird dagegen weiter differenziert in das Agent Execution System (AES), das
die grundlegenden Dienste wie Kommunikation und Migration steuert, das Agent Type
System (ATS), das die Agententypen verwaltet, und das Agent Execution Environment
(AEE), in dem die Agenten ausgeführt werden. Die erste Klassifikation erfolgt danach,
ob und in welcher Form diese Elemente in einem Agentensystem existieren. Das AEE
ist in den meisten Fällen einfach die Java Virtual Machine (JVM), wobei oft auch das
AES zusammen mit den Agenten auf dem AEE ausgeführt wird. Das AES kann aber
auch in einem separaten Betriebssystemprozeß laufen, während das AEE ein Interpreter
für eine Agentenskriptsprache ist [ibid., S. 194f].
Die genaue Klassifikation erfolgt gemäß der Umsetzung der einzelnen Basisdienste
(jeweils nur eine beispielhafte Auswahl der Kategorien angegeben): Art der Ausführungsumgebung (Java, Skriptsprache), Typensystem, Identitäts- und Adreßmanagement
(linear/hierarchisch), Persistenz (Agenten/Ressourcen, explizit/implizit, zustandsbehaftet/zustandslos), Migration (zustandsbehaftet/zustandslos, Codeverwaltung), Kommunikation (Synchron/asynchron, direkt/indirekt, point-to-point/broadcast), Proxies (Nachsenden von Nachrichten), Ressourcenverwaltung und Sicherheit (Authentifizierung,
Zugriffsrechte, Integrität) [ibid., S. 196-207].
– 37 –
Abschließend stellen die Autoren fünf populäre Agentenplattformen vor und demonstrieren anhand dieser die Anwendbarkeit ihres Modells auf verschiedene Architekturen.
In zwei Tabellen bilden sie ihre Grundbegriffe mit der Begriffswelt der Plattformen
nach und ordnen die Umsetzung jedes Basisdienstes in eine der definierten Kategorien
ein [ibid., S. 220-225]. In diesem Zusammenhang wird eine Limitation des Modells
deutlich. Es läßt eine übersichtliche Klassifikation, aber keine Spezifikation von
Agentenplattformen zu. Die definierten Modellelemente sind verhältnismäßig grobkörnig und, da sie nur informell definiert werden, nicht auf eine konkretere Ebene abgestützt. Auch die Kategorien sind nur in ihrem eigenen, möglicherweise sehr komplexen
Kontext definiert. Innerhalb des Modells kann etwa etabliert werden, daß zwei Systeme
hierarchische Adressen, Java Methodenaufrufe als Medium und KQML als ACL
verwenden. Die Systeme könnten trotzdem vollkommen inkompatibel sein, was nur
unter Verlassen der Begriffswelt des Modells geklärt werden kann.
Am Rande stellt sich die Frage, warum die Autoren mit keinem Wort das Verhältnis
ihres Vorschlags zu den einschlägigen Standards der FIPA34 erwähnen, dessen Limitationen von ihrem Modell implizit adressiert werden. Das Klassifikationsschema ist in
seiner Domäne zweifellos von Nutzen und beleuchtet viele relevante Charakteristika
von Agentensystemen.
Modell von Odell und Parunak
Auf einer im Vergleich etwas abstrakteren Ebene untersuchen Odell und Mitarbeiter des
ERIM (Environmental Research Institute of Michigan) das Verhältnis zwischen
Agenten und ihrer Umwelt, das sie als zentral für jedes Agentenkonzept ansehen [Odell
et al. 2002]. Die Umwelt legt die Grundlage und stellt die Rahmenbedingungen für die
Handlungen des Agenten [ibid., S. 1]. Aufgrund der praxisorientierten Ausrichtung des
ERIM auf Simulationsmodelle und physikalische Systeme denken sie in diesem
34
Relevant wären hier die FIPA-Standards 00001 (Referenzarchitektur) [FIPA C00001] und 00023
(Infrastruktur zum Agentenmanagement) [FIPA C00023] (siehe Abschnitt 2.5.1.2, S. 47). Sie definieren,
allerdings mit einen normativen Anspruch, ähnliche Architekturelemente, wobei sie mehr auf Tiefe
(Spezifikation von Namenskonventionen und Dienstprotokollen) als auf Breite (Punkte wie Sicherheit,
Persistenz oder Ressourcenmanagement werden nicht addressiert) abzielen.
– 38 –
Zusammenhang zunächst an die physikalische Umgebung (sei sie nun simuliert oder
real) eines Agenten. Diese läßt sich mittels verschiedener Eigenschaften wie Orts- und
Zeitbegriff, Vorhersagbarkeit, Änderbarkeit und Flüchtigkeit sowie anhand charakteristischer Prozesse näher beschreiben [ibid., S. 2ff]. Die von einer Agentenplattform
bereitgestellte Infrastruktur läßt sich auf dieser Ebene erfassen [ibid., S. 4]. Darüber
hinaus erkennen sie aber auch die Notwendigkeit zur Beschreibung des sozialen
Umfeldes eines Agenten. Dieses wird durch ihre Kultur, bestehend aus Sprache,
Interaktionsprotokollen, sozialen Regeln und einer kooperativen oder kompetitiven
Philosophie, bestimmt. Bestimmte Prozesse (Kontrollmechanismen zur Wahrung der
Kultur, Verzeichnisdienste) halten sie dabei für unverzichtbar.
Auf der Grundlage dieser Beobachtungen werden kein Strukturmodell und keine
formalisierte Ontologie definiert, so daß keine exakte, standardisierte Klassifikation
verschiedener Agentensysteme möglich ist. Die herausgestellten Aspekte liefern aber
wertvolle Impulse für den Entwurf eines solchen Strukturmodells.
Das EMS Modell
Ebenfalls aus dem Bereich der Simulation stammt das EMS (Effector-Medium-Sensor)
Modell von Lind [Lind 1998]. Ziel ist die Spezifikation eines generischen Testbetts für
Agentensysteme (und dessen Implementierung in Java), wobei naturgemäß der
Schwerpunkt auf der Interaktion von Agenten(systemen) mit ihrer Umwelt liegt. Die
Architektur bietet drei Abstraktionsebenen, die die Grundelemente (Sensor, Wahrnehmung, etc.), die elementaren Prozesse (z.B. Event Queue/Dispatcher) und anwendungsspezifische Objekte, etwa topologische Strukturen mit Methoden zur Navigation [ibid.,
S. 8]. Da das System die Umwelt, also den Gegenpart, für andere Agentensysteme
liefern soll, ist seine Perspektive in gewisser Weise invertiert, liefert aber dadurch
interessante Beobachtungen und Anregungen bezüglich der Beziehung zwischen
Agenten und ihrer Umwelt.
2.4.2 Methodologien
Agentenorientierte Methodologien müssen einen Mittelweg dazwischen finden, zu
spezifisch auf eine bestimmte Architektur ausgerichtet oder so generisch zu sein, daß
sich kein klarer Pfad zur Implementierung mehr angeben läßt. Bei den aufgeführten
– 39 –
Methodologien sind im Rahmen dieser Arbeit weniger die eigentlichen Vorgehensmodelle als die Frage von Interesse, welche Auswahl von Elementen als aussagekräftig für
die Spezifikation von Systemen angesehen wird.
MASE - Multiagent Systems Engineering
Wood und Deloach schlagen die architekturunabhängig ausgelegte Multiagent Systems
Engineering (MASE) Methodologie vor [Wood/Deloach 2001, S. 207]. Aufgrund der
gesetzten Prämissen ist sie nur für geschlossene, statische (keine Erzeugung neuer
Agenten, keine Mobilität) Systeme mit wenigen Agentenklassen geeignet [ibid., S. 208].
Ausgehend von einem existierenden Anforderungsprofil sieht das Phasenmodell [ibid.,
S. 209-218] sieben Schritte vor:
1. Erfassung der Ziele. Der Ansatz baut hier auf der Arbeit von Kendall [Kendall et al.
1998a] auf. Sie sieht zielbasierte Modellierung als effizientes Mittel zur Beherrschung komplexer, realistischer Szenarien, da Ziele (Was?) stabiler sind als Prozesse
(Wie?). Ziele (Goals) werden zunächst aus allen verfügbaren Quellen zusammengetragen und anschließend in ihren relevanten Anwendungskontext eingebettet. Die
resultierenden Szenarien (Goal Cases) werden hierarchisiert und in wiederverwendbare objektorientierte Bausteine (Goal Case Objects) zerlegt [ibid., S. 2-7].
2. Anwendungsfälle anwenden. Die im Anforderungsprofil identifizierten Use Cases
werden in abstrakte UML Sequenzdiagramme umgeschrieben, um die Interaktionen
(Conversations) zwischen den beteiligten Akteuren genauer zu spezifizieren.
3. Rollen detaillieren. Für jedes Ziel wird eine Rolle definiert, die für die Verfolgung
des Ziels zuständig ist. Die Erfolgsbedingungen für jede Aufgabe werden in einem
UML Zustandsdiagramm festgehalten.
4. Agentenklassen erstellen. Die Akteure werden mit ihren Conversations und den
Rollen, die sie übernehmen, zu Agentenklassen zusammengefaßt.
5. Konversationsprotokolle erstellen. Die Conversations werden als Paare von
Zustandsdiagrammen detailliert spezifiziert.
6. Agentenklassen konstruieren. Das Innenleben der Agentenklassen wird mit den
Mitteln der verwendeten Architektur implementiert.
– 40 –
7. Systementwurf. Die (zur Entwurfszeit ja bereits bekannten) Agenteninstanzen
werden benannt und mit einem Einsatzdiagramm auf die verfügbaren Plattformen
verteilt.
Die Methodologie ist auf mehreren Ebenen interessant: Im Rahmen der gesetzten
Grenzen schafft sie es, von der Architektur zu abstrahieren und trotzdem implementierbare Spezifikationen zu erzeugen. Die Bedeutung von Zielen und ihre Beziehung zu
Rollen wird herausgestellt. Vertraute objektorientierte Notationen werden geschickt
eingebunden.
Gaia
Die Gaia Methodologie [Wooldridge et al. 2000] zielt auf makroskopische Agentensysteme ab, in denen jeder Agent einen eigenen Prozeß darstellt. Die gemachten Einschränkungen ähneln denen bei MASE: modelliert werden geschlossene Systeme mit
statischen Strukturen und Fähigkeiten, mit einer begrenzten Zahl von Agentenklassen
und frei von Zielkonflikten [ibid., S. 286].
Die Modellierung [ibid., S. 286-298] erfolgt ebenfalls unter Verwendung von Rollen.
Diese beschreiben die Aktivitäten eines Agenten und seine Interaktionen mit anderen
Agenten (Protocols). Dabei werden jeder Rolle Rechte (Permissions) und Pflichten
(Responsibilities) zugeordnet. Pflichten zwingen entweder zur aktiven Verfolgung eines
Entwurfsziels (Liveness Responsibility) oder zur Einhaltung bestimmter Grenzen (Safety
Responsibility) und werden als Pascal-ähnlicher Pseudocode spezifiziert. Die von den
Rollen somit erbrachten Dienste werden zusammenfassend im Dienstmodell (Service
Model) illustriert, ihre Austauschbeziehungen im Beziehungsmodell (Acquaintance
Model).
An dieser Stelle zeichnet sich bereits ein wiederkehrendes Problem bei der Modellierung von MAS ab. Im Zentrum einer agentenorientierten Perspektive steht die Betrachtung von I n t e r a k t io n e n zwischen verschiedenen autonomen Agenten. Die Methoden
zu deren Modellierung skalieren aber nur eingeschränkt auf große, heterogene oder gar
offene Systeme, da die Anzahl der möglichen Interaktionsbeziehungen schnell explosiv
zunimmt.
– 41 –
KAoS - Knowledgeable Agent-oriented System
Der Entwurf von KAoS (Knowledgeable Agent-oriented System) [Bradshaw 1996] ist
durch die zwei elementaren Hindernisse für Interoperabilität zwischen Agentensystemen, die uneinheitliche Infrastruktur und die uneinheitliche Semantik, motiviert. Das
infrastrukturelle Problem wird durch eine Abstützung auf existierende Middleware wie
CORBA oder DCOM adressiert. Definierendes Merkmal der Methode sind aber die
Conversation Policies. Während im Rahmen von ACLs wie KQML die Semantik auf
der Ebene einzelner Nachrichten definiert wird, benutzt KAoS Netzpläne, die zulässige
Austauschmuster festlegen. Die Bedeutung der Nachrichten kann so aus ihrem Kontext
heraus besser verstanden werden, wobei allerdings der genaue Effekt der gesamten
Konversation und der einzelnen Nachrichten nur informell beschrieben zu werden
scheint.
Bond Component Agent Model
Bölöni und Marinescu schlagen ein Modell vor, dessen Ziel es ist, eine effiziente
Umsetzung eines starken Agentenbegriffs auf Grundlage existierender Softwaretechnik
zu ermöglichen [Bölöni/Marinescu 1999]. Daher soll das Modell es vermeiden, für
Konzepte nicht realistisch implementierbare formale Definitionen vorzuschreiben,
sondern ihre konkrete Umsetzung dem Ermessen des Entwicklers überlassen. Die
Autoren sehen es als eingeschränkte, aber auch pragmatischere Variante klassischer
BDI-Modelle [ibid., S. 1].
Die Methode definiert zunächst ein ‚objektives’ Modell der Welt aus Sicht eines
externen Beobachters [ibid., S. 2]. Diese besteht aus Objekten, deren Eigenschaften
durch Ereignisse verändert werden. Ereignisse, die durch Agenten herbeigeführt
werden, heißen Aktionen. Dabei wird unterschieden, ob die Welt deterministisch oder
nichtdeterministisch auf Aktionen reagiert. Agenten werden aus Sicht der Welt nach
ihren Aktionen beurteilt; zwei Agenten mit derselben Verhaltensfunktion sind äquivalent. Entwurfsziele (‚erwünschter Zustand der Welt’) werden auf dieser Ebene aus Sicht
des Beobachters definiert.
Das zweite Teilmodell [ibid., S. 3f] beschreibt die subjektive Weltsicht aus Agentenperspektive. Agenten konstruieren sich eine Repräsentation der Welt, die sie durch stete
Wahrnehmung aktuell zu halten versuchen. Da Entwurfsziele und Aktionen auf der
– 42 –
Grundlage der objektiven Weltsicht definiert worden sind, sind sie in diesem Zusammenhang nicht direkt darstellbar und müssen durch eine Agenda und Strategien
nachgebildet werden.
Interessant ist vor allem diese Darstellung des Dualismus zwischen realer und
wahrgenommener Welt. Agenten handeln, indem sie vor dem Hintergrund ihrer Agenda
den Zustand ihres Modells der Welt beurteilen und passende Strategien auswählen.
Dabei besteht das im Zusammenhang mit der physikalischen Abstützung beschriebene
Problem, die Repräsentation der Welt ständig aktuell halten zu müssen, da sonst das
Risiko einer Selbsttäuschung besteht: Eine unkritische Beurteilung der eigenen Repräsentation führt schnell dazu, daß ein Agent seine Ziele zwar in seiner Einbildung, nicht
aber in der Realität erreicht hat.
Multi-Context-Agents
Parsons et al. beschäftigen sich mit der Frage der semantischen Integration zwischen
bereits existierenden (wissensbasierten) Architekturen [Parsons et al. 2002]. Als einen
Mangel aller existierenden Modellierungsmethoden bezeichnen sie, daß sie zwar einer
bestimmten Architektur verhaftet sind, gleichzeitig aber die Elemente dieser Architektur
nicht explizit ausdrücken können und eine Lücke zwischen Spezifikation und Implementierung lassen [ibid., S. 1f]. Abhilfe soll die Verwendung von Multi-Context Systems
schaffen, die für die verschiedenen Komponenten des Gesamtsystems die jeweils am
besten geeignete Methode verwenden. Jeder Formalismus, bestehend aus einer Ontologie und einer Logik, stellt einen eigenen Kontext dar. Die verschiedenen Kontexte
werden dann auf einer zusätzlichen Ebene, die eine Brückenfunktion übernimmt,
miteinander in Beziehung gesetzt [ibid., S. 2]. Sie definiert für jeden Kontext Units
(Strukturelemente der Architektur), Logics (einer Unit zugeordnete deklarative Sprachen mit Axiomen und Inferenzregeln), Theories (einer Unit zugeordnete, in ihrer Logic
formulierte Terme) und Bridge Rules (Regeln, die Terme verschiedener Kontexte
ineinander überführen). Jede Bridge Rule spezifiziert Terme einer Unit, die wahr sein
müssen, damit ein Term einer anderen Unit abgeleitet werden kann. Die resultierenden
Modelle teilen die Probleme aller mathematisch-formalen Spezifikationen, illustrieren
aber, daß es praktisch möglich ist, durch die Angabe konkreter Umformungsregeln eine
Architektur durch eine andere auszudrücken.
– 43 –
2.4.3 Modellierungssprachen
Der Gegensatz zwischen KI-Forschung und klassischer Softwareentwicklung zieht sich
auch durch das breite Spektrum der vorgeschlagenen Modellierungssprachen hindurch.
Die Gruppe der logischen Sprachen versucht, die Spezifikation eines Systems durch
eine modale Logik in eine operationalisierbare Form zu bringen. Ziel ist oft sogar, eine
abstrakte Programmiersprache zu schaffen, die direkt interpretierbar oder kompilierbar
ist. Grafische Modellierungssprachen hingegen zielen vor allem auf Praxistauglichkeit
und Anschaulichkeit. Sie sind oft angepaßte Notationen aus dem Bereich der Objektorientierung, wie sie etwa im Rahmen von MASE verwendet werden.
Logische Spezifikationssprachen
Mit Agent Oriented Programming (AOP) schlug Shoham ([Shoham 1990], [Shoham
1993]) eine erste entsprechende Methode vor. Er definiert eine multimodale Logik,
deren Terme jeweils mit einem Subjekt und einem Zeitpunkt parametrisierbar sind,
sowie die interpretierte Sprache AGENT0, mit der einfache Terme dieser Logik approximierbar sind. Diese wurde jedoch nie bis in ein praxistaugliches Stadium weiterentwickelt, und auch die geplante Methodologie wurde nie formuliert.
Die Sprache Concurrent METATEM [Fisher 1993] überwindet den Bruch zwischen
Logik und Programmiersprache, indem Systeme direkt mit Termen einer klassischen
temporalen Logik spezifiziert werden. Agenten definieren Eingabeprädikate, Ausgabeprädikate und Übergangsregeln. DESIRE (Design and Specification of Interacting
Reasoning Components) [Brazier et al. 1997] ist eine weitere Spezifikationssprache, die
ein System in Teilaufgaben gliedert und deren Ein- und Ausgabebeziehungen beschreibt. Beide Ansätze sind bereits erfolgreich in Praxisprojekten verwendet worden.
Viroli und Omicini definieren eine Spezifikationssprache [Viroli/Omicini 2002a], die zur
Beschreibung von Mentalmodellen, wie sie etwa zur Angabe der Semantik von ACLs
verwendet werden, dienen soll. Sie greifen die Kritik am White Box-Ansatz der bislang
verwendeten BDI-Modelle auf, halten aber eine rein externe Sicht des Agenten als
Black Box wiederum für zu wenig aussagekräftig. Als Synthese schlagen sie die
Verwendung einer Grey Box vor, die weite Teile des Innenlebens des Agenten wegabstrahiert, jene Teile, die sein beobachtbares Verhalten bestimmen, jedoch sichtbar macht
[ibid., S. 1].
– 44 –
Agenten werden als Observable Sources gesehen. Diese stehen in Beziehung zu
Coordinators, die ihr Verhalten durch Eingaben (Conditionings) von außen beeinflussen, und Observers, die die Auswirkungen (Manifestations) ihres Verhaltens beobachten. Der Agent selbst besteht aus zwei Teilen: einem beobachtbaren Part, dem Observable Core, und einer wegabstrahierten architekturspezifischen Komponente, der Agent
Internal Machinery. Der beobachtbare Kern enthält Configuration und Place. Erstere
umfaßt Informationen über die Interaktionen, an denen der Agent gerade beteiligt ist.
Letzterer ist jener Teil des internen Status, der von der Umwelt beeinflußt wird und das
Verhalten gegenüber der Umwelt beeinflußt. Die Agent Internal Machinery interagiert
mit dem beobachtbaren Kern über Änderungen am Place, wobei jedes betroffene
Element durch einen Spontaneous Move dokumentiert wird. Beim Eintreffen eines
Conditioning (reaktiv) oder beim Auslösen eines Spontaneous Move (proaktiv) berechnet die Engine anhand eines Satzes von Transitionsregeln aus Configuration und Place
den neuen internen Zustand und erzeugt gegebenenfalls Manifestations [ibid., S. 2].
Zur Spezifikation des Agenten können so seine Signatur (Conditionings, Spontaneous
Moves, Manifestations), Struktur (Place, Configuration) und Dynamik (Transitionsregeln) verwendet werden. Von konkretem Interesse für das Metamodell ist allerdings
weniger die eigentliche Spezifikationssprache als vielmehr die Idee der Grey Box und
des Observable Core.
Grafische Modellierungssprachen
Angesichts des Erfolges von UML [Booch et al. 1998] bei der objektorientierten
Modellierung überrascht es nicht, daß seitens jener Entwickler, die agentenorientierte
Softwareentwicklung (AOSE) als evolutionäre Fortentwicklung der objektorientierten
Softwareentwicklung (OOSE) ansehen, auch nach geeigneten diesbezüglichen Erweiterungen für UML gesucht wird. Agenten haben meist wenig aussagekräftige Signaturen,
zeigen dafür aber komplexe, nichtdeterministische Interaktionen mit anderen Agenten,
weswegen die Ausdrucksmittel von UML allgemein für eine Modellierung nicht als
ausreichend angesehen werden. Bezüglich der besten Lösung für diese Probleme
herrscht allerdings noch keine Einigkeit, so daß die bisherigen Vorschläge für eine
Agent UML (Agent Unified Modeling Language) das ‚U’ noch zu Unrecht im Namen
tragen.
– 45 –
Odell und Bauer ([Odell et al. 2002], [Bauer et al. 2001]) legen einen umfassenden
Entwurf für einen AUML Standard vor. Die signifikantesten Erweiterungen sieht er am
Sequenz- und am Klassendiagramm vor. Neue Konnektoren und Verzweigungssymbole
sollen beispielsweise parallele und nichtdeterministische Kommunikation beschreiben
helfen. Huget verfolgt einen ähnlichen Ansatz [Huget 2002b], kritisiert aber etwa das
vorgeschlagene Klassendiagramm als zu unhandlich [Huget 2002a, S. 11]. Lind demonstriert dagegen in einem Vorschlag, wie sich komplexe Interaktionen auch mit den
verfügbaren Aktions- und Zustandsdiagrammen ausdrücken lassen [Lind 2001].
Die meisten Vorschläge wirken naheliegend und einleuchtend, was durch die Anschaulichkeit grafischer Methoden befördert wird. Welche Ideen bei der Modellierung
wirklich hilfreich sind, kann jedoch nur durch ausgiebige praktische Anwendung
überprüft werden.
2.5
Agenten in der Praxis
2.5.1 Standards
Es ist bereits herausgestellt worden, daß sich in der Praxis noch kein einheitlicher
Standard für Agentensysteme etablieren konnte. Dazu trägt auch bei, daß die Interessen
der Forschergemeinde und der kommerziellen Entwickler hier deutlich auseinanderlaufen. Die Agententheorie setzt sich mit ungeklärten Fragen der Berechenbarkeit und
Verifizierbarkeit auseinander. Im akademischen Bereich werden noch mit immer neuen
Entwürfen die Möglichkeiten der Agentenorientierung ausgelotet, wobei Interoperabilität nachrangig ist. In der Praxis besteht hingegen weniger Interesse an mathematischer
Vollständigkeit und innovativen Architekturen als an einer standardisierten Grundlage,
auf der zumindest elementare Dienste wie Adressierung und Nachrichtenversand
unmittelbar funktionieren.
Vorwiegend mit Semantik befaßte Standards wie KQML sparen diese Aspekte jedoch
weitgehend aus. Kommerzielle Systeme bieten zwangsläufig konkrete Lösungen für
diese Probleme an. Da jedoch in einem unreifen Markt das ‚not-invented here’-Syndrom
noch besonders stark wirkt, findet noch wenig Wiederverwendung von Ideen statt
[Wooldridge/Jennings 1998, S. 4].
– 46 –
Der im Folgenden vorgestellte MASIF-Standard ist ein deutlich praxisorientierter
Standard, der sich auf die grundlegende Infrastruktur beschränkt. Der anschließend
behandelte FIPA-Standard beschäftigt sich ebenfalls mit Fragen der Infrastruktur, hat
aber einen umfassenderen Anspruch der auch Fragen der Kommunikation und Wissensrepräsentation einschließt.
2.5.1.1 Der MASIF-Standard
Der 1998 von der Object Management Group (OMG) [OMG] veröffentlichte MASIFStandard (Mobile Agent System Interoperability Facility) [OMG 1998] beruht auf
einem von den Herstellern Crystaliz, General Magic, GMD Fokus, IBM und der
Open Group ausgearbeiteten Entwurf einer Infrastruktur zum Management, Transport,
Benennen und Finden von Agenten. Der Standard deckt einen dem Referenzmodell von
Silva [Silva et al. 2001] vergleichbaren Bereich ab, möchte aber konkret Interoperabilität
zwischen realen Systemen ermöglichen und schreibt daher detaillierte Strukturen und
Schnittstellen vor. MASIF baut zudem unmittelbar auf der CORBA-Architektur auf
und nutzt deren Namenskonventionen und -dienste.
Agenten haben einen eindeutigen Namen und besetzen ebenfalls eine Place in einem
Agentensystem. Verbundene Agentensysteme können in Regionen zusammengefaßt
werden, die über jeweils mindestens einen Namensdienst verfügen müssen. Datenstrukturen zur genauen Beschreibung dieser Elemente werden in IDL formuliert. Die
Parameter
umfassen
im
Besonderen
die
verwendete
Programmiersprache,
Serialisierungsmethode oder Agentenplattform. Weiterhin definiert MASIF zwei
Interfaces: MAFAgentSystem [OMG 1998, S. 45-63] und MAFFinder [ibid., S. 64-74].
MAFAgentSystem stellt Methoden zum Erstellen und Verwalten von Agenten, zur
Abfrage von Informationen über Agenten und zum Empfang von fremden Systemen her
migrierender Agenten zur Verfügung. MAFFinder stellt Verzeichnis- und Suchdienste
zur Verfügung, wobei die Verfahren zur internen Verwaltung des Verzeichnisses
freigestellt sind.
MASIF beschränkt sich auf wenige, weitgehend unstrittige Aspekte von Agentensystemen. Vom Transport von Agenten abgesehen ist die Implementierung aller Dienste
vergleichsweise trivial. Zudem steht die Architektur auf einer soliden, akzeptierten
Grundlage in Form von CORBA. Daher überrascht es nicht, daß der Standard bereits
von mehreren Agentenplattformen implementiert worden ist.
– 47 –
2.5.1.2 Der FIPA-Standard
Die Federation for Intelligent Physical Agents (FIPA) [FIPA] ist eine 1996 gegründete
Organisation, der inzwischen über fünfzig Firmen und Forschungseinrichtungen
angehören. Die von ihr veröffentlichten Standards beziehen sich jedoch primär auf
Softwareagenten, auch wenn der Name Anderes suggeriert. Zunächst veröffentlichte die
FIPA alljährlich den gegenwärtigen Stand des Standardisierungsprozesses, was zu den
inzwischen obsoleten Standards FIPA97 und FIPA98 führte. Seither wird der Standard
(unter dem Namen FIPA2000) auf Dokumentenebene verwaltet. Die einzelnen
Spezifikationen durchlaufen den Lebenszyklus Preliminary, Experimental, Standard,
Deprecated und Obsolete, wobei die meisten Dokumente den dritten Schritt übersprungen haben. Gegenwärtig umfaßt der Standard 94 durchnumerierte Einzeldokumente,
von denen rund 40 noch gültig sind.
Die durch den Standard abgedeckten Gebiete sind vielfältig, wobei allerdings die Sicht
von Agenten als wissensbasierte Systeme im Vordergrund steht. Wesentliche Elemente
sind eine abstrakte Architektur [FIPA C00001], die vier Spezifikationssprachen [FIPA
C00007] Semantic Language (SL) [FIPA C00008], Constraint Choice Language (CCL)
[FIPA C00009], Knowledge Interchange Format (KIF) [FIPA C00010] und Resource
Definition Format (RDF) [FIPA C00011], eine Spezifikation zum Agentenmanagement
[FIPA C00023], eine Bibliothek [FIPA C00025] von Interaktionsprotokollen [FIPA
C00026-C00036], die Sprechakte der FIPA ACL [FIPA C00037], das Format [FIPA
C00061] und die Transportmechanismen [FIPA C00067] für Nachrichten und ein Dienst
zum Austausch von Ontologien [FIPA C00086].
Betrachtet werden sollen hier vor allem die Spezifikationen FIPA SC00001 [FIPA
C00001] und FIPA SC00023 [FIPA C00023], die Anfang Dezember 2002 zu Standards
erhoben worden sind. Das erste Dokument beschreibt die abstrakte Architektur, die von
den anderen Spezifikationen als begriffliche Grundlage verwendet wird. Die zentralen
abstrakten Elemente sind Agenten, Dienste, Nachrichten und Transportmechanismen,
um die herum sich nachgeordnete Attribute wie Agent Identifier, Service Locator,
Service Signature, Message Envelope, Message Encoding oder Transport Specific
Address gruppieren. Als Grundprinzipien werden die Kapselung (opacity) [FIPA
C00001, Zeile 632], etwa des Inhalts (Payload) einer Nachricht in einem Transportumschlag (Envelope), und die Verwendung von Handles [ibid., Z.645], die Agenten bei
– 48 –
Anforderung eines Dienstes erhalten, herausgestellt. Die Spezifikation beschreibt primär
die wesentlichen infrastrukturellen Elemente eines Agentensystems, geht aber im
Gegensatz zum MASIF-Standard auch auf Agentenkommunikation und Nachrichtenübertragung ein. Dies führt zu weitergehenden Anforderungen an Agenten, von denen
Interaktion auf semantischer Ebene und mentale Einstellung (Intentional Stance), also
Attribute eines starken Agentenbegriffs, verlangt werden [ibid., Z.543]. Andererseits ist
der Standard in seinen Vorgaben aber auch weniger spezifisch, so daß es nicht garantiert
erscheint, daß Systeme, die die abstrakte Architektur implementieren, auch tatsächlich
kompatibel wären. Ohnehin trägt diese Spezifikation deutliche Spuren eines politischen
Entstehungsprozesses. Sie schließt wesentliche Bereiche wie Identität, Mobilität,
Sicherheit und Lebenszyklus völlig aus [ibid., Z.449-457], behandelt sie also nicht
einmal auf der Ebene von Begriffsdefinitionen oder abstrakten Schnittstellen, da sie
nicht abstrakt beschreibbar oder „noch nicht bereit“ für eine Standardisierung seien
[ibid., Z.440-445].
Eine konkrete Architektur zur Verwaltung von Agenten wird durch FIPA SC00023
[FIPA C00023] definiert. Eine Agentenplattform besteht aus Agenten, einem Agentenmanagementsystem und optionalen Verzeichnisdiensten, die über das Nachrichtentransportsystem auf semantischer Ebene kommunizieren. Zu diesem Zweck werden eine
Ontologie [ibid., Z.541-599] und eine Bibliothek von Communicative Acts [ibid., Z.600730] spezifiziert. Bemerkenswerterweise wird in diesem Zusammenhang auch ein
Lebenszyklusmodell definiert [ibid., Z.347-427].
Der Standard ist auf mehreren Ebenen kritisiert worden. Die generelle Kritik von Singh
[Singh 1998a] bezüglich der Eindeutigkeit der ACL ist bereits wiedergegeben worden.35
Labrou und Finin kritisieren darüber hinaus, daß die Definition der ACL untrennbar ein
bestimmtes internes Agentenmodell voraussetze, was für eine Sprache mit allgemeinem
Anspruch nicht realistisch sei. Weiterhin seien formale Grundlagen, etwa die Definition
der neu eingeführten Unsicheren Annahme (Uncertain Belief), nicht Teil des Standards
und auch nicht in elektronischer Form verfügbar. Zudem würden implizit Details von
35
Siehe Abschnitt 2.3.4, S. 32.
– 49 –
zweifelhaftem allgemeinen Nutzen aus den als Vorbilder dienenden Systemen einfließen, etwa die Ausrichtung des Nachrichtenformats auf eine effiziente Verarbeitung
durch einen in Prolog geschriebenen Parser [Labrou/Finin 1997b].
Der Standard enthält zudem einige formale Mängel. So werden im Stile der RFC [RFC
Editor] Qualifizierer wie may, can und must definiert [FIPA C00001, Z.932], dann aber
nicht konsistent und eindeutig verwendet. Im XML-Schema [Fallside 2001] der RDF
tragen zwei Elemente irrtümlich den gleichen Identifizierer [FIPA C000011, Z.666].
Weiterhin enthält jedes Dokument den rechtlichen Hinweis, daß der Standard keine
Erlaubnis zur Verwendung der beschriebenen Technologien darstelle. Ihre Benutzung
könne die Rechte von FIPA-Mitgliedern oder Dritten verletzen. Während der Haftungsausschluß bezüglich der Rechte Dritter eine übliche Absicherungsmaßnahme darstellt 36,
erscheint der Vorbehalt bezüglich der Rechte der FIPA-Mitglieder für einen Standard
kontraproduktiv.
Das größte praktische Problem für eine weite Akzeptanz des Standards erscheint aber zu
sein, daß er sich noch beständig unter wiederholtem Brechen der Abwärtskompatibilität
weiterentwickelt. Zum gegenwärtigen Zeitpunkt scheint keine kommerzielle Implementierung des gesamten Standards zu existieren.37 Verschiedene Forschungsprojekte haben
den Standard allerdings ganz oder in Teilen in Java umgesetzt. JADE [JADE] ist eine
Bibliothek, die von aktiven Mitgliedern der FIPA entwickelt wird und sich eine
normative Implementierung des Standards zum Ziel setzt. Die Open Source Projekte
JFIPA (Implementierung des XML-Encodings der FIPA ACL) [JFIPA] und FIPA OS
[FIPA OS] scheinen dagegen schon seit über einem Jahr nicht mehr aktiv zu sein.
Welche praktische Relevanz der FIPA-Standard erlangen wird, erscheint zur Zeit noch
nicht absehbar. Problematisch dürfte die starke Ausrichtung auf Künstliche Intelligenz
und die damit zusammenhängende prominente Verwendung modaler Logik sein. Für
36
37
Vgl. etwa die Richtlinien der W3C zu Verwertungsrechten und Haftung [W3C 2000].
Die einzige kommerzielle Plattform, bei der überhaupt eine Referenz auf den FIPA-Standard gefunden
wurde, ist Grasshopper [IKV 1998]. Die Architektur orientiert sich allerdings primär am MASIFStandard und ist erst nachträglich um einen zum (inzwischen obsoleten) FIPA97-Standard kompatibelen Wrapper erweitert worden.
– 50 –
Unternehmen ist die Investition zudem riskant, da der Standard nur eingeschränkt auf
etablierten Standards der Softwaretechnik aufbaut. Im Licht des aktuellen Trends,
proprietäre Protokolle durch offene Internettechnologien zu ersetzen, stehen weite Teile
der Infrastruktur etwa in Konkurrenz zu Web Services und könnten auch durch SOAP
[Gudgin et al. 2002a/b], UDDI [Bellwood et al. 2002] und WSDL [Christensen et al. 2001]
implementiert werden [Fou 2001].
2.5.2 Agentenplattformen und Toolkits
Die Menge der veröffentlichten Agentenplattformen spiegelt die Vielfalt der verfolgten
theoretischen Konzepte wider und ist in diesem Rahmen nicht sinnvoll zu beschreiben.
Das Verzeichnis von AgentBuilder [IntelliOne 2001] und die Mobile Agent List der
Universität Stuttgart [Hohl 1999] können hier einen ersten Überblick vermitteln.
Die erste kommerzielle Agentenplattform war Telescript [White 1994]. Sie verwendete
bereits das Konzept von Agenten als Kunden von im System angebotenen Diensten, das
auch im FIPA-Standard anklingt. Telescript hatte zwar einigen Erfolg, konnte sich aber
nicht durchsetzen und wurde nach mehreren Revisionen vom Hersteller General Magic
eingestellt.
Zur Entwicklung von Anwendungen mit Telescript war das Erlernen einer dedizierten
Skriptsprache erforderlich. Inzwischen hat sich Java als de facto Standard für agentenorientierte Programmierung etabliert. Der Vorteil von Java sind seine große Verbreitung und die Verfügbarkeit einer breiten Palette an Werkzeugen und Schnittstellen. Es
bringt allerdings auch gewisse Einschränkungen mit sich: Migration ist beispielsweise
maximal unter Mitnahme der Daten, nicht jedoch des aktuellen Ausführungszustands
möglich, da diese Information in Java nicht explizit zugänglich ist.
Einer der prominentesten Vertreter solcher Java-basierten Toolkits ist die Aglets
Workbench [IBM 1997] der IBM Forschungsabteilung. Sie ist bislang nur ein Forschungsprototyp, hat aber aufgrund des geringen Einstiegsaufwands (und des Namens
IBM) vielerorts Beachtung gefunden. Ihr besonderer Reiz liegt in der Existenz von
Tahiti, einer grafischen Benutzeroberfläche zur Agentenverwaltung, die die Aktivitäten
der Agenten anschaulich macht. Fokus des Toolkits ist die infrastrukturelle Ebene, also
Kommunikation, Migration und Verwaltung von Agenten. Verschiedene der vorgestell-
– 51 –
ten theoretischen Konzepte werden direkt umgesetzt: Eine Laufzeitumgebung (Host)
enthält verschiedene Kontexte, in denen die Aglets (Kunstwort aus Agent und Applet)
existieren. Aglets haben eine eindeutige Identität, können aber geklont werden. Sie
können eingefroren und persistent gespeichert werden und aktiv durch Versenden oder
passiv auf Anforderung in andere Kontexte migrieren. Kommunikation kann synchron
oder asynchron erfolgen. Dabei werden Aglets durch Proxies repräsentiert, die für
Ortstransparenz sorgen und die öffentlichen Methoden des Aglet(objekts) verstecken.
Auf der objektorientierten Ebene bietet die Plattform Events und Listener, mit denen
etwa andere Aglets von der Ankunft eines neuen Agenten im System unterrichtet
werden können.
Aglets migrieren auf Basis des ATP (Agent Transport Protocol), einer um spezifische
Konstrukte erweiterten Variante von HTTP (Hyper Text Transfer Protocol [Fielding et
al. 1999]). Gerade im Bereich der Kommunikation und Migration existieren sehr
unterschiedliche Ansätze: ffMain [Lingnau et al. 1995] versucht, eine möglichst generische Kommunikationsarchitektur auf Basis von HTTP aufzubauen, während etwa
AgentSpace [Silva 1999] das Problem kontinuierlicher Kommunikation mit migrierenden Agenten (Open Channels) durch die Verwendung einer spezifischen Architektur auf
Basis von Tuple Spaces zu lösen versucht. Andere Plattformen, wie das bereits erwähnte
JADE [JADE], bieten zusätzlich eine integrierte Unterstützung für die Kommunikation
mit ACLs.
Die in Industrieprojekten verwendeten Agentenplattformen sind häufig anwendungsspezifische Einzelanfertigungen, die auf der Basis von bewährten Middlewarearchitekturen entwickelt werden (vgl. etwa [Parunak 2000]).
Mit zunehmender Reife der Agententechnologie ist eine Konsolidierung des Angebots
zu erwarten. Eine völlige Vereinheitlichung ist jedoch mit Blick auf die verfügbare
Vielfalt objektorientierter Entwicklungs- und Laufzeitumgebungen weder zu erwarten
noch erstrebenswert.
2.5.3 Agentenbasierte Anwendungen
Während das Metamodell vor allem eine gute Verankerung in der Theorie anstrebt, soll
es gleichzeitig die praktische Anwendbarkeit nicht aus den Augen verlieren. Abschlie-
– 52 –
ßend sollen daher reale Anwendungen der vorgestellten Theorien und Methodologien
betrachtet werden. Wo haben sich Agenten in der Praxis bereits bewährt? Wo werden
sie zumindest als Lösung in Betracht gezogen? Kann die Agentenmetapher zur Analyse
und Wartung existierender Systeme herangezogen werden?
Interfaceagenten
Interfaceagenten sollen die Bedienung von Software einfacher und vor allem intuitiver
machen. Die Personifikation von Programmen ist dabei ein häufig eingesetztes Mittel,
das oft noch durch eine vermenschlichte Darstellung unterstützt wird. Die Hilfsassistenten, die Microsoft mit Office 97 eingeführt hat [Microsoft 1997], sind das bekannteste,
wenn auch nicht zwangsläufig gelungenste, Beispiel für diese Technik. Sie illustrieren
gleich eine fundamentale Erkenntnis dieses Forschungsgebiets: Autonome Agenten
werden nur akzeptiert werden, wenn ihr Verhalten nicht als aufdringlich, nicht zielführend, undurchsichtig oder schädlich empfunden wird. Microsoft Office demonstriert
aber auch gleichzeitig einen umgekehrten Trend: Blickt man hinter die animierte
Präsentation, leistet der Office-Agent wenig mehr als die klassische Hilfe – abgesehen
davon, daß er auf bestimmtes Benutzerverhalten hin selbständig seine Hilfe anbietet.
Ähnliches leisten die Autokorrektur und die automatische Formatierung auch – zwar
unspektakulärer, aber im Alltag dafür erfolgreicher. Dies illustriert eine zweite Erkenntnis, die wohl für die Agentenorientierung insgesamt relevant ist: Einfache, effiziente
Agenten, die ihre Aufgabe unauffällig erledigen, sind oft besser als übermäßig ambitionierte umfassende Lösungen.
Eine andere Klasse von Interfaceagenten sind sprachgesteuerte Agenten. Ein Beispiel
ist Julia, ein Agent, der in textbasierten Online-Rollenspielen nützliche Informationen
über die Spielwelt und andere Spieler geben kann, dabei aber wie ein normaler Spieler
auftritt und interagiert [Foner 1993]. Ein weiteres Beispiel ist A.L.I.C.E. (Artificial
Linguistic Internet Computer Entity) [Wallace 2001], Gewinner des letztjährigen
Loebner Prize [Loebner 2001]. Solche Agenten erfordern ein größeres Maß an
Intelligenz und vor allem einen leistungsfähigen Parser. Sie sind die von den Theorien
der AOSE am schlechtesten erfaßte Agentenklasse, da hier der Schwerpunkt weniger
auf Verhalten als auf einer aufwendigen internen Informationsverarbeitung liegt. Es
besteht eher eine Nähe zu Expertensystemen im Stil von Mycin [Shortliffe 1976].
– 53 –
Informationsfilter
Eher im Hintergrund arbeiten wiederum Informationsfilter, die eingehende Post nach
Themengebieten sortieren und unerwünschte Werbung unterdrücken. Im weiteren Sinne
kann dies auch einschließen, daß der Agent proaktiv verschiedene Informationsquellen
im Internet abfragt und für den Benutzer relevante Nachrichten auswählt und zusammenstellt. Ein solches System ist der an der Universität Münster entwickelte Pi Agent
[Wortmann 2002, S. 75f]. Das entscheidende Problem in diesem Kontext ist die effiziente Personalisierung des Agenten: Die Ziele des Benutzers müssen möglichst korrekt auf
die Ziele des Agenten abgebildet werden. Klassische Informationsfilter lassen den
Benutzer explizit Regeln definieren, während intelligente Agenten eher versuchen, diese
Regeln durch Beobachtung aus dem Verhalten des Benutzers zu inferieren.
Persönliche Assistenten
Maes sieht die Möglichkeit, intelligente Agenten als „persönliche Assistenten, die mit
dem Benutzer in der selben Arbeitsumgebung zusammenarbeiten“38 [Maes 1994, S. 71]
einzusetzen. Die Vision eines Agenten, der auf den Empfang einer Nachricht, daß der
für eine Konferenz eingereichte Vortrag angenommen wurde, hin den Benutzer
alarmiert und selbständig eine Auswahl der günstigsten Flüge zum Veranstaltungsort
zusammenstellt [Wooldridge/Jennings 1995, S. 3], erscheint mittelfristig noch nicht
realisierbar.
Computerspiele
Moderne Computerspiele sind oft extrem aufwendige Programme, die nicht nur im
Bereich der Grafikprogrammierung die Grenzen des Machbaren abstecken, sondern
auch im Hintergrund zunehmend komplexe Simulationsmodelle verwenden. Während
der Klassiker des Simulationsgenres, SimCity [Electronic Arts 2003a], noch ein regelbasiertes Pseudo-Simulationsmodell verwendet, simulieren moderne Inkarnationen wie
38
Im Original: “The metaphor is that of a personal assistant who is collaborating with the user in the
same work environment.” [Maes 1994, S. 71].
– 54 –
The Sims [Electronic Arts 2003b] oder die Wirtschaftssimulationen Anno 1503 [Sunflower 2003] und Tropico [PopTop 2003] ein System aus individuellen Akteuren.
Künstliche Intelligenz ist zudem oft von entscheidender Bedeutung. In EchtzeitStrategiespielen muß der Computer auf der Makroebene den gegnerischen Strategen
simulieren und zusätzlich auf der Mikroebene die selbständigen Reaktionen einzelner
Einheiten steuern. In 3D-Shootern wie Quake [id Software] steuert der Computer die
Gegner, die in moderneren Spielen auch kommunizieren und ihr Verhalten koordinieren
können. Besonders interessant ist das Spiel Black & White [Lionhead], das die Agentenmetapher quasi zum Spielprinzip erhebt. Der Spieler steuert seinen autonom
agierenden Avatar nicht direkt, sondern erzieht ihn durch Belohnungen und Bestrafungen zum erwünschten Verhalten.
Computerviren
Bei den bisherigen Anwendungen stand zumeist der Aspekt künstlicher Intelligenz im
Vordergrund. Eine rein technische Form von Agenten sind Computerviren. Im Vordergrund stehen hier naturgemäß autonomes proaktives Verhalten und Migration. Kommunikation zwischen den Agenten findet überwiegend nicht statt, jedoch gibt es Viren, die
eine Hintertür von einem Server herunterladen, auf dem befallenen Rechner installieren
und dieses ihrem Ersteller im IRC melden [Symantec 2003].
Betriebssystemtechnik
Song [Song et al. 1996] hat ein System aus vier Agenten entwickelt, die als eigene
Prozesse in einem UNIX-Betriebssystem laufen, durch das Dateisystem wandern und
Dateien komprimieren und archivieren. Das Betriebssystem ist hier also die Agentenplattform. Noch unüblicher mag es zunächst erscheinen, das Betriebssystem selbst als
Multiagentensystem zu betrachten. In einem modernen System mit Plug & Play
Subsystem und anderen vergleichbaren Diensten zur automatischen Konfiguration
(Daemons) ist diese Sicht aber durchaus nicht abwegig. Hinzu kommen noch die
Programme, die der Benutzer aktiv im Hintergrund arbeiten läßt, etwa Indizierungsdienste oder Antivirussoftware.
– 55 –
Mobile Agenten als Netzwerktechnik
Der treibende Gedanke hinter der Verwendung von mobilen Agenten als Netzwerktechnologie ist vor allem Ressourceneffizienz: Der Code soll dort ausgeführt werden, wo die
Daten liegen oder die meiste freie Rechenzeit zur Verfügung steht. Gerade leichtgewichtige Mobilgeräte können so als Thin Client auf die Dienste eines Agenten zugreifen, den der Benutzer auf einen leistungsfähigeren Server geschickt hat [Harrison 1995,
S. 10]. Zudem soll die Abwicklung komplexer Abfragen lokal auf dem Server die
Netzwerkauslastung verringern [ibid., S. 7].
Swarm Intelligence ist eine naturanaloge Weak AI-Technik, die durch das intelligente
kollektive Verhalten von Insektenkolonien inspiriert ist. Sie wird beispielsweise in
Anlehnung an die günstigsten Pfade zu einer Nahrungsquelle, die von Ameisen durch
Pheromone markiert werden, erfolgreich zur Balancierung des Verkehrs in paketbasierten Netzwerken (optimiertes Routing) verwendet [Bonabeau et al. 1998].
Simulation
Wie bereits beschrieben, eignen sich Agenten in besonderem Maße zur Simulation von
Systemen, in denen einfache individuelle Verhaltensmuster chaotisches Gesamtverhalten erzeugen. Beispiele sind das DASCh Projekt (Dynamical Analysis of Supply
Chains) des ERIM CEC (Center for Electronic Commerce) [Parunak 2000, S. 396f] und
ein Projekt des NCMS (National Center for Manufacturing Sciences), das
Induktionsheizungsprozesse simuliert [ibid., S. 397].
Produktionsplanung und –steuerung
Dieses Gebiet erhält von seiten der Industrie große Aufmerksamkeit. Ein Großteil der
Ansätze beruht auf einem ‚naturanalogen’ Marktmodell: Produktionsaufträge werden
mit einem ihrem Umfang und ihrer Priorität entsprechenden Startkapital ausgestattet,
mit dem sie Rohstoffe und Maschinenbenutzungszeiten ersteigern müssen. Selbst wenn
die einzelnen Agenten nur eingeschränkt intelligent sind und eine individuelle Nutzenmaximierung anstreben, sollte sich nach den Regeln der klassischen Ökonomie auf
einem solchen perfekt transparenten Markt das ‚gesamtgesellschaftliche’ Optimum
einstellen.
– 56 –
Ein besonders bemerkenswertes Projekt dieser Art ist das Holonic Manufacturing
System (HMS) von DaimlerChrysler. Es verbindet ein Marktmodell mit sogenannten
Holons, robotischen Transportwagen, die das ausgehandelte Produktionsprogramm auch
direkt in die Tat umsetzen können [Parunak 2000, S. 391].
Elektronische Marktplätze
Der meistverwendete Agent auf einem elektronischen Marktplatz ist wahrscheinlich der
simplizistische eBay-Agent [eBay 2003], der im gesetzten Rahmen fremde Gebote
automatisch überbietet. Im B2B-Bereich wurden entsprechend aufwendigere, automatisierte Systeme diskutiert. Die Autoindustrie strebt traditionell eine möglichst weitgehende Automatisierung ihrer Logistikprozesse an, so daß hier ein prinzipielles Interesse
besteht. Vor dem Hintergrund der Wirtschaftslage wird allerdings gegenwärtig zumeist
einfacheren, bewährten Technologien der Verzug gegeben.
Physikalische Agenten
Grundsätzlich lassen sich jegliche Roboter als physikalische Agenten verstehen.
Besonders hilfreich ist diese Sicht aber vor allem für Roboter, die sich autonom in ihrer
Umwelt bewegen. Kommerzielle Ausführungen solcher Agenten existieren bereits in
Form von selbststeuernden Rasenmähern und Staubsaugern.
Ein Multiagentensystem in diesem Sinne stellen jene Roboter dar, die im Rahmen des
RoboCup [Kitano et al. 1997] in Mannschaften gegeneinander Fußball spielen.
– 57 –
3
3.1
Entwurf des Metamodells
Modellphilosophie
An dieser Stelle sollen die Grundprinzipien und der Anspruch des Metamodells
dargestellt werden. Dabei werden zunächst das zugrundegelegte Modellverständnis und
die verwendete Interpretation des Agentenbegriffs und im Anschluß die daraus abgeleiteten Architekturprinzipien dargestellt.
3.1.1 Modellbegriff
Unter einem Modell wird hier in Anlehnung an Schütte die Abbildung eines Sachverhaltes der realen oder gedachten Welt in einer formalisierten Sprache verstanden, die von
einem Modellierer auf Basis seiner Wahrnehmung erstellt wird [Schütte 1998, S. 59-62].
Das Modell ist dabei keine objektive und isomorphe Abbildung (abbildungsorientiertes
Modellverständnis), sondern ein subjektive, homomorphe Abbildung von hinreichender
Genauigkeit (konstruktivistisches Modellverständnis). Daraus leitet sich ab, daß
Modellbildung immer auf die Verfolgung eines konkreten Untersuchungsziels ausgerichtet ist [Ferstl/Sinz 1998, S. 18].
Ein Metamodell ist informal betrachtet ein Modell eines Modells, wobei zumeist die
Beschreibung auf einer höheren Abstraktionsebene impliziert wird. Aus dem Modellbegriff leitet sich dabei ab, daß die Auswahl relevanter Aspekte des betrachteten Modells
durch den Beschreibungszweck des Metamodells motiviert sein muß. Strahringer
unterscheidet dabei zwischen dem linguistischen und dem prozeßorientierten Prinzip
[Strahringer 1996, S. 19ff]. Ersteres beschäftigt sich in Anlehnung an die Sprachstufentheorie mit der Beschreibung der Objektsprache, mit deren Hilfe das betrachtete Modell
ausgedrückt ist, in einer Metasprache; letzteres beschreibt Modellierungsprozesse. Da
das hier entwickelte Modell auf die Schaffung eines begrifflichen Rahmens abzielt, in
den andere Modellierungsansätze eingeordnet werden können, wird ein sprachbasierter
Ansatz verfolgt.
In diesem Sinne ist die Abgrenzung des hier verfolgten Ansatzes zu existierenden
Referenzmodellen nicht scharf definiert, da auch diese zumindest implizit eine Metasprache definieren. Dabei haben Referenzmodelle jedoch einen stärker normativen
– 58 –
Charakter und geben konkrete Gestaltungsempfehlungen für eine Modellierung
[Becker/Schütte 1996]. Das Metamodell soll hingegen stärker darauf fokussiert sein,
welche Elemente in einem System vorhanden sein können, nicht wie sie gestaltet sein
sollten oder müssen. Die in seinem Rahmen formulierten Prinzipien betreffen die
idealtypischen Beziehungen innerhalb einer Modellierungssprache, nicht innerhalb der
modellierten Systeme, und sollen nicht als einschränkende Vorgaben hinsichtlich des
Entwurfs und der Implementierung konkreter Systeme verstanden werden.
3.1.2 Agentenbegriff
Das Metamodell soll an erster Stelle zur Beschreibung einer möglichst großen Auswahl
der dargestellten Theorien und Architekturen geeignet sein. Deswegen wäre es nicht
zielführend, hier in wenigen Zeilen einen einzigen Agentenbegriff festschreiben zu
wollen. Ohnehin ist die Aussagekraft einer solchen isolierten Definition prinzipiell nur
beschränkt, wie McCarthy (mit Bezug auf den Absichtsbegriff) darlegt: „Für gewöhnlich sind die meisten wissenschaftlichen Konzepte nicht durch einzelne Sätze natürlicher
Sprachen, sondern vielmehr als Teile von Theorien definiert, und die Anerkennung der
Theorie hängt von ihrer Eignung zur Beschreibung einer großen Menge von Phänomenen ab.“39 [McCarthy 1979, S. 7]. In diesem Sinne schlägt sich der zugrundegelegte
Agentenbegriff vor allem in den Beziehungen innerhalb des Metamodells nieder.
Ausschlaggebend ist nicht die wissenschaftliche Eleganz oder Exaktheit einer einzelnen
Definition, sondern die Eignung des Gesamtkonzeptes zu Beschreibung von realen
Agentensystemen. Ausgangspunkt ist deswegen eine undogmatische Interpretation von
Agentenorientierung im Sinne des sehr schwachen Agentenbegriffs40 (very weak
notion).
Damit dieser nicht vollkommen inhaltsleer ist, muß aber die Frage geklärt werden,
w e l c h e Abstraktion dem Entwickler dadurch eigentlich als Werkzeug an die Hand
39
40
Im Original: “It is commonplace that most scientific concepts are not defined by isolated sentences of
natural languages but rather as parts of theories, and the acceptance of the theory is determined by its
fit to a large collection of phenomena” [McCarthy 1979, S. 7] .
Siehe Abschnitt 2.2, S. 18.
– 59 –
gegeben wird. Zu diesem Zweck sei nochmals die Analogie zur Objektorientierung
bemüht: Ihre essentiellen Konzepte sind die Kapselung des internen Objektzustands und
eine datenorientierte Sichtweise. Die Agentenorientierung bietet eine in diesem Sinne
noch stärkere Abstraktion, die in vergleichbarer Weise durch das Prinzip der Kapselung
von internen Prozessen (Verhaltensintransparenz) und eine interaktionsorientierte
Sichtweise beschrieben werden könnte. Die Dehnbarkeit dieser Definition ist nicht als
Nachteil anzusehen. Auch die Objektorientierung gibt keine Vorgaben, welche und wie
viele (oder wenige) Klassen bei der Modellierung eines konkreten Systems zu verwenden sind – dies liegt weitgehend im subjektiven Ermessen des Entwicklers. Das
Konzept wird dadurch intuitiv und flexibel anwendbar.
Die Abbildung in einem operativen Modell erfordert allerdings eine konkrete Umsetzung dieser abstrakten Idee. Als Grundlage soll hier die Sicht eines Agenten als System,
das mit Sensoren und Effektoren mit seiner Umwelt interagiert, dienen, da sie hinreichend generisch41 erscheint und dennoch die Kernpunkte der vorgeschlagenen abstrakten Definition, Kapselung interner Prozesse und Interaktionsorientierung, widerspiegelt.
Die Beschreibung aller weitergehenden Aspekte, etwa mentaler und sozialer Fähigkeiten, Kommunikation und Mobilität, wird durch um diesen Kern herum angeordnete
optionale Module umgesetzt. Da die einzelnen Konzepte weitgehend zueinander
orthogonal sind, können konkrete Agentensysteme mit Hilfe einer passenden Auswahl
einschlägiger Teilmodelle erfaßt werden. Dieser Ansatz greift die oben formulierte
Idee42 eines Baukastensystem-Agentenbegriffs auf.
3.1.3 Integrationskonzept
Ein allgemeingültiges Modell zu formulieren ist leicht, wenn die einzelnen Teile nur
unspezifisch genug gehalten sind. Zur Spezifikation eines Systems ist ein solches
Modell jedoch nicht geeignet, da – wie bei der Beschreibung eines Agenten als ein
41
Die Sicht suggeriert zwar aktive, in gewissen Grenzen autonome Entitäten, läßt sich bei Bedarf aber
auch problemlos auf passive, streng deterministisch reagierende Objekte anwenden – auch wenn ihr
Nutzen in diesem Falle fraglich sein dürfte.
42
Siehe Abschnitt 2.2, S. 18.
– 60 –
Objekt mit den Methoden act() und listen() oder bei der exzessiven Verwendung
von tell-Nachrichten in KQML-Systemen – die eigentliche Beschreibung dann faktisch
auf einer anderen Ebene erfolgt. Beim Metamodell liegt deswegen das Augenmerk
darauf, wie andere Theorien und Architekturen die verschiedenen Teilbereiche beschreiben. Die Aussagen des jeweils expressivsten Formalismus sollten eine semantische Entsprechung innerhalb des Metamodells besitzen.
Dies soll aber nicht dazu führen, daß einfach nur isolierte Elemente anderer Modelle
nebeneinandergestellt oder auf einer rein nominalen Ebene kombiniert43 werden. Eine
der interessantesten Fragen in der Agentenorientierung ist gerade, wie die verschiedenen Konzepte ineinandergreifen und zusammenspielen. Das Metamodell soll hier
versuchen, eine Brücke zwischen der KI-orientierten und der softwaretechnischen
Perspektive zu schlagen, die oft von einer deutlichen Kluft getrennt sind.44 Da die
Beziehungen der Modellelemente zueinander sich nicht einfach direkt beschreiben
lassen, weil sie zu vielfältig oder auch noch gar nicht formalisiert sind, muß das
Metamodell an dieser Stelle die rein deskriptive Ebene verlassen und ein eigenes
Konzept zur Strukturierung entwerfen. Die Philosophie dieses Konzepts wird zwangsläufig nicht immer der Philosophie des betrachteten Agentensystems entsprechen; es ist
aber sein Ziel, durch passende Abbildungsrelationen auch diese Architekturen adäquat
modellieren zu können.
3.1.4 Architekturprinzipien
Das Metamodell untergliedert sich auf der obersten Ebene in zwei Teilmodelle: eine
konkrete Ebene, die die Wahrnehmungen und Handlungen der Agenten beschreibt, und
eine abstrakte Ebene, auf der soziale und mentalistische Konzepte modelliert werden.
Diese Unterteilung ist von der Differenzierung zwischen Physischem und Metaphysischem in der realen Welt inspiriert.
43
Also nicht: ‚Das Aglet beschließt mit seiner BDI-Logik, einen Agenten im MASIF-Verzeichnis zu
suchen, um ihm eine FIPA ACL Nachricht zu senden…’
44
Dies ist ein Unterfangen ganz im Geiste der Wirtschaftsinformatik, die eine Brückenfunktion zwischen
der Formalwissenschaft Informatik und der Realwissenschaft Betriebswirtschaftslehre ausüben will
[Holten 1999, S. 5].
– 61 –
Ziel einer umfassenden Methode zur agentenorientierten Softwareentwicklung muß
sein, einen Weg anzubieten, der ohne Brüche von der abstrakten, konzeptionellen
Beschreibung eines Agentensystems über ein operatives Modell bis hin zur Implementierung führt. Das erste Entwurfsprinzip des Metamodells ist daher die Verankerung in
der klassischen Softwaretechnik. Da jedes System von Softwareagenten letztendlich auf
einem Rechner implementiert werden muß, sollen zumindest die Elemente auf der
niedrigeren Abstraktionsstufe direkt mit einer ‚klassischen’ Modellierungsmethode
beschreibbar sein. Beispielsweise könnte ein implementiertes System aus Objekten
(Modellierung mit UML) bestehen, die sich per HTTP (Spezifiziert durch die Referenz
auf den Standard) XML-Nachrichten (Modellierung durch XML-Schemata) zusenden.
Auf diese Weise lassen sich beliebig spezifische technische Details transparent in
Modelle einbinden.
Darauf baut ein zweites wesentliches Prinzip auf: Die Elemente der abstrakten Ebene
sollen direkt auf Elemente der konkreten Ebene zurückführbar sein. Dies ist zunächst
natürlich eine technische Voraussetzung ihrer Implementierbarkeit, wie sie etwa von der
Theorie der Systemebenen formuliert wird. Die Forderung ist jedoch auch inhaltlich im
Sinne des Positivismus45 zu verstehen: Die Rückführung soll explizit auf semantischer
Ebene durchgeführt werden. Macht ein Agent etwa ein Versprechen (abstrakte Ebene),
schlägt sich dies in einer entsprechenden Nachricht oder einem Protokolleintrag
(konkrete Ebene) nieder, die für andere Agenten wahrnehmbar sind.
Die Idee hinter diesem Ansatz ist die Ausweitung des Prinzips der physikalischen
Abstützung (Physical Grounding) auf rein virtuelle Systeme. Die Elemente der
konkreten Ebene sind zwar in den meisten Fällen selbst nur das Ergebnis eines Modellierungsprozesses, aus Sicht der Agenten jedoch eine ‚physikalische’ Realität, die
unmittelbar und ohne Übersetzung in Symbole wahrgenommen werden kann. Daher
trägt die konkrete Ebene des Metamodells auch die Bezeichnung physikalische Ebene.
Die Vorteile der physikalischen Abstützung in der realen Welt bleiben erhalten: Die
45
Hier verstanden als Form des Empirismus, die Wissen einzig aus Wahrnehmungen ableitet: “A doctrine
contending that sense perceptions are the only admissible basis of human knowledge and precise
thought.” [TAHD 2000]
– 62 –
abstrakten Konzepte sind präzise, eindeutig und in für die Agenten erfahrbarer Form
definiert. Der Protokolleintrag im obigen Beispiel ist somit nicht Konsequenz oder
Ausdruck, sondern essentielle Verkörperung des Versprechens.
Wie die meisten Modellelemente sind auch die formulierten Architekturprinzipien nicht
normativ zu verstehen. Sie sollen die Modellierung erleichtern, nicht einschränken.
3.1.5 Agententheorie
Aus dem Prinzip der physikalischen Abstützung leitet sich direkt eine behavioristische
Sicht auf Agenten, also eine Beschreibung durch ihr beobachtbares Verhalten auf der
physikalischen Ebene, ab. Zur Spezifikation von Systemen wird ein reiner Black BoxAnsatz allerdings in Übereinstimmung mit Viroli und Omicini [Viroli/Omicini 2002a] für
unzureichend gehalten. Die Beschreibung autonomer Agenten durch mentalistische
Begriffe ist eine sowohl nützliche als auch verbreitete Methode, die von einem Metamodell nicht ausgespart werden kann. Dabei wird hier aber im Sinne von McCarthy
[McCarthy 1979] der Schwerpunkt nicht auf eine Abbildung der internen Architektur
von Agenten, sondern auf die Z u s c hr e i b u ng mentaler Attribute gelegt.
Ein Mentalmodell eines Agenten erfordert sowohl eine metaphysisch adäquate46
Repräsentation seiner Begriffswelt, die hier durch die physikalische Ebene geleistet
wird, als auch eine epistemologisch adäquate Darstellung, die die aus Sicht des Agenten
tatsächlich verfügbaren Erkenntnisse beschreibt.
Letzteres kann durch einen White Box-Ansatz wie beispielsweise eine BDI-Architektur
geleistet werden. Dieser Ansatz wird hier allerdings aus drei Gründen nicht verfolgt:
Zunächst wird er als zu spezifisch angesehen. Würden andere Elemente des Modells
sich auf die Interna einer solchen Architektur beziehen, wie dies etwa die FIPA ACL
betreibt, litte die Anwendbarkeit des Metamodells auf Systeme mit anderen Architekturen. Zwar ließe sich die BDI-Architektur hier als reine Interpretationshilfe sehen,
allerdings würde dadurch nur ein zweites Problem akzentuiert: Die mentalen Konstrukte
46
Zur Unterscheidung zwischen metaphysisch adäquater und epistemologisch adäquater Beschreibung
siehe [McCarthy 1979, S. 1].
– 63 –
der BDI existieren im günstigsten Falle innerhalb der Agenten, im ungünstigen Falle
nur im Kopf des Entwicklers. Sofern die Agenten nicht Zugriff auf die interne Repräsentation anderer Agenten haben, läßt sich eine solche White Box schlecht operationalisieren. Die Annahmen der Agenten über die Welt sind überprüfbar, nicht jedoch ihre
Annahmen über die Annahmen anderer Agenten. Drittens wird die mit mentalen
Architekturen praktisch untrennbar verbundene Beschreibung durch modale Logik als
Modellierungsmethode zur kommerziellen Softwareentwicklung im großen Stil kritisch
beurteilt. Eine solide theoretische Fundierung ist wünschenswert – praxisorientierte
Modelle sollten sie jedoch in möglichst anschaulicher und leicht operationalisierbarer
Form umsetzen.47
Der hier vorgeschlagene Ansatz basiert auf einer hybriden Darstellung im Sinne einer
Grey Box. Sie läßt aus Sicht eines externen Beobachters bestimmte sichere Annahmen
über den mentalen Zustand des Agenten zu, ohne jedoch dessen interne Umsetzung
vorzuschreiben, da entsprechende Vorgaben niemals allen Architekturen gerecht
werden könnten. Bei Bedarf bietet das Metamodell dabei allerdings die nötigen
Schnittstellen, um die Grey Box transparent (in doppelter Hinsicht) zu einer implementierungsspezifischen White Box zu erweitern.
Die Bedeutung sozialer Konventionen bei der (menschlichen) Kommunikation und
Interaktion ist bereits herausgestellt worden. Für die Modellierung der Systemebene
sind die tatsächlichen internen Bewußtseinsprozesse der Agenten weniger relevant als
deren soziale Rezipierung. Analog zu menschlichen Überlegungen („Die Gedanken
sind frei.“) sind Annahmen und Absichten eines Agenten für das Gesamtsystem
irrelevant, solange sie sich nicht in konkreter Form auf der physikalischen Ebene
manifestieren. Umgekehrt sind aber bei der nachträglichen Beurteilung von Verhalten
die Absichten und Annahmen des Handelnden von großer Bedeutung. Die Rechtswissenschaften können hier einen wertvollen Beitrag leisten, da entsprechende Beurteilungen vor dem Hintergrund unvollständiger Informationen bezüglich des Wissens und der
47
Lind führt den Vergleich zwischen Objekten und den deutlich älteren, formal als äquivalent bezeichneten Abstrakten Datentypen (ADT) an. Letztere seien heute ungleich weniger populär, da die Beschreibung durch Objekte eine natürlichere Beschreibung der realen Welt ermöglicht und vertraute Denkweisen der Softwareentwickler aufgegriffen habe [Lind 2000, S. 12].
– 64 –
Motivation einer Person einer ihrer zentralen Gegenstände sind. Juristische Konzepte
wie Vorsatz oder grobe Fahrlässigkeit dienen dabei zur Strukturierung der Einschätzung. Idealtypisch sollte eine solche Qualifizierung natürlich die Gedankengänge des
Individuums exakt widerspiegeln, praktisch können hingegen nur sozial anerkannte
Standards für deren Interpretation und Beurteilung ausschlaggebend sein. Dieses Prinzip
zieht sich durch weite Teile der Gesetzgebung in den Bereichen Zivil- und Strafrecht.
Ein Beispiel aus dem Schuldrecht sei §307 BGB (Negatives Interesse): „Wer bei der
Schließung eines Vertrags, der auf eine unmögliche Leistung gerichtet ist, die Unmöglichkeit der Leistung kennt oder kennen muß, ist zum Ersatze des Schadens verpflichtet
[…] Die Ersatzpflicht tritt nicht ein, wenn der andere Teil die Unmöglichkeit kennt oder
kennen muß.“ [BGB]. Es illustriert, wie das Ergebnis einer Transaktion von den
Annahmen der Beteiligten abhängen kann, und wie die Gesellschaft daher in diesem
Zusammenhang Vorgaben darüber macht, was ein Individuum wissen kann oder wissen
muß.
Dieses Prinzip wird hier auf Agentensysteme übertragen. Die mentalen Attribute eines
Agenten werden auf der Basis sozialer Regeln durch sein Verhalten und seine Erklärungen über sein Denken und Verhalten bestimmt. Wird einem Agenten etwa eine Nachricht erfolgreich zugestellt, weiß er den Inhalt der Nachricht. Antwortet er daraufhin mit
einer Bestätigung, glaubt er den Inhalt der Nachricht. Publiziert ein Agent, daß er eine
Beobachterrolle für ein bestimmtes Ereignis übernimmt, muß er davon wissen, wenn
das Ereignis eingetreten ist. In ähnlicher Weise lassen sich auch individuelle Regeln
darüber, welche Schlußfolgerungen ein Agent aus bestimmten Eingaben ziehen wird,
veröffentlichen.
Diese Interpretation geht in eine dem Konzept der Social Stance (soziale Haltung) von
Singh [Singh 1998b] vergleichbare Richtung. Singh sieht dieses allerdings primär als eine
Erweiterung des mentalistischen Konzepts der Intentional Stance um soziale Begriffe,
ganz im Sinne der Einführung einer sozialen Systemebene oberhalb der Wissensebene
durch Jennings und Campos. Konkret geht es dabei um die Erfassung der Beziehungen
und Verpflichtungen, die Agenten in einer Arbeitsgruppe eingehen, aus Sicht der
Agenten. In der hier eingeführten Sichtweise geht es hingegen zuerst um die externe
Wahrnehmung von Seiten der Gesellschaft, so daß die Bezeichnung Legal Stance
(rechtsverbindliche Haltung) vorgeschlagen wird.
– 65 –
3.1.6 Systemtheorie
Multiagentensysteme sind komplexe, nebenläufige, oft auch verteilte Software. Sie
teilen daher alle technische Probleme entsprechender Systeme bezüglich Synchronisation, exklusivem Ressourcenzugriff oder Deadlocks [Wooldridge/Jennings 1998, S. 4].
Beim Entwurf eines Agentensystems sollte daher auf die in diesem Forschungsgebiet
gewonnen Erkenntnisse zurückgegriffen werden. Die Agentenorientierung fügt dem
allerdings noch eine stärkere Verhaltensintransparenz und Nichtdeterminismus auf der
Ebene der einzelnen Systemkomponenten hinzu. Die resultierenden Interaktionsmuster
sind intuitiv sehr schwer erfaßbar und stellen die Methoden der klassischen Softwareentwicklung auf eine harte Probe.
Bei der Diskussion des Verhaltens einzelner Agenten wurde bereits in sozialen Begriffen argumentiert. Dies legt nahe, auch die Gesamtheit der Agenten als soziales System
zu verstehen und zu seiner Beschreibung Begriffe und Konzepte aus den Sozialwissenschaften zu entlehnen. Zum Verständnis der Systemstruktur können Vergleiche zu
sozialen Organisationsformen und Hierarchien gezogen werden. Die Regeln, die das
System kontrollieren und koordinieren, finden eine Entsprechung in der Verfassung,
den Gesetzen und sozialen Konventionen menschlicher Gesellschaften.
Eine solche Darstellung durch Analogien kommt der menschlichen Intuition stark
entgegen und bietet mächtige Ausdrucksmittel, ist aber auch entsprechend weniger
formalisiert. Sie birgt daher die Gefahr, zu abstrakt zu werden, wenn sie nicht ebenfalls
in der technischen Realität des Systems verankert ist. Die Begriffe des Metamodells
sind bewußt anschaulich gewählt, sollen aber auf der Implementierungsebene kein in
irgendeiner Form ‚anthropomorphes’ System voraussetzen. Eine ‚Agentengemeinschaft’ können nicht nur die Marktteilnehmer in einem aufwendigen Social-SimulationModell, sondern genauso einfach Agenten auf derselben Verteilerliste sein.
Dem Modellierer steht es grundsätzlich frei, ob ein Begriff der konzeptuellen Ebene nur
ein Analysewerkzeug oder tatsächlich ein operatives Element des fertigen Systems sein
soll. Dabei ist allerdings eine gewisse Vorsicht geboten. Auf einer logisch-abstrakten
Ebene wird der Kontext impliziert und Informationen sind frei verfügbar. Auf einer
konkreten Ebene ist der Kontext gegeben und die verfügbaren Informationen sind
eingeschränkt. Ein stetes Risiko bei der Verwendung mächtiger Abstraktionen ist die
irrtümliche Abstützung auf Informationen, die zur Laufzeit im gegebenen Kontext
– 66 –
überhaupt nicht verfügbar sind.48 Deswegen ist für alle Elemente, die bei der Ausführung des Systems eine Rolle spielen sollen, eine Abstützung auf die Elemente der
physikalischen Ebene unumgänglich. Gerade in offenen Systemen ist es entscheidend,
alle aufgestellten Regeln e x p l i z i t umzusetzen und sich nicht durch das erwartungskonforme Verhalten eventueller Prototypen, in die sie lediglich implizit eingeflossen
sind, in falscher Sicherheit wiegen zu lassen.
Bezüglich der Frage einer konstruktionistischen oder reduktionistischen Herangehensweise ist das Metamodell neutral. Es unterstützt sowohl die Modellierung von systemweiten Zielhierarchien als auch das inkrementelle Zusammenfügen individueller
Agenten.
3.2
Modellstruktur
Das Metamodell definiert eine Ontologie zur Beschreibung agentenorientierter Systeme.
Der dabei verwendete Ansatz ist sehr abstrakt, um die elementaren Beziehungen
zwischen den Elementen zu betonen und vielen verschiedenen Klassen von Systemen
gerecht zu werden. Gleichzeitig wurde eine möglichst anschauliche Terminologie
gewählt, um das Modell intuitiv verständlich und praktisch anwendbar zu machen.
Dabei wird, wo dies inhaltlich gerechtfertigt ist, die Nähe zur etablierten Terminologie
des Forschungsgebietes angestrebt. Da die einschlägige Literatur durchweg englischsprachig ist, werden auch hier die Modellelemente mit englischen Begriffen belegt.
Die Rekonstruktion von Begriffen aus einer Lebenswelt, in diesem Falle der Landschaft
der realen und theoretischen Agentenarchitekturen, wird als zentrales Charakteristikum
der Wirtschaftsinformatik bezeichnet [Holten 1999, S. 4f]. Die resultierenden Objekttypen können anschließend zur Modellierung im Sinne der Informatik verwendet werden
[ibid., S. 5]. Demgemäß wird das Metamodell durch die Herleitung und Einordnung der
einzelnen Begriffe definiert werden. Da die Beziehungen innerhalb des Modells jedoch
keiner linearen Ordnung folgen, ergibt sich das Problem von Vorwärtsreferenzen. Daher
48
Als einfaches Beispiel diene hier ein C++-Objekt, das zwar durch seine Methodensignatur beschrieben
wird, mangels der Fähigkeit zur Introspektion aber zur Laufzeit keine Aussagen darüber machen kann.
– 67 –
soll einleitend nicht nur die grobe Struktur des Modells definiert, sondern auch ein
Überblick über die wichtigsten Begriffsklassen gegeben werden.
Wie bereits dargestellt wurde, zerfällt das Metamodell in zwei Ebenen: die Physical
Layer, die die konkrete Umsetzung des Systems enthält, und die Conceptual Layer, die
die metaphysischen Aspekte des Systems beschreibt. Diese Ebenen untergliedern sich
jeweils noch in Teilmodelle.
Agent als zentraler Begriff des Metamodells nimmt eine Sonderstellung ein, da er auf
beiden Ebenen vertreten ist. Sein beobachtbarer Anteil wird von der Physical Layer
beschrieben, während die Conceptual Layer seine abstrakte ‚Persönlichkeit’ erfaßt.
Innerhalb der Beschreibung des Agenten in seiner Gesamtheit findet sich somit der
klassische Dualismus Körper – Geist.
3.2.1 Physical Layer
Physical Layer
Process
Model
Service
Model
Environment
Model
Entity
Model
Abbildung 3.1
Die Teilmodelle der Physical Layer
– 68 –
Das grundlegende Element der Physical Layer ist das Environment. Es ist der Behälter,
in den alle anderen Elemente des Metamodells eingebettet sind. Jede Elementinstanz ist
von einem Environment existentiell abhängig. Das Environment Model beschreibt die
in einem Gesamtsystem vorhandenen Environments und ihre hierarchischen oder
netzwerkartigen Beziehungen.
Um das Environment Model herum ordnen sich die drei anderen Teilmodelle der
Physical Layer an, die zur genaueren Spezifikation der einzelnen Environments dienen.
Dies sind das Entity Model, Process Model und Service Model.
Das Entity Model beschreibt die Beschaffenheit und Beziehungen der Entities, der
Objekte, die das Environment bevölkern. Dabei ist der Begriff im Sinne eines abgeschwächten Empirismus aus der Agentenperspektive definiert: Entity ist jedes Systemelement, das p r i n z i p i e l l von einem Agenten wahrgenommen (oder manipuliert)
werden kann. Daher ist im Besonderen auch der beobachtbare Part eines Agent eine
Entity. Als Gegenbegriff dazu beschreibt Item alle anderen Entities. Besondere
Unterkategorien von Item sind Message, Resource, Facility und Proxy. Entities sind
vor dem Hintergrund der physikalischen Abstützung grundsätzlich ungetypt. Ein
Typensystem kann allerdings problemlos durch Entities implementiert werden – die
Entities stehen dann in ‚Instanzbeziehungen’ zu Types.
Das Entity Model beschreibt darüber hinaus auch die Interaktion der Agents mit ihrer
Umwelt. Agents nehmen Entities mit ihren Sensors wahr und manipulieren sie mit
ihren Effectors. Dabei wird die Rolle der Kommunikation durch die Differenzierung in
Auditive Sensor und Verbal Effector, die auf Messages wirken, und Visual Sensor und
Manual Effector unterstrichen. Für jeden Sensor und Effector wird die Menge von
Entities, auf die dieser gegenwärtig wirken kann, als sein Context definiert.
Das Process Model definiert die aktiven Processes, die unabhängig von Agents im
Rahmen des Environment ablaufen. Processes modifizieren Entities. Sie können auch
systemexogene Einflüsse abbilden.
Das Service Model ist bedeutsam für die Beschreibung der Infrastruktur, die im
Rahmen eines Environment angeboten wird. Es ist damit der Anknüpfungspunkt für die
Einbindung konkreter Agentenarchitekturen. Das Modell spezifiziert eine Auswahl von
Services, beispielsweise einen Verzeichnisdienst, Authentifizierungsmechanismen und
– 69 –
Nachrichtentransport. Es verweist weiterhin gegebenenfalls auf Facilities, spezielle
Entities, über die Agents auf die Services zugreifen können.
3.2.2 Conceptual Layer
Conceptual Layer
Behavioral
Model
Application
Model
Mental
Model
Abbildung 3.2
Social
Model
Die Teilmodelle der Conceptual Layer
Im Zentrum der Conceptual Layer steht der Agent. Sie umfaßt das Mental Model, das
Behavioral Model, das Social Model und das Application Model, die eng miteinander
verzahnt sind.
Das Mental Model beschreibt den Agenten durch mentalistische Begriffe. Das Teilmodell definiert Agent Personality, Outlook und Premeditation. Die Agent Personality
abstrahiert von der Implementierung einer eventuellen künstlichen Intelligenz. Der
Outlook des Agenten beschreibt seine Weltsicht und enthält dazu eine Struktur aus
Statements. Besondere Statements sind Aims, deren Hierarchie subjektiv die operativen
Ziele des Agenten beschreibt. Die Premeditation ist ein Plan über zukünftige Actions in
Form eines gerichteten azyklischen Graphen.
– 70 –
Das Behavioral Model beschreibt die externe Sicht auf den Agenten. Es konzentriert
sich auf die Beschreibung der Behaviors, die spezifizieren, wie Agenten wahrnehmen,
interagieren und denken. Die mentalen Einstellungen des Agenten werden durch
Position und Schedule beschrieben, welche die öffentlichen Annahmen über Outlook
und Premeditation sind, die dem Agent im Sinne der Legal Stance zugeschrieben
werden können. Behaviors bestehen aus Actions. Diese sind entweder Anwendungen
von Sensors oder Effectors oder Änderungen an Position und Schedule.
Die Culture steht im Mittelpunkt des Social Model. Diese legt Norms fest, dies sind
zum einen Axioms, invariante Zusicherungen und Einschränkungen, die immer erfüllt
sein müssen, und zum anderen Rules, die regeln, welche Verhaltensweisen zulässig
sind. Weiterhin kann eine Hierarchie von Roles definiert werden. Eine Role ist dabei
eine Menge von Behaviors. Zuletzt legt die Culture noch eine Language und Konventionen für Professed Intentions, von Agenten ‚geäußerte’ Willenserklärungen, fest.
Das Herzstück der Conceptual Layer ist das Application Model. Es beschreibt die
Beziehungen der Agents zueinander und die Communities, in denen sich Agenten
organisieren. Eine Community ist eine Instanz einer Culture. Die Community als
Menge von Agenten kann unter Umständen auch selbst als Agent auftreten. Das
Application Model ordnet auch den Agenten ihren User zu, sofern dieser existiert. Der
Benutzer kann dem Agenten einen Purpose geben. Dieser besteht aus einer beliebig
umfangreichen Zielhierarchie aus Missions und soll die Motivation des Agent aus einer
objektiven Perspektive umreißen.
3.3
Modellelemente
In den folgenden Abschnitten werden die Ebenen, Teilmodelle und Elemente des
Metamodells hergeleitet und detailliert beschrieben. Dabei sei nochmals darauf
hingewiesen, daß alle angeführten Modelle, Elemente, Attribute und Beziehungen strikt
optional sind. Sie sollen ein Beschreibungsmittel bieten, nicht normative Aussagen über
das Vorhandensein bestimmter Elemente und Beziehungen in konkreten Systemen
machen. Unterschiedliche Anwendungen setzen unterschiedliche Schwerpunkte, die
von unterschiedlichen Teilen des Modells abgedeckt werden. Bei der Betrachtung der
Interaktion zwischen Agenten und ihrer Umwelt wird etwa häufig auf die Bedürfnisse
physikalischer Agenten eingegangen, während die Spezifikation der angebotenen
– 71 –
Dienste hauptsächlich für Softwareagenten relevant ist. Auf der konzeptuellen Ebene
existieren Gegensätze zwischen den Anforderungen der starken und schwachen KI.
Die einzelnen Elemente werden möglichst abstrakt definiert. Aus Gründen der Anschaulichkeit und um die Motivation der einzelnen Definitionen praktisch zu illustrieren, werden in den Text eingeflochten konkrete Beispiele angeführt.
Die Beispiele sind jeweils durch einen grauen Kasten hervorgehoben. Die verwendeten
Beispiele nehmen auf unterschiedliche Teile des zweiten Abschnitts Bezug. Einerseits
werden einige der beschriebenen praktischen Anwendungen49 zitiert, um einzelne
Anwendungsfälle zu beleuchten. In diesem Zusammenhang werden etwa die Roboter
des RoboCups, elektronische Marktplätze, der Office Agent und das Spiel Quake
herangezogen. Weiterhin werden allgemeinere, aber konkrete Architekturen, wie sie die
Aglets Workbench oder der MASIF-Standard bieten, zitiert. Zuletzt werden auch
Parallelen zu den Elementen der vorgestellten Referenzmodelle und Theorien gezogen.
Daneben wird gelegentlich auf Analogien mit der Alltagswelt zurückgegriffen. Sämtliche Beispiele sind illustrativ, nicht normativ.
Die Struktur und Beziehungen des Modells werden durch Entity-Relationship-Model
(ERM) Diagramme nach Chen [Chen 1976] beschrieben. ERM-Diagramme sind
ursprünglich eine Methode der Datenmodellierung, eignen sich jedoch gleichermaßen
zur Spezifikation einer Metasprache. 50 Sie sind im Prinzip gleichmächtig zu Klassendiagrammen, erlauben aber explizit selbstreferenzierende Beziehungen und bieten eine
klare Notation zur Quantifizierung von Vererbungs- bzw. Spezialisierungsbeziehungen.
Die Diagramme bestehen aus Entitätstypen (Rechtecke) und Beziehungen (Rauten)
zwischen Entitätstypen. In einer Minimum-Maximum-Notation wird quantifiziert, wie
oft der nebenstehende Entitätstyp in eine Beziehung dieser Art eingehen kann bzw. muß.
Dabei können Beziehungen selbst Beziehungen eingehen, wodurch sie zu umdefinierten
49
50
Siehe Abschnitt 2.5.3, S. 51.
Zu einer ausführlichen Rechtfertigung vergleiche [Holten 1999, S. 23f].
– 72 –
Entitätstypen werden (mit einem Rechteck umgebene Raute).51 Spezialisierungsbeziehungen werden durch Dreiecke ausgedrückt, die mit der Spitze auf den generelleren
Typen zeigen. Die Buchstaben im Dreieck bezeichnen, ob die Zerlegung disjunkt (d)
oder nicht-disjunkt (n) ist, sowie ob die Vereinigungsmenge der spezialisierten Typen
den generelleren Typen total (t) oder nur partiell (p) abdeckt.
Selbstreferenz
(0,1)
(0,n)
Entitätstyp
Entitätssubtyp I
d,t
Entitätssubtyp II
(1,n)
(1,1)
Beziehung
Abbildung 3.3
Wesentliche Elemente eines ERM-Diagramms
Für die einzelnen Elemente der physikalischen Ebene werden Attribute und mit dem
Element assoziierte Ereignisse angegeben. Letztere sind für eine Betrachtung der
Dynamik des Systems und eine Operationalisierung von Belang. Wird ein Element noch
in Unterklassen unterteilt, erben die untergeordneten Elemente die Attribute und
Ereignisse ihres übergeordneten Typen. Auf der konzeptuellen Ebene wird gegebenenfalls angegeben, auf welche Elemente der Physical Layer sich das Element abstützt.
Zum Abschluß jeder Elementbeschreibung werden die Definition, Attribute, Beziehungen und Ereignisse des Elements kurz zusammenfassend dargestellt. Das Verzeichnis
der Modellelemente verweist jeweils auf die Kurzbeschreibung des Elements, die auf
51
In der beispielhaften Abbildung der grafischen Notation nicht dargestellt. Als illustratives Beispiel
kann die Schließung einer Ehe (Beziehung) zwischen zwei Personen (Entitätstyp) dienen. Die Trauzeugen (Entitätstyp) können nicht eindeutig den einzelnen Ehepartnern, sondern nur der Ehe (hier also
Entitätstyp) zugeordenet werden (Beziehung).
– 73 –
diese Weise eine übersichtliche Referenz bieten sollen. Da die Zusammenfassungen
ohnehin im Wesentlichen aus den (englischen) Modellbegriffen bestehen, wurden sie
direkt komplett auf Englisch formuliert.
Element Summary
Element Name – conventional name, aims for clarity and casual usability
Hierarchical Name
Layer.Model.Element – conventional names containing spaces are abbreviated
Definition
Short definition of the element
Attributes
List of common attributes
Relationships
Relationships to Other Elements
Event Classes
Important classes of events generated by this element
Formalisms
Formalisms for expressing conceptual elements
Grounding
Physical layer elements conceptual element is grounded in
Examples
Some examples for purely illustrative purposes
Die grafischen Strukturmodelle werden jeweils zusammenfassend hinter die detaillierte
Beschreibung der darin enthaltenen Elemente gestellt. Zu Beginn jedes Abschnittes
wird aber auf die einschlägigen Diagramme verwiesen, so daß diese auch zum Gewinnen eines ersten Überblicks oder als begleitende Orientierungshilfe genutzt werden
können. Am Ende der Beschreibung jedes Teilmodells wird kurz beschrieben, wie sich
seine Elemente zur Formulierung kompletter Modelle verwenden lassen und welche
Notationen sich dabei anbieten. In einigen Fällen werden zur Illustration einfache
Modelle aufgestellt und visualisiert.
3.3.1 Physical Layer
Die Physical Layer52 ist konzeptionell die einfachere der beiden Ebenen. Bei der
Anwendung ihrer Elemente zur Beschreibung konkreter Systeme entstehen jedoch
komplexe Modelle, da hier auch die technischen Details erfaßt werden.
In Abgrenzung zur Conceptual Layer legt die Physical Layer den Schwerpunkt der
Betrachtung auf die konkreten Elemente eines Systems. Dies kann und soll jedoch nicht
52
Abbildung 3.15, S. 117, bietet eine Übersicht über die wichtigsten Elemente der Physical Layer.
– 74 –
bedeuten, daß die Beschreibung frei von Abstraktionen und Semantik ist. Die verwendeten Konzepte sind lediglich direkter im beobachtbaren Teil des Systems verankert.
Das zentrale Konzept der Ebene ist die Sicht des Agenten als System, das mit Sensoren
und Effektoren mit seinem Umweltkontext interagiert. Die Perspektive ist somit
agentenzentriert, es wird auf der Ebene der kognitiven Umwelt von Agenten argumentiert.
3.3.1.1 Environment Model
I.
Elemente
A.
Environment
Der Umweltkontext der Agenten wird als Environment beschrieben. Agenten sind von
ihrem Environment existentiell abhängig: Ihre physikalische Form auf der Physical
Layer terminiert, wenn das Environment aufhört zu existieren.
Das Environment ist selbst wiederum ein System, das von seiner Umwelt abzugrenzen
ist. Dabei ist ausschlaggebend, ob die Intensität der Beziehungen innerhalb der Systemgrenzen als intensiver empfunden werden als die Beziehungen über diese Grenzen
hinweg (vgl. [Teubner 1999, S. 9ff]). Diese Abgrenzung ist zwangsläufig subjektiv. Es
sollte jedoch möglichst das minimale System gewählt werden, das in der Lage ist, die
gesamte Wahrnehmungs- und Erkenntniswelt der Agenten zu repräsentieren. Dabei muß
dieses System keineswegs geschlossen sein, sondern kann Schnittstellen zu Ressourcen
in seiner Umwelt anbieten.
Der Microsoft Office Agent existiert im Rahmen des Microsoft Office Prozesses mit
seinen Ressourcen und Datenstrukturen. Sein Verhalten kann innerhalb dieses Bezugssystems vollständig beschrieben werden, so daß sich der Prozeß als relevantes Environment anbieten würde. Der Prozeß existiert selbst wiederum im Rahmen des Betriebssystems, dessen Dienste (Dateisystem, Ein- und Ausgabe auf Peripheriegeräten)
als externe Ressourcen zugänglich sind. Dies ließe sich im Stil der Systemebenentheorie
bis auf die Ebene der physikalischen Realität weitertreiben, was in diesem Zusammenhang nicht sinnvoll scheint, da dort keine adäquate Beschreibung mehr möglich ist.
– 75 –
Für die fußballspielenden Roboter des RoboCup bietet sich hingegen die physikalische
Realität, bzw. das Fußballfeld als deren relevanter Ausschnitt, durchaus als passendes
Environment an.
Wo dies sinnvoll erscheint, kann auch ausgehend von einem minimalen Environment
eine Hierarchie jeweils weiter gefaßter Environments definiert werden. Während die
eigentliche Umgebung umfassend modelliert wird, werden dabei die weiteren Environments zumeist entsprechend weniger detailliert beschrieben werden. Sie können
dabei helfen, für bestimmte Prozesse relevante externe Strukturen zu erfassen, ohne
dabei das Kernmodell unnötig aufzublähen.
Daneben können zwischen Environments auch nichthierarchische Beziehungen
bestehen. Das Verhältnis der einzelnen Environments zueinander legt eine netzwerkartige Struktur fest. Die Modellierung von Nachbarschaftsbeziehungen hilft etwa bei der
im Zusammenhang mit Migration, dem Wechsel von einem Environment in ein
anderes, relevanten Frage nach der Existenz und Erreichbarkeit anderer Umgebungen.
Jedes abgegrenzte System besitzt eine zumindest implizite Identität. Die Definition von
Beziehungen erfordert allerdings generell die explizite Verwendung von Ordnungsbegriffen, in diesem Falle bevorzugt Namen oder Adressen.
Für Multiagentensysteme ist es zumeist naheliegend, die von der verwendeten Agentenplattform angebotene Laufzeitumgebung als Environment zu betrachten. Migration ist
dabei der Wechsel zwischen miteinander verbundenen Environments.
Sieht ein Modell die Möglichkeit mehrerer Laufzeitumgebungen auf dem selben
Netzwerkknoten vor und möchte dabei zwischen lokaler und netzwerkbasierter
Migration unterscheiden, ist es sinnvoll, den Netzwerkknoten als übergeordnetes
Environment zu definieren, dessen Strukturelemente die Laufzeitumgebungen sind.
Jedes Environment ist mit drei Spezifikationen assoziiert, die seine spezifischen
Eigenschaften beschreiben. Das Entity Model beschreibt die Strukturen innerhalb des
Environment, das Process Model beschreibt seine aktiven Prozesse und die in ihm
herrschenden Gesetze, und das Service Model beschreibt die angebotene Infrastruktur.
– 76 –
In Abhängigkeit von der Komplexität und der Reichhaltigkeit eines Environment
können die Teilmodelle sehr umfangreich oder auch leer sein.
Die Spezifikation einer Anwendung auf Basis eines Multiagentensystems wird in allen
drei Teilmodellen umfangreiche Festlegungen treffen müssen. Das Umweltmodell eines
persistent gespeicherten Agenten wird dagegen äußerst simplizistisch sein.
Die Beschreibung des Environment legt umfassend den Hintergrund dar, vor dem die
Agenten eines Systems agieren. Das charakteristische Profil unterschiedlicher Architekturen und Plattformen sollte sich als Spezifikation eines Environment eindeutig
ausdrücken lassen. Diese Spezifikation könnte dann als Ausgangspunkt der Modellierung einer konkreten Anwendung auf einer Plattform dienen.
Environments sind zwangsläufig das stabilste Element der Physical Layer. Jedoch
können durchaus zur Laufzeit neue Environments hinzugefügt werden oder – für die
Stabilität verteilter Systeme von größerer Bedeutung – dynamisch entfernt werden.
Letzteres Ereignis muß von der Modellierung erfaßt werden, wenn beim Ausfall eines
Netzwerkknotens alle Agenten, die dorthin migriert waren, auf ihren Ursprungsknoten
automatisch aus Sicherungsdateien wiederhergestellt und reaktiviert werden sollen.
Element Summary
Environment
Hierarchical Name
Physical.Environment
Definition
A system that Agents exist, sense and act in.
Attributes
Identity
Enitity Model Specification
Process Model Specification
Service Model Specification
Relationships
Contains, contained by, references Environment
Contains Entity
Runs Process
Offers Service
Event Classes
Created, Terminated
Examples
Agent management system, virtual machine, file system, operating system,
network node, subset of the physical world.
– 77 –
II.
Modellierung
Da das Environment Model nur einen einzigen Elementtyp enthält, ist sein Strukturmodell entsprechend simpel.
Hierarchy
(0,1)
(0,n)
Environment
(0,n)
(0,n)
Structure
Abbildung 3.4
Elementbeziehungen innerhalb des Environment Model
Wenn bei der Modellierung einer Anwendung mehr als ein Environment definiert wird,
bietet sich eine explizite Darstellung des Teilmodells an. Geeignete Formalismen wären
etwa Organigramme oder UML Deployment-Diagramme.
Im Folgenden wird ein schematisches Beispiel für ein Environment Model einer
verteilten agentenbasierten Anwendung angegeben. Die Agenten werden im Rahmen
von Agentenplattformen (Agent Management System) ausgeführt, die als das primäre
Environment betrachtet werden. Von manchen Plattformen können Agenten serialisiert
und persistent als Datei im Dateisystem (File System) abgelegt werden, wodurch sie von
diesem und nicht mehr von der Agentenplattform abhängig sind. Diesen Environments
übergeordnet ist der Netzwerkknoten (Node), der ein oder mehrere Dateisysteme und
Agentenplattformen enthält. Die Knoten sind teilweise durch ein lokales Netzwerk
(LAN), teilweise durch ein öffentliches Netzwerk (WAN) verbunden, durch die Agenten
sich bei der Migration bewegen. Knoten und Netzwerke können abschließend als
Subsysteme der Realwelt (Physical World) verstanden werden.
– 78 –
Agent
Management
System
Agent
Management
System
Node
WAN
Agent
Management
System
File System
Agent
Management
System
Node
LAN
Node
(Physical World)
Dependency
Accessibility
Abbildung 3.5
Schematischer Aufbau eines Anwendungssystems
Das obenstehende Diagramm illustriert zum einen die existentiellen Abhängigkeiten
zwischen den Umgebungen (durchgezogene Linien) und zum anderen ihre Kommunikationsbeziehungen (gestrichelte Linien).
Die beiden durch ein lokales Netz verbundenen Knoten könnten als eine Region im
Sinne des MASIF-Standards53 betrachtet werden. Die Region sollte aber nicht durch ein
übergeordnetes Environment modelliert werden, da sie im Allgemeinen kein reales,
sondern ein logisches Konstrukt ist. Sie kann auf der konzeptuellen Ebene als Objekt
beschrieben werden, wird hier aber nur durch die besondere Beziehung der beteiligten
Netzwerkknoten (blaue Linien) ausgedrückt.
3.3.1.2 Entity Model
Das Entity Model beschreibt die systeminternen Strukturen eines Environment. Es ist
ein statisches Modell, das nicht den dynamischen Zustand des Systems zu einem
53
Siehe Abschnitt 2.5.1.1, S. 46.
– 79 –
Zeitpunkt beschreibt, sondern die Menge (komplexe Hülle) aller erlaubten Zustände und
Interaktionen festlegt.
Mit Sensoren und Effektoren läßt sich im Grunde nur in Verbindung mit einem
Objektbegriff sinnvoll argumentieren, da sonst nicht beschrieben werden kann, w a s
wahrgenommen bzw. manipuliert wird. Die Objektseite der Interaktionen des Agenten
mit dem Environment wird daher durch ein System von Entities beschrieben. Indem er
ihre Art und Beziehungen im Entity Model54 dokumentiert, legt ein Modellierer eine
Ontologie der wahrgenommenen Agentenumwelt für den weiteren Entwurfsprozeß fest.
Das Entity Model ist primär ein Modellierungswerkzeug. Es beschreibt die Weltsicht
eines e xt e r n e n Beobachters, des Modellierers, und damit nicht zwangsläufig die
tatsächlichen Wahrnehmungen der Agenten. Auf keinen Fall macht es eine Aussage
über die von den Agenten verwendete interne Repräsentation der Welt.
Wie bei der Vorstellung der Theorie der physikalischen Abstützung55 beschrieben,
lehnen Vertreter einer schwachen KI eine Modellierung der Umwelt durch abstrahierende Entitäten prinzipiell ab („Intelligence without representation“, [Brooks 1991]).
Die Abbildung der Welt durch ein System von Symbolen schafft zwar einen – potentiell
trügerischen – Rahmen, in dem Strategien formuliert werden können, die Agenten die
Lösung komplexer Probleme erlauben.56 Praktisch relevant sind die gewonnen Erkenntnisse jedoch nur, wenn auch eine Möglichkeit angegeben wird, wie der Agent in einer
realen Problemsituation die Extraktion der Symbole, die während der Modellierung
vom menschlichen Intellekt geleistet wird, selbst nachvollziehen kann.
Soll die Wahrnehmung der Welt daher strikt aus der Agentenperspektive beschrieben
werden, muß die Modellierung eine rein empiristische Philosophie verfolgen: Die Welt
existiert nur in Form der konkreten Wahrnehmungen der Agenten, so daß sich als Entity
höchstens einzeln abgrenzbare Sensormessungen beschreiben lassen.
54
Abbildung 3.9, S. 94, bietet einen Überblick über die Struktur und Beziehungen der verschiedenen
Arten von Entities. Abbildung 3.10, S. 102, faßt die Modellelemente zusammen, die die Interaktion der
Agenten mit ihrer Umwelt beschreiben.
55
Siehe Abschnitt 2.3.3, S. 29.
56
Ein klassisches Beispiel eines sehr einfachen solchen Rahmens ist die Klötzchenwelt ([Winograd 1972],
vgl. auch [Slaney/Thiébaux 2001]).
– 80 –
In der Subsumption Architecture57 fließen von den Sensoren zu den Systemkomponenten (und zwischen den Komponenten) ausschließlich bedeutungsfreie, nur im
Kontext des Systemzustands von einem externen Beobachter interpretierbare Zahlen.
Dies sind die einzigen identifizierbaren Entities – ein darüber hinausgehendes Modell
der Welt existiert nicht.
Selbst die Verfechter der physikalischen Abstützung erkennen an, daß diese Darstellung
für die Zwecke des menschlichen Modellierers unzureichend ist. Würde jegliche
Metaphysik abgelehnt, ließe sich nicht einmal der Agent selbst als System mit Sensoren
und Effektoren beschreiben. Interaktion in einem Multiagentensystem läßt sich zumindest nicht im herkömmlichen Sinne verstehen, wenn den anderen Agenten keine über
die Wahrnehmungen des betrachteten Agenten hinausgehende Essenz zugesprochen
würde. Zuletzt erfordert die adäquate Formulierung von Zielen und Strategien meistens
abstrakte Begriffe, die eine Interpretation einer Situation zulassen – selbst wenn diese
später im Agenten nur implizit umgesetzt werden. Entscheidend ist, diese Begriffe im
Bezugssystem des Agenten nicht einfach als gegeben vorauszusetzen.
Ein Agent im Rahmen des RoboCup muß andere Spieler erkennen können, was
zumindest ein implizites Bewußtsein bezüglich der Existenz anderer Agenten erfordert.
Weiterhin gilt es, den ‚Ball’ in das gegnerische ‚Tor’ zu befördern – ein Ziel, das sich
ohne diese Begriffe nur sehr umständlich und unverständlich beschreiben läßt. Die
tatsächliche Erkennung von Spielern, Ball und Tor ist allerdings ein erhebliches
technisches Problem.
Für reine Softwareagenten sind die Überlegungen bezüglich der Abbildung der Welt
durch Symbole vergleichsweise unerheblich. In einem Computer als künstlichem
System sind oberhalb der Schaltkreisebene alle Elemente Artefakte, die das Ergebnis
einer Modellierung sind. Daher kann auch durch klar abgegrenzte Entities die objektive
Realität des Systems erfaßt werden.
57
Siehe ebenfalls Abschnitt 2.3.3, S. 29.
– 81 –
I.
Elemente
A.
Entity
Eine Entity ist somit jede Entität, die nach dem Ermessen des Modellierers entweder
selbst ein Agent ist oder zumindest prinzipiell gemäß den Gesetzen des Environment
von einem Agenten wahrgenommen oder beeinflußt werden kann.
Bei der Modellierung der Entities treten die von objektorientierten Modellen bekannten
klassischen Entscheidungsprobleme auf: Die Wahl des Detaillierungsgrades und der
Abgrenzungskriterien zwischen den verschiedenen Entities ist weitgehend willkürlich.
Die Definition einer Entity schließt nicht ein, daß sie Instanz eines Typs sein muß. In
der realen Welt sind Klassen abstrakt, und auch in der Softwaretechnik bietet nicht jede
Programmierumgebung ein Typsystem, weswegen Entities im Allgemeinen ungetypt
sind. Sie können aber eine abstrakte Klasse als Attribut tragen bzw. einen Typ referenzieren, wenn sich dieser als Entity modellieren läßt.
Für physikalische Entities, etwa einen Ball, ist ihre abstrakte Klasse (‚Ball’) nur ein
nominales Attribut. Existiert der Typ einer Entity jedoch konkret, etwa bei einem
Objekt in Form des Programmcodes, kann er auch als Entity referenziert werden.
Jede Entity ist somit eine distinkte Instanz. Dies impliziert, daß jede Entity eine
inhärente Identität besitzt. Diese muß aber kein explizites Attribut sein. Selbst wenn sie
explizit modelliert ist, muß sie nicht zwangsläufig für Agenten wahrnehmbar sein.
Zwei gleichaussehende Tennisbälle sind nur anhand ihrer gegenwärtigen Position (und
beobachteten Vergangenheit) unterscheidbar, ihre Identität wird also nur impliziert.
Zwei gleichaussehende simulierte Gegner bei Quake besitzen zwar innerhalb des
Programms eine explizite Identität (in Form eines Eintrags in einer Zeigertabelle), sind
aber für den Spieler ebenfalls nur anhand ihrer Position unterscheidbar. In einem
MASIF-konformen System hat jeder Agent dagegen eine explizite, öffentliche Adresse.
Bei der Modellierung lassen sich Entities nicht nur eindeutige Bezeichner, sondern auch
beliebige andere, domänenspezifische Attribute zuweisen. Auch hier ist wiederum
– 82 –
Intransparenz durch Kapselung möglich: Eine Entity darf auch Attribute definieren, die
für Agenten nicht wahrnehmbar oder manipulierbar sind.
Entities, von Agenten einmal abgesehen, sind passiv. Daher existieren bei einer
Betrachtung der Dynamik des Systems für sie auch nur drei relevante Klassen von
Ereignissen: Entities können erzeugt, zerstört und durch Agenten oder Umweltprozesse
verändert werden.
Wie einführend gefordert wurde, sollen Entities die gesamte ‚Erkenntniswelt’ der
Agenten beschreiben können, die sich in Abhängigkeit vom Anwendungskontext aus
sehr unterschiedlichen Elementen zusammensetzen kann. Um die Semantik einiger
häufig wiederkehrender Elemente präziser beschreiben zu können, werden im Folgenden Unterklassen von Entity definiert. Neben der schon angedeuteten Unterteilung in
Agenten und Nichtagenten (Items) wird die Menge der Entities darüber hinaus noch
weiter untergliedert.
Agent
Message
d,t
Resource
Item
n,p
Proxy
Entity
Type
Facility
d,p
Percept
Abbildung 3.6
Untergliederung des Begriffs Entity
– 83 –
Element Summary
Entity
Hierarchical Name
Physical.Entity
Definition
Any entity that can potentially be perceived or manipulated by an Agent
Attributes
Identity (implicit)
Type (untyped / nominal / reference to Type Entity)
Set of specific Attributes
Relationships
Arbitrary relationships with other Entities
Perceived by Sensors
Manipulated by Effectors
Event Classes
Created, Changed, Destroyed
Examples
Agents, Walls, Soccer Balls, Sensor Readings, Files, Databases, Sockets,
Messages, Service Directories, Java Objects
i.
Agent
a.
Definition
Agents sind die aktiven Komponenten des Systems. Das Modellelement Agent setzt die
zugrundegelegte58 operative Definition eines Agenten als System, das mit seiner
Umwelt durch Sensoren und Effektoren interagiert, unmittelbar um. Die Definition ist
bewußt so generisch gewählt worden, daß sie auch von klassischen Automaten erfüllt
wird. Was als Agent modelliert wird, liegt weitestgehend im Ermessen des Entwicklers,
auch wenn sich für etablierte Anwendungskontexte sicherlich Erfahrungswerte formulieren lassen, welche Granularität und Anzahl von Agenten am zweckmäßigsten
erscheint.59
Der eBay-Agent ist als ein einfacher Automat interpretierbar, der eine Eingabe (neues
fremdes Höchstgebot) gemäß einer Regel (maximal gewünschtes Gebot) in eine
Ausgabe (neues eigenes Gebot) transformiert. Sein Agentenstatus läßt sich eher auf der
konzeptuellen Ebene begründen, da er stellvertretend und selbsttätig handelt.
Von wesentlicher Bedeutung ist, wie der Agent als System mit Ein- und Ausgabebeziehungen abgegrenzt wird. Per Definition ist jeder Agent auch eine Entity. Er kann somit
58
59
Siehe Abschnitt 3.1.2, S. 59.
Für entsprechende Faustregeln vgl. etwa [Wooldridge/Jennings 1998, S. 5f].
– 84 –
von anderen Agenten und der Umwelt wahrgenommen und manipuliert werden, was
eine Grundvoraussetzung für Interaktion in Multiagentensystemen ist. Dabei kann für
den Agenten bereits in seiner Eigenschaft als Entity eine Kapselung seiner Attribute
definiert werden. Da der Kapselungsaspekt bei Agenten hier aber als zentral angesehen
wird, erscheint in diesem Zusammenhang die Möglichkeit zu einer präziseren Beschreibung erforderlich. Daher läßt sich ein Agent bei Bedarf in zwei Teile unterteilen: die
Agent Shell, die als ‚äußere Hülle’ die extern beobachtbare Repräsentation des Agenten
beschreibt, und den Agent Core, der die Interna des Agenten wie die technische
Umsetzung einer eventuellen Wissensrepräsentation oder Inferenzmaschine umfaßt.60
Auf diese Weise kann klar modelliert werden, welche Informationen über einen
Agenten auf technischer Ebene anderen Agenten zur Verfügung stehen.
Ein Agent hat per Definition die volle Kontrolle über seinen Agent Core in dem Sinne,
daß sein Zugriff darauf keinen extern diktierten Einschränkungen unterliegt. Die Agent
Shell kann dagegen durch ihre Umwelt verändert werden. Der Agent hat zwar in der
Regel einen privilegierten Zugang zu seiner Agent Shell, kann sie aber unter Umständen nicht direkt, sondern nur unter Verwendung von Sensoren und Effektoren wahrnehmen bzw. beeinflussen.
Aglets verwenden ein Proxy-Objekt (Agent Shell), das die öffentlichen Methoden des
eigentlichen Aglet-Objekts (Agent Core) schützt. In einer simulierten Welt (wie etwa
Quake) repräsentiert in der Regel ebenfalls ein Objekt (Agent Shell) den simulierten
‚Körper’ des Agenten. Auf dessen Attribute, beispielsweise die Position im simulierten
Raum, hat der Agent keinen direkten Einfluß, sondern kann sie nur durch Effektoren
(‚bewege’) im Rahmen der Gesetze der simulierten Welt verändern. Dies läßt sich
unmittelbar auf physikalische Agenten übertragen, die den Naturgesetzen unterworfen
sind und nur die Informationen über ihr Chassis besitzen, die ihre Sensoren liefern (also
etwa nicht ihre Farbe, wenn sie Ultraschallsensoren verwenden).
60
Dies zieht auf der technischen Ebene eine Parallele zur Unterscheidung zwischen Observable Core und
Internal Machinery auf der konzeptionellen Ebene durch Viroli/Omicini (siehe Abschnitt 2.4.3, S. 44).
– 85 –
Der Versuch, den Agenten durch zwei völlig getrennte Entitäten zu beschreiben, führt
zu unintuitiven Ergebnissen. Wird die physikalische oder virtuelle Steuerungslogik als
der eigentliche Agent und die von außen zugängliche Repräsentation als quasi ferngesteuerte passive Entity gesehen, geht dabei die existentielle Abhängigkeit zwischen den
beiden Teilen verloren. Die Trennung zwischen Agent Shell und Agent Core ist
weicher und kontextbezogen modellierbar.
Unintuitiv erscheint etwa, das menschliche Nervensystem als einen Agenten zu sehen,
der den Körper als separate Entität steuert. Eine Sicht der Körperoberfläche als unmittelbar wahrnehmbare und beeinflußbare Hülle um ein weitgehend selbstbestimmtes
Inneres ist hingegen für viele alltägliche Situationen praktikabel.
Als der Agent im weiteren Sinne kann der eigentliche Agent zusammen mit den von
ihm benötigten proprietären Ressourcen61 verstanden werden.
Die Sensoren und Effektoren, mit denen der Agent mit dem Environment interagiert,
werden als eine Menge ihm zugeordneter Sensors und Effectors beschrieben. Sensors
und Effectors werden unten als eigene Modellelemente definiert.62
b.
Zustandmodell und Lebenszyklus
Da Agents die zentralen aktiven Elemente des Modells sind, sind die mit ihnen assoziierten Zustände und Ereignisse für die Beschreibung der Dynamik des Systems von
besonderem Interesse. Viele der technisch relevanten Prozesse und Ausnahmezustände
sind eng mit Zustandsübergängen von Agents verknüpft.
Jeder Agent entspricht als aktives System dem von Prozessen bekannten trivialen
Zustandsmodell wird aktiviert → wird ausgeführt → beendet, wobei der letzte Zustand
nicht in endlicher Zeit erreicht werden muß. Softwareagenten im Besonderen hängen zu
ihrer Ausführung in irgendeiner Form von einem Betriebssystemprozeß ab und sind
somit dessen Lebenszyklus Initialisierung, Ausführung/Warten, Terminierung (Initiali-
61
62
Siehe im Detail Resource, S. 90.
Siehe Sensor, S. 97 bzw. Effector, S. 99.
– 86 –
zing → {Running ↔ Waiting} → Terminated) unterworfen. Soll der Agent zusätzlich
Persistenz bieten, muß der gegenwärtige Ausführungszustand eingefroren und gespeichert werden können. Der Agent kann dann mit dem gespeicherten Zustand neu
initialisiert und reaktiviert werden. Der identische Mechanismus wird gegebenenfalls
von zustandsbehafteter Migration genutzt, zustandslose Migration entspricht einer
Neuinitialisierung im Ziel-Environment.
Abbildung 3.7
Initialized
Active
Captured
Suspended
Terminated
Grundlegendes Zustandsmodell eines Agenten
Dies führt auf das obenstehende einfache Zustandsmodell mit den Zuständen Initialized
(ist initialisiert), Active (wird ausgeführt), Suspended (wartet/eingefroren), Captured
(Ausführungszustand eingefangen) und Terminated (ist beendet).
Nachfolgend wird auf Basis dieser Zustände ein detaillierteres Lebenszyklusmodell in
Form eines Aktivitätsdiagrammes vorgestellt, das näher auf die Auslöser der Zustandsübergänge eingeht und mögliche Ausführungsfehler einschließt. Die in der Beschreibung in Klammern angegebenen Begriffe sind die von den Zustandsübergängen
ausgelösten Ereignisse.
Eine neue Agenteninstanz wird zunächst erzeugt und initialisiert, was scheitern kann
(Ereignis: failed). Bei Erfolg (initialized) wird versucht, die zur Ausführung des
Agenten erforderlichen Ressourcen zur Verfügung zu stellen, und gegebenenfalls
gewartet. Sobald alle Ressourcen verfügbar sind, wird der Agent ausgeführt (activated).
Dabei kann er neue Ressourcen anfordern, auf die er gegebenenfalls warten muß
(interrupted). In der Regel erfordert eine erfolgreiche Beendigung der Ausführung
(completed), daß der Agent zu diesem Zeitpunkt aktiv ist, da nur der Agent selbst den
Erfolg erklären kann. Die Ausführung des Agenten kann jederzeit scheitern (aborted).
Der Agent kann während der Ausführung und während er auf Ressourcen wartet exogen
angehalten werden (suspended). Er ist dann vollkommen inaktiv und fremdbestimmt,
kann aus diesem Zustand aber noch direkt wieder aufgeweckt werden. Die Suspendierung kann allerdings auch bedeuten, daß der Agent durch einen gezielten Akt oder im
– 87 –
Rahmen der Terminierung seines Environments vorzeitig beendet wird (aborted).
Zuletzt kann sie auch bedeuten, daß der Agent eingefroren wird, um seinen Zustand
einfangen zu können. Dieser kann persistent gespeichert werden (stored) oder im
Rahmen eines Migrationsprozesses sein Environment verlassen (migrated) und in ein
anderes Environment wandern. Ein System kann Mechanismen vorsehen, um auf
Fehler während der Migration (lost) zu reagieren, in Softwaresystemen etwa durch
Reaktivieren einer lokal zurückbehaltenen Kopie. Bei erfolgreicher Migration oder der
Wiederherstellung aus einem nichtflüchtig gespeicherten Zustandsabbild wird versucht,
den Ausführungszustand des Agenten wiederherzustellen. Ist dies erfolgreich (reactivated), werden wiederum Ressourcen alloziert und die Ausführung wieder aufgenommen.
[Transmission successful]
[Store]
[Completed]
Abbildung 3.8
[Migrate]
[Transmission error]
Transitting
[Save agent state]
Suspended
[Terminate execution]
[Suspend acquisition]
[Resources available]
[Resume execution]
[Suspend execution]
Capture State
[Execution failure]
[Completion]
Run Agent
[Failed]
Persistently
stored
[Wait for resource]
Acquire
Resources
[Resource required]
[Initialized]
[Initialization failure]
Initialize Agent
[Reactivate]
[Aborted]
[Rollback]
Recovery
Procedures
[No recovery]
[Agent reconstructed]
Reconstruct
State
[Lost]
Schema des Agentenlebenszyklus
Der beschriebene Lebenszyklus ist etwa in Verbindung mit den Diensten des Service
Model von Bedeutung, da verschiedene Dienste die beschriebenen Zustandsübergänge
entweder auslösen oder von ihnen angestoßen werden.
– 88 –
Element Summary
Agent
Hierarchical Name
Physical.Entity.Agent
Extends
Entity
Definition
The concrete manifestation of an agent
Attributes
Internal state
Relationships
May consist of Agent Shell and Agent Core
Possesses Sensors
Possesses Effectors
Event Classes
Initialized, Activated, Interrupted, Suspended, Reactivated, Stored, Migrated
Lost, Failed, Aborted, Completed
Examples
See Section 2.5.3 above.
Element Summary
Agent Shell
Hierarchical Name
Physical.Entity.Agent.Shell
Definition
The observable, accessible part of an Agent’s implementation
Relationships
Subsystem of Agent
Examples
An Aglet’s Proxy object, the player’s avatar in a game
Element Summary
Agent Core
Hierarchical Name
Physical.Entity.Agent.Core
Definition
The internal, self-controlled part of an Agent’s implementation
Relationships
Subsystem of Agent
Examples
The actual Aglet object, the player of the game, a BDI-engine
ii.
Item
Item ist der Gegenbegriff zu Agent: Jede Entity, die kein Agent ist, ist ein Item. Items
sind somit die passiven Komponenten des Environment. Items machen gerade im Falle
von Softwareagenten zumeist den überwiegenden Teil des Gesamtsystems aus. Spezielle – weder erschöpfende noch sich gegenseitig ausschließende – Unterklassen von Item
sind Nachrichten, Ressourcen, externe Schnittstellen und Typdefinitionen.
In einem objektorientiert programmierten Agentensystem sind alle Objekte – außer den
Agenten natürlich – Items.
– 89 –
Element Summary
Item
Hierarchical Name
Physical.Entity.Item
Extends
Entity
Definition
An Entity that is specifically not an Agent
Examples
Bank account, soccer ball, XML message, executable file, database
a.
Message
Aufgrund der besonderen Bedeutung, die Kommunikation in vielen Multiagentensystemen zukommt, werden Nachrichten gesondert modelliert. Eine Message ist ein Item,
das zur Kommunikation dient. Die Sicht ist wiederum agentenzentrisch: Per Definition
ist eine Message jedes Item, das von einem Verbal Effector erzeugt bzw. von einem
Auditive Sensor63 wahrgenommen wird.
Eine FIPA-ACL Nachricht, die von zwei Agenten eines Systems ausgetauscht wird, ist
das naheliegendste Beispiel einer Message. Eine Message kann aber auch ein Lichtblitz,
ein gesetztes Flag, eine Datei oder ein Funktionsaufruf sein.
In der Anwendung ist es in vielen Fällen eine Frage der Interpretation, was genau als
Message zu werten ist. Bietet das Environment dedizierte Mechanismen zum Nachrichtentransport, wie sie etwa der FIPA-Standard oder viele Agentenplattformen vorsehen,
ist die Definition eindeutig. Ist eine Message jedoch nicht auf technischer, sondern nur
auf semantischer Ebene als solche erkennbar, ist sie ein soziales Konstrukt und somit
nur unter Bezugnahme auf die Conceptual Layer definierbar. Unter Umständen, wie
etwa im Falle des Funktionsaufrufes, können Messages auch nur ein abstraktes Konzept
sein.
Messages haben einen Absender, den Agenten, der sie erzeugt hat. Sie können einen
oder mehrere explizit angegebene Empfänger haben, wenn das Transportmedium dies
zuläßt. Ihr Inhalt ist in einer festgelegten Form kodiert. Die Bedeutung des Inhalts ist
auf der Conceptual Layer definiert.
63
Dies sind die unten genauer definierten Sensoren und Effektoren eines Agenten, die dediziert der
Kommunikation dienen. Siehe Sensor, S. 97 bzw. Effector, S. 99.
– 90 –
Eine FIPA-ACL Nachricht hat einen expliziten Absender und Empfänger. Sie kann in
XML oder im LISP-Stil kodiert werden. Ihre Bedeutung ergibt sich aus den im
Standard angeführten Definitionen in FIPA-SL.
In Verbindung mit Messages können einige spezifische Ereignisklassen auftreten, die
mit der Übertragung der Nachricht zusammenhängen: Die Zustellung kann erfolgen,
vom Transportsystem aufgeschoben werden oder endgültig scheitern.
Element Summary
Message
Hierarchical Name
Physical.Entity.Item.Message
Extends
Item
Definition
An Item that is emitted by a Verbal Effector or sensed by an Auditive Sensor,
i.e. represents a communication
Attributes
Emitting Agent , Addressee(s), Content, Encoding, Semantics
Relationships
Emitted by Verbal Effector
Perceived by Auditive Sensor
Event Classes
Received, Queued, Failed
Examples
ACL message, text file, specific function call, sound or light pattern
b.
Resource
Eine Resource ist ein Item, das von einem Agenten zur Ausführung benötigt wird. Der
Begriff wird in zwei unterschiedlichen Ausprägungen verwendet. Proprietary Resources sind mit einem Agenten assoziierte Items, die somit Teil des Agenten im weiteren
Sinne sind. Migriert der Agent in ein neues Environment, müssen alle seine Proprietary Resources dort entweder schon vorhanden sein oder mit ihm migrieren.
In einem Java-basierten System sind typische Proprietary Resources die .class oder
.jar Dateien, in denen sein ausführbarer Code gespeichert ist. Als Proprietary Resource
eines Roboters könnte etwa eine externe Stromversorgung gesehen werden.
Shared Resources sind dagegen öffentliche Ressourcen, die in der Regel an ein
Environment gebunden sind und nicht migrieren können. Sie sind nicht mit einem
bestimmten Agenten assoziiert, sondern werden von allen Agenten und Umweltprozessen gemeinsam genutzt, sei es gleichzeitig oder sequentiell exklusiv.
– 91 –
Typische Shared Resources in einem Softwaresystem sind Dateien, Sockets oder
externe Datenbanken. Im abstrakteren Sinne sind darunter auch Rechenzeit und
verwendeter Arbeitsspeicher zu verstehen.
Allen Resources ist gemein, daß sie entweder verfügbar, angefordert, aber noch nicht
erhalten, oder nicht verfügbar sind. Wenn eine Resource nicht verfügbar ist, wird die
reguläre Ausführung des Agenten zwangsläufig unterbrochen; es ist aber denkbar, daß
der Agent aktiv auf den Ausnahmezustand reagiert, etwa durch Abbruch der Migration
im Falle einer Proprietary Resource oder durch Aufgabe der konkreten Aktivität, die
eine bestimmte Shared Resource benötigt.
Element Summary
Resource
Hierarchical Name
Physical.Entity.Item.Resource
Extends
Item
Definition
An Item that is required for an Agent’s execution
Relationships
Required by Agent
Event Classes
Available, Requested, Unavailable
Examples
Configuration file, .jar file, socket, external database, memory, power cable
c.
Proxy
Ein Proxy ist ein Item, das eine Entität außerhalb des Environment vertritt. Proxies
sind die Schnittstellen, die das Environment den Agenten anbietet, etwa um in anderes
Environment zu migrieren oder um auf die umgebende Infrastruktur zuzugreifen.
Viele Agentenplattformen bieten Schnittstellen zu externen Datenbanken, zum Netzwerk oder zum Dateisystem an, die als Proxies verstanden werden können.
Daneben kann ein Proxy auch zur Kommunikation dienen. Verläßt ein Agent ein
System, kann er einen Proxy zurücklassen, über den andere Agenten ihm Nachrichten
nachsenden können. (Der Proxy vertritt zwar einen Agenten, ist aber passiv und daher
ein Item.)
Aglets verwenden Proxies in diesem Sinne zum Routing von Nachrichten.
Da die durch den Proxy repräsentierte Entity Teil eines anderen Environments ist,
entzieht sie sich der direkten Kontrolle durch das lokale Environment. Daher kann es
– 92 –
vorkommen, daß zwar ein Proxy verfügbar ist, dessen Verbindung zur repräsentierten
Entität aber unterbrochen ist.
Element Summary
Proxy
Hierarchical Name
Physical.Entity.Item.Proxy
Extends
Item
Definition
An Item that represents an Entity external to its own Environment
Relationships
Represents an Entity
Event Classes
Connected, Disconnected
Examples
Neighboring environment, socket, database interface, migrated agent
d.
Type
Ein Type ist eine Entity, das einen Agenten- oder Entitytyp darstellt. Als Entity ist er
wahrnehmbar; er ist also die konkrete Repräsentation eines Typs oder einer Klasse im
Environment. In diesem Sinne ist er eng mit dem Konzept der Proprietary Resource
verbunden, da bei Verwendung eines Typsystems die Typdefinition meist zur Ausführung der Instanzen benötigt wird.
Der Programmcode bzw. die Klassendefinition eines Softwareagenten in Form einer
ausführbaren Datei, einer Bibliothek, einem Skript oder einer Java .class Datei definiert
seinen Typ. Der Agent kann ohne diese Spezifikation nicht ausgeführt werden.
Wenn ein Typsystem vorhanden ist, kann die Verwaltung der Typen durch einen
entsprechenden Service beschrieben werden. Die Instanzbeziehung zwischen Entity und
Type ist einfach nur eine spezielle Beziehung zwischen zwei Entities. In ähnlicher
Weise können Types auch voneinander erben oder abstrakte Spezifikationen implementieren.
Element Summary
Type
Hierarchical Name
Physical.Entity.Item.Type
Extends
Item
Definition
An Item that defines an Agent- or Entity-type
Attributes
Specification
Relationships
Instantiated by Agent, respectively Entity
May extend or implement other Types
Event Classes
Instantiated
Examples
Java .class or .jar file, executable, script
– 93 –
iii.
Facility
Eine Facility ist ein Entity, das einen Service64 implementiert. Dienste sind abstrakt;
damit sie von Agenten wahrgenommen und benutzt werden können, müssen sie eine
Schnittstelle in Form einer Entity anbieten. Eine Facility kann dabei selbst ein Agent
oder ein passives Item sein.
Der Postzustellungsdienst wird in der realen Welt durch Briefkästen und Postzusteller
implementiert. In einem Softwaresystem existiert in der Regel ein Verzeichnisdienst,
der entweder in Form einer Liste, in der Agenten nachschlagen können, oder eines
Agenten, an den die anderen Agenten Anfragen schicken können, implementiert ist.
Wie Resources können Facilities verfügbar, angefordert oder nicht verfügbar sein.
Element Summary
Facility
Hierarchical Name
Physical.Entity.Facility
Extends
Entity
Definition
An Entity that implements a Service
Attributes
Profile
Relationships
Implements Service
Event Classes
Available, Requested, Unavailable
Examples
Directory service, yellow pages, message sink, broker, scheduler
iv.
Percept
Ein Percept ist ein Entity, das im Zuge seiner Wahrnehmung durch einen Sensor65 erst
erzeugt wird. Es wird nur benötigt, wenn bei physikalischen Agenten oder speziellen
Klassen von Softwareagenten die Wahrnehmungsprozesse eines Agenten explizit erfaßt
werden sollen. Ein Percept beschreibt einen konkreten, abgegrenzten Eindruck vom
Zustand des Environments, der dem Agenten von seinem Sensor geliefert wird.
Tastet ein Roboter seine Umgebung in regelmäßigen Abständen mit Sonar auf Hindernisse ab, kann das Ergebnis jeder Messung (Rohdaten oder schon vorstrukturiert) als
64
65
Siehe im Detail Abschnitt 3.3.1.4, S. 108.
Siehe Sensor, S. 95.
– 94 –
Percept verstanden werden. Für rein virtuelle Agenten kann dies ebenfalls relevant sein,
wenn sie, wie etwa der Office Agent, versuchen, das Verhalten des Benutzers zu
beobachten.
Element Summary
Percept
Hierarchical Name
Physical.Entity.Percept
Extends
Entity
Definition
A distinct signal emitted by a Sensor of an Agent
Attributes
Pattern
Relationships
Perceived by Sensor
Event Classes
Emitted
Examples
Light or sound pattern described by a sensor, observation about user behavior
B.
Zusammenfassung Strukturaspekt
Die folgende Grafik faßt nochmals die wichtigsten unter den vorgestellten Beziehungen
zwischen den verschiedenen Klassen von Entities zusammen. Die Spezialisierungsbeziehungen wurden hier aus Gründen der Übersichtlichkeit unterdrückt.
Proxy
Agent Shell
Agent Core
(0,1)
(1,1)
(1,1)
represents
consists of
consists of
emits
(1,1)
Message
Environment
Structure
(0,n)
(0,n)
(1,1)
(0,n)
(0,n)
exists in
(1,1)
Entity
d,t
requires
(1,1)
(0,n)
(0,n)
(0,n)
(0,n)
perceives
(1,1)
(0,n)
Structure
Type
Abbildung 3.9
Percept
Item
uses
(0,n)
Resource
Agent
(0,n)
instantiates
(0,n)
Facility
(1,n)
(0,n)
(0,n)
Service
Elementbeziehungen innerhalb des Entity Model
(0,n)
implements
– 95 –
C.
Sensor
Ein Sensor erlaubt einem Agent, Entities in seinem Environment wahrzunehmen. Der
Sensor verwandelt externe Signale in eine agenteninterne Repräsentation der Umwelt.
‚Repräsentation’ setzt in diesem Zusammenhang weder eine Abbildung durch Symbole
noch ein ‚Gedächtnis’ mit einem konsolidierten Modell der Welt voraus.
Ein Sensor kann sowohl aktiv als auch passiv sein. Passive Sensors werden aus dem
Environment entweder mit einem stetigen Datenstrom versorgt oder in Reaktion auf ein
Ereignis angestoßen. Active Sensors fragen entweder kontinuierlich oder in Intervallen
ihr Environment aktiv ab. Diese Unterscheidung zwischen pull- und push-Prinzip wird
lediglich aus praktischen Erwägungen vorgeschlagen, um die Systembeschreibung
intuitiver zu machen. Theoretisch läßt sich jeder aktive Sensor als eine Kombination aus
einem Effektor und einem passiven Sensor beschreiben.
Ein Sonar ist ein in kurzen Intervallen arbeitender aktiver Sensor, eine Fotozelle ein
kontinuierlich arbeitender passiver. Eine Methode, mit der der Nachrichtentransportdienst eine Nachricht an einen Agenten übergeben kann, ist ein passiver Sensor, eine
Methode zum Abfragen einer Datenbank ein aktiver.
Sensors sind notwendigerweise spezialisiert und nehmen nur bestimmte Attribute einer
wohldefinierten Menge von Entities wahr. Daher gilt für physikalische wie softwarebasierte Agenten gleichermaßen, daß sie sich in einem neuen Environment nur zurechtfinden können, wenn ihre Sensors auf die vorhandenen Entities abgestimmt sind.
In einem völlig dunklen Labyrinth kann sich ein Agent nur mit Hilfe eines ‚passenden’
Sensors wie etwa Sonar orientieren, eine Fotozelle ist dagegen nutzlos. Eine SQLDatenbankabfrage setzt eine bestimmte Tabellenstruktur voraus.
Besonders Kommunikation zwischen Agenten oder Agenten und dem Environment
erfordert, daß mindestens eine der beteiligten Seiten a priori Wissen über die Schnittstellen des anderen besitzt. Daher ist es für offene Systeme wichtig, in diesem Bereich
eine wohldokumentierte Infrastruktur anzubieten.
– 96 –
Der MASIF-Standard beschreibt mit dem MAFFinder eine Entity, von der sich
Informationen über andere Agenten aktiv erfragen lassen.
Passive Sensors arbeiten synchron, aktive Sensors können dagegen auch asynchron
arbeiten, wie sich aus der Sicht als Paar aus einem Effector und einem passiven Sensor
direkt ableitet. Wichtigstes mit Sensors assoziiertes Ereignis ist der Empfang eines
Reizes.
Ein Sensor definiert einen Context66, die Menge der Entities, die er gegenwärtig
wahrnehmen kann. Wird die Welt aus der Agentenperspektive beschrieben, erzeugen
Sensors durch die Wahrnehmung Percepts.
Das Modell definiert zwei Unterklassen von Sensoren – im Wesentlichen, um zwischen
dem in Softwaresystemen besonders wichtigen Nachrichtenaustausch und anderer
Wahrnehmung unterscheiden zu können. ‚Kommunikationssensoren’ zum Empfang von
Nachrichten heißen Auditive Sensors, ‚Allzwecksensoren’ zur Formung eines Bildes
vom umgebenden Environment heißen Visual Sensors. Die Unterscheidung ist
wiederum vor allem eine Argumentationshilfe, da eine theoretisch scharfe Trennung
nicht generell möglich ist.
Element Summary
Sensor
Hierarchical Name
Physical.Sensor
Definition
A device allowing an Agent to sense Entities in its Environment
Attributes
Identity, Scope
Relationships
Belongs to Agent
Defines Context
Perceives Entities
May generate Percepts
Event Classes
Stimulated, Context changed
Examples
Sonar, inductive contacts, receive(message), agents.list(), ls command
66
Siehe Context, S. 99.
– 97 –
i.
Visual Sensor
Die Sensorenklasse der Visual Sensors faßt alle Sensors zusammen, mit denen auch
passive Entities ‚unmittelbar’ wahrgenommen werden können. Der Name soll nicht
suggerieren, daß die Wahrnehmung visuell sein muß – sie kann auch akustisch, taktil
oder rein virtuell sein. Er soll nur vermitteln, daß der Agent direkt einen Eindruck von
seiner Umwelt gewinnen kann.
Ein Sonar, ein Funktionsaufruf, der eine Liste aller im System befindlichen Agenten
zurückgibt oder der UNIX-Befehl ls im Kontext des Dateisystems sind Visual Sensors.
Element Summary
Visual Sensor
Hierarchical Name
Physical.Sensor.Visual
Extends
Sensor
Definition
A Sensor that allows the direct observation of the Environment
Examples
Sonar, inductive contacts, agents.list(), ls command
ii.
Auditive Sensor
Die Sensorklasse der Auditive Sensors umfaßt die Sensors, die Kommunikation
empfangen können, die aktiv von anderen Agenten ausgesendet wurde. Entities, die zur
Kommunikation dienen, sind per Definition Messages.
Die receive(Message) Methode vieler Architekturen ist der typische Auditive
Sensor. Die Subroutine, mit der ein Agent auf einem elektronischen Marktplatz
regelmäßig seine Postfächer auf Angebote überprüft, könnte als aktiver Auditive Sensor
gesehen werden. In einem Tuple Space [Silva 1999] ist ein Auditive Sensor nur eine
spezielle Interpretation eines Visual Sensor.
Element Summary
Auditive Sensor
Hierarchical Name
Physical.Sensor.Auditive
Extends
Sensor
Definition
A Sensor that receives communications
Relationships
Receives Messages
Event Classes
Received Message
Examples
receive(message)
– 98 –
D.
Effector
Agents besitzen Effectors, um Entities in ihrem Environment zu manipulieren. Ihre
Anwendung wird exklusiv vom AgentCore gesteuert, der sie bei Bedarf unter Bereitstellung der nötigen Parameter aktiviert. Wie die Sensors sind auch Effectors auf
bestimmte Aktionen und Entities spezialisiert. Dabei kann ein einzelner Effector eine
einfache, allgemein gehaltene oder eine komplexe, sehr spezialisierte Tätigkeit beschreiben.
Physikalische Effectors sind etwa Motoren. In Softwaresystemen lassen sich Effectors
im Grunde immer auf den Aufruf von Funktionen oder Programmen zurückführen,
können dabei aber komplexere Tätigkeiten wie das Erstellen und Versenden einer
XML-Nachricht, die Migration in ein anderes Environment, das Anlegen einer Datei
oder das Schreiben in eine Datenbank umfassen.
Jeder Effector definiert ebenfalls einen Context67, die Menge der Entities, die er
gegenwärtig beeinflussen kann. Seine Anwendung kann synchron oder asynchron sein,
dementsprechend sind die mit einem Effector assoziierten Ereignisse der Beginn und
der Abschluß seiner Anwendung.
Das Modell definiert wiederum zwei Unterklassen von Effector: Operative Effectors,
die Entities direkt manipulieren, und Verbal Effectors, die Messages erzeugen und
dadurch indirekt auf andere Agents einwirken.
Element Summary
Effector
Hierarchical Name
Physical.Effector
Definition
A device allowing an Agent to manipulate Entities in its Environment
Attributes
Identity, Scope
Relationships
Belongs to Agent
Defines Context
Manipulates Entities
Event Classes
Invoked, Applied
Examples
Motors, robotic hand, non-constant function calls, SQL UPDATE, rm
67
Siehe Context, S. 99.
– 99 –
i.
Operative Effector
Ein Operative Effector manipuliert den Zustand einer oder mehrerer Entities des
Systems direkt. Alle im vorherigen Abschnitt beschriebenen Effectors sind auch
Operative Effectors.
Element Summary
Operative Effector
Hierarchical Name
Physical.Effector.Operative
Extends
Effector
Definition
An Effector that directly operates on Entities
Examples
Motors, robotic hand, non-constant function calls, SQL UPDATE, rm
ii.
Verbal Effector
Ein Verbal Effector dient zum Absetzen von Nachrichten. Da Messages Entities sind,
kann ein Verbal Effector in der Regel als ein Sonderfall eines Operative Effector
interpretiert werden. Der Begriff Verbal Effector soll nicht Sprechakte (Speech Acts)
implizieren – Messages können beliebig primitiv sein.
Auf einer typischen Agentenplattform erstellt ein Verbal Effector eine neue Nachricht
und übergibt sie an das Nachrichtentransportsystem.
Element Summary
Verbal Effector
Hierarchical Name
Physical.Effector.Verbal
Extends
Effector
Definition
An Effector that emits Messages
Relationships
Emits Message
Examples
queue(Message)
E.
Context
Context ist ein Begriff, der für die Beschreibung von Interaktionen innerhalb des
Modells von zentraler Bedeutung ist. Der Context eines Agent besteht aus der Menge
aller Entities, die der Agent entweder wahrnehmen oder manipulieren kann. Der
Context zerfällt in zwei natürliche, nicht unbedingt deckungsgleiche Teile: den
Perceptual Context, der aus den von den Sensoren wahrnehmbaren Entities besteht,
und den Effective Context, der die manipulierbaren Entities enthält. Die beiden
Teilkontexte lassen sich wiederum in problembezogene Teilkontexte zerlegen, bis auf
der untersten Ebene die Contexts jeweils für einen Sensor bzw. Effector definiert sind.
– 100 –
Ein gutes Beispiel für ein System von Contexts sind die Zugriffsrechte, die menschliche
oder virtuelle Benutzer auf ein UNIX-Dateisystem besitzen. Abgestuft nach Benutzerkennung und Gruppenzugehörigkeit kann festgelegt werden, welche Dateien verschiedene Benutzer auflisten und lesen (Perceptual Context) bzw. schreiben und löschen
(Effective Context) dürfen.
Die Modellierung ist wiederum durch die agentenzentrierte Sichtweise des Modells
motiviert: Der Agent ist in beiden Fällen Subjekt. Die umgekehrte Perspektive, die
Betrachtung des passiven Kontextes, in dem der Agent Objekt ist, also von anderen
Agenten gesehen und geändert werden kann, ist meist von geringerer praktischer
Bedeutung. Sie wird daher hier nicht näher modelliert, zumal sie sich im Bedarfsfall
indirekt aus den Contexts der anderen Agents ableiten läßt.
In der simulierten Welt von Quake ist der Perceptual Context eines Avatars seine
Sichtweite, sein Effective Context die Reichweite seiner Waffen. Ob der Avatar von
anderen Agenten gesehen wird und vor allem mit deren Waffen erreicht werden kann,
ist eine Frage von durchaus vitalem Interesse. Die zu ihrer objektiven Beantwortung
benötigten Informationen stehen dem Agenten im Rahmen des Spiels nicht zur Verfügung, so daß sich ein entsprechender passiver Kontext zwar definieren, aber nicht
sinnvoll in der Implementierung umsetzen ließe.
Der Context erfüllt im Modell zwei Aufgaben. Zum einen dient er wie in den vorgestellten Beispielen der Beschreibung der Fähigkeiten und Zugriffsrechte der einzelnen
Sensors und Effectors. Auf diese Weise ist er eine Argumentationshilfe bei der
Betrachtung der möglicher Interaktionen im Modell.
Zum anderen ist er der konkrete Ausdruck der logischen Ordnung der Agents im
Environment. Aus dieser Perspektive wird ein Agent nicht durch eine absolute Positionsangabe, sondern seine relative Stellung zu anderen Entities lokalisiert.
Dies ist eine Verallgemeinerung des in anderen Modellen verwandten Begriffs Place. In
einem selbstorganisierenden Netzwerk wird die Position eines Agenten nicht durch eine
feste Adresse, sondern durch seine Verknüpfungen zu benachbarten Agenten definiert.
– 101 –
Die Menge der zu einem Context gehörenden Entities wird entweder intern durch den
Agenten selbst bestimmt, etwa durch die Agenten, die der Agent ’kennt’, oder exogen
durch das Environment vorgegeben, wobei sowohl die rein technischen als auch
anwendungsspezifischen Gegebenheiten eine Rolle spielen können. Rechte und
Verbote, die auf der konzeptuellen Ebene definiert werden, schlagen sich üblicherweise
direkt in einer Änderung des Context nieder.
Anschaulich, wenn auch nicht in dieser Form agentenspezifisch, wird das Prinzip des
selbstverwalteten Context durch Programme zum Instant Messaging illustriert. Nur bei
Personen, die der Benutzer zunächst seiner Freundesliste hinzugefügt hat, ist die
Anwesenheit am Rechner beobachtbar.
Element Summary
Context
Hierarchical Name
Physical.Context
Definition
A set of Entites that can either be sensed or manipulated by an Agent
Relationships
Associated with Agent
May be composed of other Contexts
Event Classes
Changed
Examples
Agents on the same platform, accessible database records
i.
Perceptual Context
Ein atomarer Perceptual Context umfaßt die Entities, die ein Agent mit einem konkreten Sensor wahrnehmen kann. Ein zusammengesetzter Perceptual Context ist die
Vereinigungsmenge verschiedener Teilkontexte. Der gesamte Perceptual Context eines
Agent ist die Summe der Kontexte seiner einzelnen Sensors.
Element Summary
Perceptual Context
Hierarchical Name
Physical.Context.Perceptual
Extends
Context
Definition
The set of Entities that can be sensed with one of an Agent’s Sensors
Relationships
Defined by Sensor
Examples
Visual range, accessible database records, Instant Messaging friends list
ii.
Effective Context
Der Effective Context ist das operative Gegenstück zum Perceptual Context. Für jeden
Effector beschreibt ein einfacher Effective Context, welche Entities ein Agent damit
– 102 –
manipulieren kann. Der Gesamtkontext ist wiederum sie Vereinigungsmenge aller
Einzelkontexte.
Element Summary
Effective Context
Hierarchical Name
Physical.Context.Effective
Extends
Context
Definition
The set of Entities that can be changed with one of an Agent’s Effectors
Relationships
Defined by Effector
Examples
Agents on same node, UNIX: files of agent’s user, Quake: weapons’ range
F.
Zusammenfassung Interaktionsaspekt
Die nachfolgende Grafik gibt nochmals einen Überblick über die Beziehungen, die bei
der Interaktion zwischen Agent, seinen Sensors und Effectors und den Entities des
Environments bestehen.
Verrbal Effector
(1,1)
Effector
(1,1)
emits
n,t
Operative Effector
possesses
(0,n)
(0,n)
manipulates
defines
aggregation
(1,1)
(1,1)
(0,1)
Effective Context
Message
(0,n)
Context
Agent
d,t
(0,n)
(0,n)
(0,n)
(0,n)
(0,n)
Perceptual Context
(1,n)
contains
(1,1)
possesses
(1,1)
(0,n)
defines
Visual Sensor
(1,1)
Sensor
Auditive Sensor
(1,1)
(0,n)
perceives
n,t
(0,n)
Percept
Entity
(0,n)
generates
Abbildung 3.10 Interaktion innerhalb des Entity Model
receives
– 103 –
II.
Modellierung
Im Entity Model wird der Großteil der späteren Implementierung eines Systems
dokumentiert. Je stärker die Interaktion zwischen Agenten im Vordergrund steht, desto
wichtiger ist die Rolle, die das Teilmodell spielt. Für realistische Systeme kann das
Teilmodell leicht sehr komplex werden, so daß eine geeignet strukturierte Darstellungsform unverzichtbar ist.
Auf einem elektronischen Marktplatz können Unternehmen Agenten betreiben, die
miteinander Geschäfte aushandeln und abschließen. Die Agenten werden in einem
zentralen Verzeichnis registriert und durch digitale Zertifikaten authentifiziert. Im
Folgenden ist beispielhaft ein Ausschnitt eines entsprechenden Entity Model dargestellt,
der sich nur mit dem Aspekt des Austausches von Angeboten befaßt.
Agent Directory
Address
Digital Certificate
Agent List
Agent Profile
Identity
Company
Seller Agent
Identity
Buyer Agent
Digital Certificate
Identity
Address
Address
Address
Company
Digital Certificate
Authentification
Query Agent Directory
Read Agent Profile
Send Message
Company
Proposal
Digital Certificate
Sender
Authentification
Recipient
Query Agent Directory
Product
Read Agent Profile
Quantity
Receive Message
Price
Receive Message
Send Message
Reaction
Sender
Recipient
Accept / Decline
Abbildung 3.11
Ausschnitt eines Entity Model für einen Marktplatz
– 104 –
Die verwendete grafische Darstellung ist als ein modifiziertes Klassen- oder Objektdiagramm zu verstehen. Die verschiedenen Entities tragen durch graue Rechtecke gekennzeichnete Attribute. Sensoren (nach innen zeigende Dreiecke) und Effektoren (nach
außen zeigende Dreiecke) sind durch Pfeile mit Attributen und Entities verbunden,
wodurch ihr Context bezeichnet wird. Agents sind schwarz, Items, Visual Sensors und
Operative Effectors blaugrün und Messages, Auditive Sensors und Verbal Effectors
lindgrün.
Die Agenten können das Profil anderer Agenten im Agentenverzeichnis abfragen und
daraus Informationen über ihre Adresse und ihr digitales Zertifikat gewinnen. Angebote
und Reaktionen auf Angebote werden als Nachrichten beschrieben.
Für Agenten mit einem einfachen Umweltmodell, etwa Chatagenten, die intern sehr
aufwendig gestaltet sein können, nach außen aber einfach nur Text einlesen und
ausgeben, ist die Beschreibung als Automat mit Ein- und Ausgabebeziehungen unmittelbar anwendbar.
Komplexere (Software-)Multiagentensysteme werden dagegen in der Regel objektorientiert modelliert werden. Passive Sensors stellen dabei kein Problem dar, da sie den aus
ereignisgesteuerten bzw. nachrichtenorientierten Systemen bekannten Callback- bzw.
Empfangsmethoden entsprechen. Active Sensors und Effectors finden hier ihre
Entsprechung allerdings im Allgemeinen in get() bzw. set()-Methoden a nd e r e r
Objekte. Daher erfordert die Umsetzung in ein objektorientiertes Diagramm einen
gewissen Perspektivwechsel: Die Effectors eines Agenten sind die Menge eigener und
fremder Methoden, die er aufruft bzw. aufrufen kann.
Das Entity Model kann in diesem Sinne problemlos durch UML Klassen- und Kollaborationsdiagramme beschrieben werden, auch wenn Sensoren und Effektoren hier nur
noch implizit abgebildet sind.
Das obige Beispiel wird hier objektorientiert umgesetzt. Das nachstehende UMLKlassendiagramm beschreibt die oben spezifizierte statische Struktur.
– 105 –
DirectoryService
-List<Profile>
+query() : const List<Profile>
+query(String) : const Profile
1...1
+receive(const &Proposal)
+accepted(&Proposal)
+declined(&Proposal)
Abbildung 3.12
-identifier : String
-company : String
-certificate : String
-reference : &Agent
+getIdentifier() : const String
+getCompany() : const String
+getCerificate : const String
+getReference() : &Agent
Agent
-identifier : String
-company : String
-certificate : String
-directory : &DirectoryService
Profile
0…*
0…*
Proposal
-productID : String
-quantity : Integer
-price : Integer
Klassendiagramm für den obigen Ausschnitt
Der Effector zum Abfragen des Verzeichnisses und der Sensor zum Lesen der Profildaten sind hier Methoden des DirectoryService und des Profile. Die Kommunikation
wurde bewußt nicht durch den Austausch von Nachrichtenobjekten umgesetzt, sondern
implizit auf der Ebene von Methodenaufrufen: Der Anbieter übergibt ein Proposal an
die receive Methode des Kunden, dieser gibt es entweder an die accepted oder
declined Methode des Anbieters zurück. Dementsprechend wird auch das Attribut
Address nicht explizit abgebildet, sondern entspricht hier einer Referenz auf die
Speicheradresse eines Agentenobjekts. Der Austauschprozeß könnte in einem (hier
nicht angegebenen) Kollaborationsdiagramm genauer spezifiziert werden.
Im dargestellten Modell sind bislang Agenten die einzigen aktiven Elemente, und die
Entities sind rein passiv, haben also auch keine internen Prozesse, die durch Effectors
oder Sensors angestoßen werden. Diese Limitation wird durch das nachfolgende
Process Model aufgehoben.
3.3.1.3 Process Model
Die Umwelt eines Agenten ist in der Regel nicht statisch. Sie wird vom Agenten selbst
und in Multiagentensystemen auch durch andere Agenten verändert. Zur vollständigen
Beschreibung eines Systems ist eine Beschränkung auf Agenten als einzige aktive
– 106 –
Entitäten meist unzureichend, da dies zum einen auf eine exzessive Anzahl von Agenten
führen kann und zudem manche Prozesse von ihrer Natur her unpersönlich sind.
In der irdischen physikalischen Welt sind alle Objekte der Schwerkraft unterworfen, die
in Richtung des Erdmittelpunktes auf sie einwirkt. In einem rein agentenbasierten
Modell wäre entweder die Erde ein Agent, der auf alle Entities mit einem Effector
einwirkt, oder – gänzlich unintuitiv – jedes Objekt selbst ein Agent, der einen Effector
auf sich selbst anwendet. Beide Sichtweisen sind für eine Modellierung nicht praktikabel.
Daher können im Rahmen des Environment aktive Processes definiert werden, die
unabhängig von einem Agenten auf die Entities einwirken.
Dabei sind verschiedene Klassen von Prozessen interessant.68 Von allgemeiner Bedeutung sind die ‚Naturgesetze’ (Natural Law), denen die Entities im Rahmen des
Environment unterworfen sind. Das Environment kann in diesem Zusammenhang
selbst durch einen aktiven Prozeß repräsentiert werden, der diese Gesetze umsetzt.
In einem Simulationsmodell kann etwa ein Basisprozeß reihum auf die Entities
einzuwirken, etwa um Zeit oder Schwerkraft zu simulieren. Ein Umweltprozeß kann
aber auch abstrakter der Scheduler eines Multiagentensystems sein, der Agenten
Rechenzeit zuteilt.
Wie die Analogie zur physikalischen Welt nahelegt, lassen sich mögliche Ereignisse
und kausale Beziehungen prinzipiell auf die Naturgesetze zurückführen, was jedoch für
eine konkrete Modellierung meist zu abstrakt erscheint. Daher lassen sich auf Basis der
Naturgesetze anwendungsspezifische Korollare, die Enforcement Processes, formulieren, mit denen das Environment die Einhaltung grundlegender Regeln überwacht oder
etwa die Änderungen der Contexts der Agenten berechnet.
68
Abbildung 3.13, S. 110, bietet einen Überblick über die Elemente des Process Model.
– 107 –
In einem Modell zur Ressourcenverwaltung werden mobile Agents mit Credits
ausgestattet, mit denen sie auf Servern Rechenzeit kaufen können. Sobald ein Agent
keine Credits mehr besitzt, wird er durch den Server terminiert.
Mit der gleichen Begründung bietet es sich an, die Reaktionen von Entities auf Effektoren im Rahmen der Umweltprozesse anwendungsbezogen zu beschreiben.
Die Funktionsweise einer Kaffeemaschine läßt sich vollständig durch die Gesetze der
Physik, Chemie und Elektrotechnik erklären. Trotzdem ist es für eine Beschreibung der
Interaktion mit einer Kaffeemaschine sinnvoller, den Prozeß des Kaffeekochens auf
einer höheren Abstraktionsebene zu beschreiben.
Daher können Entities mit Mechanisms, letztlich Beschreibungen ihrer Reaktionsmuster und relevanten internen Prozesse, assoziiert werden. Da die Umwelt selbst ein
aktiver Prozeß ist, können sich somit von den Handlungen eines Agenten ausgelöst oder
spontan als Folge der Naturgesetze mittelbar nichtdeterministische Auswirkungen auf
andere Entities und den Agenten selbst ergeben. Auf diese Weise wird vermieden, daß
zwangsläufig jede in irgendeiner Form ‚agierende’ Entity gleich ein Agent sein m u ß .
Die Frage nach ihrem Agentenstatus wird somit von einer rein technischen auf eine
inhaltliche Ebene erhoben und bleibt dem Ermessen des Entwicklers überlassen.
Zusammen lassen die verschiedenen Prozesse eine Klassifikation des Environment
bezüglich Determinismus, Flüchtigkeit, Zeitbegriff o.ä. im Sinne der Überlegungen von
Odell und Parunak69 zu.
Daneben stellt sich die Frage nach externen Einflüssen, die auf ein Environment
einwirken. Prinzipiell lassen sich externe Akteure innerhalb des Environment durch
einen Agenten beschreiben, dessen AgentCore außerhalb des Systems liegt, sofern die
Logik des Modells dies zuläßt. Jedoch ist dies oft inhaltlich nicht gerechtfertigt, so daß
es in vielen Fällen näher liegt, die externen Einwirkungen durch einen nichtdeterministischen Umweltprozeß, einen Autonomous Process, zu beschreiben.
69
Siehe Abschnitt 2.4.1, S. 37.
– 108 –
In einem Spiel wie Quake ist der Spieler ein externer Einfluß, der durch die Steuerungsbefehle an seinen Avatar die Spielwelt verändert. Aus Sicht anderer Agenten ist
die Spielfigur jedoch nicht von durch die künstliche Intelligenz gesteuerte Figuren
(NPC) zu unterscheiden. Der Avatar ist als ganz normale Agent Shell beobachtbar,
lediglich sein Agent Core liegt außerhalb des Systems.
In anderen Fällen, wenn etwa ein Betriebssystemsagent Mausbewegungen oder
Änderungen am Dateisystem überwacht70 oder ein Informationsfilter auf neue Nachrichten in einer Nachrichtenquelle reagiert, liegt es näher, die Änderungen durch nichtdeterministische Zustandsübergänge zu beschreiben.
Nachfolgend werden die verschiedenen Prozeßtypen nochmals im Detail dargestellt.
I.
Elemente
A.
Process
Ein Process ist ganz allgemein eine Folge von Änderungen an Entities des Environment, die nicht direkt von einem Agenten, sondern durch das Environment verursacht
wird. Ein Process kann sich aus anderen Processes zusammensetzen. Relevante
Ereignisse sind sein Beginn und sein eventuelles Ende.
Element Summary
Process
Hierarchical Name
Physical.Process
Definition
An impersonal process associated with the Environment
Relationships
Affects Entities
Event Classes
Initiated, Terminated
Examples
Gravity, time, causality/consequences, entity reactions, external influences
i.
Natural Law
Ein Natural Law ist ein Process, der konstant und in den meisten Fällen deterministisch
auf die Entities eines Environments einwirkt und dadurch dessen Eigendynamik
beschreibt.
70
Siehe etwa das Beispiel aus Abschnitt 2.5.3, S. 54.
– 109 –
Element Summary
Natural Law
Hierarchical Name
Physical.Process.Law
Extends
Process
Definition
Describes dynamic changes all Entities are subjected to
Examples
Gravity, time, causality/consequences
a.
Enforcement Process
Ein Enforcement Process ist eine erweiterte Form des Natural Law. Er setzt ebenfalls
nur ‚physikalische’ Regeln (keine ‚sozialen’) um, hat aber eine vergleichsweise
komplexere Semantik. Durch Enforcement Processes kann das Environment seine
Agenten verwalten und die Einhaltung von Quoten und Limits überwachen.
Element Summary
Enforcement Process
Hierarchical Name
Physical.Process.Law.Enforcement
Extends
Natural Law
Definition
Describes management or constraint enforcement by the Environment
Examples
Monitor limits, quotas and constraints, terminate avatar with 0% health
b.
Mechanism
Ein Mechanism ist ein Process, der interne Prozesse von Entities und ihre Reaktionen
auf Effektoranwendungen beschreibt. Ein Mechanism wird als Erweiterung des
Begriffs Natural Law gesehen, da er nur rein mechanistische Prozesse beschreibt, die
sich im Grunde auf die physikalischen oder technischen Grundregeln zurückführen
lassen. Mechanisms können bedingte Verzweigungen und Nichtdeterminismus
enthalten. Es ist letztendlich wiederum Ermessensfrage, wann die Prozesse einer Entity
so komplex werden, daß eine Beschreibung als Agent zweckmäßiger erscheint.
Element Summary
Mechanism
Hierarchical Name
Physical.Process.Law.Mechanism
Extends
Natural Law
Definition
Describes the dynamics of an Entity
Relationships
Associated with an Entity
Examples
Entity reactions, internal processes
ii.
Autonomous Process
Ein Autonomous Process ist ein Process, der nichtdeterministische Änderungen des
Environment durch externe Einflüsse beschreibt.
– 110 –
Element Summary
Autonomous Process
Hierarchical Name
Physical.Process.Autonomous
Extends
Process
Definition
Externally caused non-deterministic changes to the Environment
Examples
External influences, user input, technical error conditions
II.
Modellierung
Das Process Model modelliert zum einen die Gesetze und die Eigendynamik des
Systems, zum anderen das Verhalten der Entities.
Enforcement
Process
Composition
Natural Law
d,p
(0,n)
(0,n)
Process
d,t
Mechanism
Autonomous
Process
(1,1)
describes
(0,n)
Entity
Abbildung 3.13 Elementbeziehungen innerhalb des Process Model
Der erste Aspekt ist in physikalischen Systemen nur von deskriptiver Bedeutung, da die
Rahmenbedingungen in diesem Falle schon gegeben sind. In Softwaresystemen kann er
durch die Modellierung des Environment als eigenständiger Prozeß beschrieben
werden, der etwa regelmäßig bestimmte Überprüfungen vornimmt oder Methoden
aufruft oder nichtdeterministische Änderungen an Entities vornimmt.
Die zweite Aufgabe kann durch bekannte objektorientierte Techniken wie UML
Kollaborations-, Aktivitäten- oder Zustandsdiagramme oder verhaltensbeschreibende
Netze bewältigt werden.
3.3.1.4 Service Model
Die Anwesenheit des Service Model in der Physical Layer bedarf insoweit einer
Rechtfertigung, als dieses Teilmodell rein abstrakt ist. Ein Service muß durch eine
Facility oder einen Enforcement Process implementiert sein, um von Agenten wahrge-
– 111 –
nommen oder genutzt zu werden, ist also ein Konzept zu deren Beschreibung. Dennoch
erscheint es unnatürlich, die Services in die Conceptual Layer zu verlagern, da sie nicht
anwendungsbezogen sind, sondern eine implementierungsnahe Spezifikation der
vorhandenen Infrastruktur liefern. Services beschäftigen sich mit Ressourcenverwaltung, Nachrichtenübertragung, Agentenregistraturen oder Migration. Analog der
Hardwareabstraktionsschicht eines Betriebssystems bieten sie eine Abstraktion von der
konkreten Implementierung einer bestimmten Agentenplattform. Viele operativ
relevante Unterscheidungsmerkmale zwischen Agentensystemen können auf dieser
Ebene übersichtlich beschrieben werden.
Aglets bieten einen hierarchischen Adreßraum, asynchrone Kommunikation und
zustandslose Migration unter Mitnahme von Daten. Telescript besitzt einen linearen
Adreßraum und unterstützt nur synchrone Kommunikation, dafür aber zustandsbehaftete Migration.
Wie die in diesem Beispiel gewählten Kriterien bereits suggerieren, greift das Service
Model die Idee des Referenzmodells von Silva et al.71 auf. Die Infrastruktur, die von
einem Environment bereitgestellt wird, läßt sich anhand verschiedener, teilweise
orthogonaler Dienstkategorien beschreiben.
Im Folgenden werden konkrete Kategorien vorgeschlagen, in denen jeweils einige
Dienste beispielhaft aufgezählt werden. Aufgrund der großen Vielfalt der existierenden
Architekturen und der vergleichsweise spezifischen Natur der einzelnen Services kann
das Metamodell keine erschöpfende Aufzählung aller relevanten Dienste leisten. Selbst
eine vollständige Auflistung wäre insoweit problematisch, als daß die Abgrenzung bzw.
Zusammenfassung einzelner Leistungen zu Diensten niemals allen Architekturen
gerecht werden könnte.
Das Metamodell ist hier eher als Konzept einer Bibliothek zu verstehen: In den
verschiedenen Kategorien können Entwurfsmuster zur Implementation einzelner
Dienste definiert werden. Die Liste der Dienstbeschreibungen ist nicht statisch, sondern
71
Vgl. Abschnitt 2.4.1, S. 35.
– 112 –
kann, wie bei objektorientierten Entwurfsmustern, durch den Vorschlag zweckmäßig
erscheinender neuer Muster erweitert werden.
I.
Elemente
A.
Service
Ein Service ist die abstrakte Beschreibung eines nicht anwendungsspezifischen
Dienstes, der den Agents vom Environment angeboten wird. Ein Service kann auf
anderen Services aufsetzen.
Construction
Generation
n,p
Type
Management
Execution
Engine
Identity
Generation
Ressource
Allocation
Execution
Discovery
n,p
n,p
Agent Directory
Event
Propagation
Service Directory
Exception
Handling
Location
Management
Lifecyle
Managment
Management
n,p
Composition
Encoding
(0,n)
Service
(0,n)
Observation
Open Channels
n,p
Communication
n,p
Message
Transport
Exception
Handling
Address
Resolution
Serialization
Persistence
n,p
Agent
Transport
Migration
n,p
Reconstruction
Resource
Management
Authentication
Exception
Handling
Security
Interface
Access Control
n,p
n,p
User
Interface
Integrity
System
Interface
Privacy
Conversion
Wrapping
Abbildung 3.14 Klassifikationsschema für Services
– 113 –
Für einen Dienst kann definiert werden, welche Agenten ihn nutzen dürfen, welche
Entities von ihm betroffen sind, welche Vorbedingungen zu seiner Nutzung erfüllt sein
müssen und welche Garantien der Dienst über seine Ausführung macht.
Element Summary
Service
Hierarchical Name
Physical.Service
Definition
The abstract definition of a service provided by the Environment
Attributes
Identifier, Scope, Users, Preconditions, Postconditions
Relationships
Implemented by Facility or Enforcement Process
Event Classes
(Abstract)
Examples
Directory, messaging, addressing, security, scheduling, persistence
Die einzelnen Kategorien und Unterkategorien des Schemas werden im Weiteren kurz
beschrieben.
i.
Generation
Die Kategorie Generation beschäftigt sich mit Diensten zur Erstellung neuer Agenten.
Sie umfaßt etwa das Typsystem, das die Types, die Typdefinitionen von Agents und
Entities, verwaltet; die Mechanismen zum Laden und Instanzieren solcher Definitionen
und die Methoden zum Generieren eindeutiger Identifikatoren für Agenten.
Ein Typsystem und Methoden zum Instanzieren werden etwa von der JVM in Form des
Class Loaders geboten. Identifikatoren können zufällig, linear oder hierarchisch erzeugt
werden.
ii.
Execution
Execution umfaßt alle Aspekte, die für gewöhnlich von einer Laufzeitumgebung
behandelt werden. Darunter fallen die Zuteilung von Speicher und Rechenzeit und die
Verwaltung des Zugriffs auf andere Resources, und die eigentliche Ausführung von
Programmcode. Weiterhin kann die Ausführungsumgebung Dienste zum Behandeln
von Ausnahmen, zur Wahrung der Konsistenz (Transaktionen) oder zum Publizieren
von Ereignissen bieten.
– 114 –
Hier werden wichtige technische Details bezüglich der parallelen Ausführung von
Agenten, der Auflösung von Ressourcenkonflikten und der Fehlerverwaltung beschrieben, sowie grundlegende Fragen, etwa welche Art von Programmcode überhaupt
ausgeführt werden kann.
iii.
Management
Managementdienste dienen zur Verwaltung des Agentenlebenszyklus von außen, also
etwa zum Einfrieren oder Beenden von Agenten, und zur Überwachung der Ausführung
von Agenten, etwa durch ihren menschlichen Benutzer.
iv.
Discovery
Die Kategorie Discovery umfaßt Verzeichnisdienste zum Auffinden von Agenten und
Facilities. Im weiteren Sinne fällt auch die Dokumentation der Struktur der Entities
darunter, besonders, wenn diese zur Ortung lokaler Agenten relevant ist.
Diese Kategorie ist für jedes Multiagentensystem von zentraler Bedeutung. Der
überwiegende Teil des MASIF-Standard und viele Elemente des FIPA-Standards
befassen sich mit genau dieser Klasse von Diensten.
v.
Communication
Die umfangreiche Kategorie Communication enthält Dienste zum Kodieren von
Nachrichten, Versenden von Nachrichten und zum korrekten Auflösen von Adressen.
Fortgeschrittene Dienste befassen sich mit Kompensationsmaßnahmen bei Übertragungsfehlern und dem nichttrivialen Problem der Open Channels, der Erreichbarkeit
migrierender Agenten.
Relevante Charakteristika der Transportdienste sind etwa, wie Agenten adressiert
werden, ob sich einzelne und/oder Gruppen von Agenten ansprechen lassen oder
welchen Restriktionen der Inhalt von Nachrichten unterliegt. Die Dienste zur Fehlerkorrektur und zur Kommunikation mit migrierenden Agenten können aufwendige Algorithmen umsetzen (vgl. etwa [Murphy/Picco 2002]).
– 115 –
vi.
Persistence
Persistence ist eine sehr übersichtliche Kategorie: Sie umfaßt Dienste zur persistenten
Speicherung von Agenten, Ressourcen und zugehörigen Daten, und zur Wiederherstellung der gespeicherten Informationen in einen ausführbaren Zustand.
vii.
Migration
Migrationsdienste teilen üblicherweise mit Persistenzdiensten das Bedürfnis, den
aktuellen Zustand eines Agenten festhalten zu müssen. Weiterhin müssen sie die
Übertragung des Agenten ermöglichen, wobei Übertragungsfehler zu kompensieren
sind. Darüber hinaus sind sie noch für das Management der vom Agenten benötigten
Ressourcen verantwortlich. Ein erweiterter Dienst wäre die Erstellung einer Sicherheitskopie, die automatisch reaktiviert wird, wenn der Agent in einem fremden Environment verloren geht.
Bei Migrationsdiensten ist zum einen relevant, welche Daten bzw. Ressourcen in
welcher Aufteilung übertragen werden, zum anderen, welche Informationen über den
Ausführungszustand des Agenten überhaupt übertragen werden können.
viii.
Security
Security ist eine Kategorie, deren Dienste sich oft schwer monolithisch definieren
lassen, da sie oft eng mit anderen Diensten verflochten sind. Sie schließen die Authentifizierung von Agenten, die Zugriffsteuerung auf Resources und andere Entities, die
Überwachung der Integrität der Agentenplattform und einzelner, insbesondere mobiler
Agenten und die Verschlüsselung vertraulicher Informationen ein.
ix.
Interface
Die Kategorie Interface faßt alle Dienste zusammen, die sich mit Schnittstellen zur
Außenwelt befassen. Zum einen kann dies den Zugriff auf Funktionen des umgebenden
Systems oder die Interaktion mit einem menschlichen Benutzer bedeuten. In diesem
Falle sind die Facilities der Dienste gleichzeitig Proxies. Zum anderen bezieht sie sich
auf Dienste, die Konvertierungen jedweder Art vornehmen.
– 116 –
II.
Modellierung
Das Service Model ist das heterogenste Teilmodell der Physical Layer. Aufgrund der
Verschiedenartigkeit der erfaßten Services läßt es sich praktisch kaum sinnvoll mit
einem einheitlichen Formalismus modellieren.
In vielen Fällen ist die Beschreibung auf der Begriffsebene ausreichend. Basiert eine
Agentenplattform auf Java und der JVM, ist etwa eine detaillierte Modellierung des
Typsystems und des Klassenladers weitgehend überflüssig.
In manchen Fällen erscheint eine genauere Beschreibung relevant, etwa wenn Einschränkungen eines vorhandenen Dienstes Auswirkungen auf die Möglichkeiten selbst
implementierter Dienste oder die Anwendungsebene haben.
Javas eingeschränkte Fähigkeiten zur Introspektion erschweren etwa Migration unter
vollständiger Mitnahme des Ausführungszustandes erheblich.
Dienste mit einem komplexen Zustandsmodell, etwa zur Behandlung von Übertragungsoder Synchronisierungsfehlern, sollten durch entsprechende Diagramme spezifiziert
werden. Bei selbst implementierten Diensten ist die Angabe der oben definierten
Attribute eines Service, also seine Nutzer und die von ihm betroffenen Entities,
wünschenswert.
Der Vorteil des Service Model ist, daß im Zweifelsfall immer auf die Beschreibung der
konkreten Umsetzung des Services in Form einer Facility oder eines Enforcement
Process zurückgegriffen werden kann, wenn die anderen Spezifikationsmethoden zu
unspezifisch erscheinen. Auf diese Weise läßt sich das Teilmodell sowohl zur Formulierung eines groben Überblicks über die Fähigkeiten eines Systems als auch als ausreichend genaue Spezifikation zur Sicherstellung von Interoperabilität auf der technischen
Ebene verwenden.
– 117 –
3.3.1.5 Zusammenfassung der Physical Layer
Abschließend soll nochmals ein Überblick über die wichtigsten Elemente der Physical
Layer und die Zusammenhänge zwischen den Teilmodellen gegeben werden. Dabei
wurden der Übersichtlichkeit halber einige Spezialisierungsbeziehungen, Unterklassen
und Beziehungen unterdrückt.
(1,1)
(0,n)
(1,1)
Enforcement
Process
Autonomous
Process
Natural Law
defines
d,p
(0,n)
Sensor
generates
(1,1)
(0,1)
(0,n)
d,t
Mechnism
(1,1)
Context
possesses
Percept
Effector
emits
(0,1)
(1,1)
Composition
affects
(0,n)
perceives
defines
(1,1)
(0,n)
Process
describes
(1,1)
contains
(0,n)
(1,1)
(1,1)
(0,n)
runs
manipulates
(0,n)
possesses
(0,n)
(0,n)
Hierarchy
(0,n)
(0,n)
(0,n)
Environment
(0,n)
(0,n)
(0,1)
(0,n)
contains
(0,n)
(0,n)
Entity
d,t
(0,n)
Agent
receives
(0,n)
(0,n)
(0,n)
Structure
(0,n)
(0,n)
(1,1)
(0,n)
Message
(0,n)
(0,n)
Structure
Item
offers
represents
instantiates
Composition
(1,1)
implements
(0,n)
Service
(0,1)
(0,n)
(0,n)
(0,n)
requires
implements
(1,n)
Facility
(0,n)
Proxy
Type
Structure
(0,n)
(0,n)
(0,n)
Resource
n,p
Generation
Execution
Discovery
Management
Communication
Persistence
Migration
Security
Abbildung 3.15 Übersicht über die wichtigsten Elemente der Physical Layer
Interface
– 118 –
3.3.2 Conceptual Layer
Die Conceptual Layer72 leistet die Beschreibung des Zwecks und der anwendungsbezogenen Semantik des Systems. Sie argumentiert in sozialen, juristischen und mentalistischen Begriffen und soll dadurch eine präzise, aber möglichst anschauliche Beschreibung des komplexen Systemverhaltens ermöglichen.
Während die Physical Layer vom Allgemeinen zum Speziellen hin beschrieben wurde,
beginnt die Darstellung der Conceptual Layer mit der privaten Sicht eines Agenten, die
dann um zunehmend öffentliche und gesamtheitliche Perspektiven erweitert wird.
Das Mental Model beschreibt den Agenten aus einer klassischen mentalistischen
Perspektive. Inwieweit dabei die tatsächliche Implementierung des Agenten beschrieben
oder nur die Zuschreibung mentaler Eigenschaften als Argumentationshilfe verwendet
wird, liegt im Ermessen des Entwicklers.
Das Behavioral Model beschreibt das Verhalten und die Interaktionen der Agenten. In
diesem Zusammenhang wird die juristische Perspektive auf die unterstellten Absichten
eines Agenten verwendet. Das Modell ist die Brücke zwischen Mental Model und
Social Model, die sich (zur Verhinderung von unbewußt vorausgesetztem Gedankenlesen) nicht berühren.
Das Social Model steht in enger Verbindung mit dem Behavioral Model. Es beschreibt
die sozialen Normen der verschiedenen Subsysteme des Agentensystems, also im
Besonderen auch die Interpretation bestimmter Handlungen. Ähnlich wie Verfassungen,
Gesetze und Satzungen in menschlichen Gesellschaften definiert es die Systemstruktur
und die Regeln, die das System kontrollieren.
Das Application Model beschreibt zum einen die logische Struktur des Anwendungssystems, zum anderen seinen Zweck und seine Zielhierarchie.
Die Conceptual Layer ist primär ein konzeptionelles Werkzeug, das dem Entwickler bei
der Erstellung eines konsistenten Systems unterstützen soll. Während die Physical
72
Die Übersicht über die Elemente der Conceptual Layer wird durch Abbildung 3.22, S. 167, gegeben.
– 119 –
Layer sich noch vergleichsweise direkt auf ein objektorientiertes Modell zurückführen
läßt, fließen hier die Innovationen der Agententheorie ein, so daß diese Abbildung nicht
mehr trivial ist. Es wird allerdings angestrebt, daß die Elemente der Conceptual Layer
jeweils über eine möglichst genau definierte Abstützung auf die Physical Layer
verfügen. Es steht dem Entwickler zwar frei, während des Modellierungsprozesses über
das System in beliebig abstrakten Begriffen zu argumentieren, jedoch ist gerade mit
Bezug auf soziale Normen der angesprochene Punkt zu beachten, daß ihre explizite
Überprüfung im Rahmen des Laufzeitsystems auch eine konkrete Umsetzung erfordert.
3.3.2.1 Mental Model
Das Mental Model73 bietet den Rahmen für die Beschreibung eines Agenten im Sinne
der vorgestellten mentalistischen Theorien. Seine Begriffe sind dabei aber nur so
spezifisch, wie dies mit Bezug auf das Behavioral Model erforderlich ist.
Die Implementierung eventueller künstlicher Intelligenz der Agenten wird durch das
Metamodell nicht modelliert, da die Anforderungen und Ansätze der verschiedenen
Agentensysteme hier einfach zu komplex und zu unterschiedlich sind, um ihnen durch
eine einheitliche Beschreibung gerecht zu werden. Daher wird dieser Teil des Agenten
nur durch eine Black Box beschrieben, um die sich die explizit beschriebenen mentalen
Elemente anordnen.
I.
Elemente
A.
Outlook
Der Outlook eines Agenten beschreibt seine Erkenntnisse über die Welt. Er enthält zum
einen die interne Repräsentation des Environments, auf deren Grundlage der Agent
Entscheidungen trifft, und zum anderen Aussagen über den inneren Zustand des
Agenten.
73
Abbildung 3.16, S. 128, gibt einen Überblick über die Elemente des Mental Model.
– 120 –
Die Representation im Modell von Bölöni und Marinescu74, der Place im Modell von
Viroli und Omicini75 oder die Gesamtheit der mentalistischen Attribute eines BDIAgenten76 können als Outlook verstanden werden.
Der Outlook wird, sofern er nicht nur abstraktes Beschreibungsmittel ist, im Rahmen
des Agent Core implementiert. Er stellt ein geordnetes System von Statements dar, die
im Folgenden genauer beschrieben werden.
Element Summary
Outlook
Hierarchical Name
Conceptual.Outlook
Definition
An Agent’s internal representation of the world.
Relationships
Consists of Statements
Used by Agent Personality
Formalisms
Data structures, KIF
Grounding
Agent Core data structures
Examples
Knowledge representation, mentalistic attributes, internal object state
B.
Statement
Ein Statement ist das grundlegende Beschreibungselement des Outlooks, also eine
elementare Erkenntnis. Als ein Statement kann unabhängig von ihrer Form jede
Beschreibung eines Zustandes oder eines Zusammenhanges gewertet werden. Statements können natürlichsprachig, durch klassische oder modale Logik, durch Zustandsmodelle oder Objektattribute ausgedrückt werden. Ein Statement s o l lt e im Prinzip
einer Aussage im mathematisch-logischen Sinn entsprechen, muß aber nicht notwendigerweise wahr oder falsch sein. Unentscheidbare oder paradoxe Statements dürften
allerdings in den meisten Fällen zur Modellierung nicht hilfreich sein.
„Die Sonne scheint.“, „Der Agent möchte einen Fahrschein kaufen.“ oder das Paradox
„Ich lüge.“ sind natürlichsprachige Statements.
74
Siehe Abschnitt 2.4.2, S. 41.
Siehe Abschnitt 2.4.3, S. 44.
76
Siehe Abschnitt 2.3.2.3, S. 26.
75
– 121 –
Formalisierte Statements sind etwa Prädikate wie mensch(sokrates) oder rolle(agent,
rollenbezeichnung), aber auch Syllogismen oder Regeln, etwa mathematische Zusamn
n
n
menhänge wie die binomische Formel (a + b ) = ∑  a i b n −i .
i =0  i 
In einem objektorientierten System können Statements einfach Attribute wie etwa
Konto::stand = 150 oder Agent::directory = &pointer sein.
Statements können Hierarchien, Subsumptionsbeziehungen und andere Relationen
miteinander eingehen.
Statements lassen sich nach ihrem Ursprung in inhärente, kognitive und abgeleitete
Statements unterteilen. Orthogonal dazu ist die Unterscheidung zwischen faktischen
und durch modale Operatoren qualifizierten Statements.
Das Metamodell zielt auf die Konstruktion agentenbasierter Anwendungen und nicht
auf die Entwicklung einer Erkenntnistheorie für Agenten ab. Die Unterscheidung
zwischen den verschiedenen Erkenntnisquellen hat eine ganz konkrete technische
Signifikanz, obschon sie sich auf den Gegensatz zwischen der Sicht der Rationalisten
(Descartes, Leibniz) und dem Skeptizismus des Empiriker (Locke, Hume) zurückführen
läßt, der im Mittelpunkt von Kants Kritik der Reinen Vernunft ([Kant 1787]) steht.
Element Summary
Statement
Hierarchical Name
Conceptual.Statement
Definition
An insight, basic element of the description of an Agent’s mental state
Relationships
Makes up Outlook
Formalisms
Natural language, specification language, KIF, modal logic
Grounding
Agent Core data structure
Examples
Predicate, fact, belief, desire, intention, goal, assumption, variable binding
i.
Inherent Statement
Inherent Statements beschreiben Aussagen, über die ein Agent a priori verfügt. Sie
sind aus Sicht des Agenten unzweifelhaft wahre Erkenntnisse im Sinne der reinen und
nicht reinen Vernunft (d.h. abstrakte Aussagen bzw. Aussagen über die Welt).
Die Inherent Statements werden dem Agenten von seinem Entwickler eingegeben.
Entweder schlagen sie sich implizit in der Implementierung nieder, so daß der Entwick-
– 122 –
ler sie dem Agenten aus sich selbst heraus zuschreibt, oder sie werden dem Agenten
explizit in Gestalt einer Wissensrepräsentation mitgegeben.
Entsprechende Aussagen können statische Grundüberzeugungen des Agent, ein
Basismodell der Welt, technisch relevante Informationen oder auch einfach eine
Ausgangskonfiguration sein.
Das inhärente Wissen eines Agenten kann etwa seine Aufgabe, den Namen seines
Benutzers, die Adresse eines Verzeichnisdienstes und dessen Schnittstellen, eine
Ontologie der umgebenden Welt oder die Beschreibung einer Ausgangssituation
umfassen.
Darüber hinaus können Inherent Statements auch Entwurfsprinzipien und Grundregeln
beschreiben, etwa Entwurfsziele wie „versucht, das Verzeichnis aktuell zu halten“, vom
Agenten verwandte Syllogismen wie modus ponens und modus tollens, bezüglich des
Zustandes des Agenten gemachte Garantien oder unumstößliche Sicherheitsbestimmungen wie Asimovs First Law of Robotics [Asimov 1994].
Element Summary
Inherent Statement
Hierarchical Name
Conceptual.Statement.Inherent
Definition
A Statement known a priori by an Agent
Examples
First principles, laws, rules, safeguards, default values, ontology
ii.
Cognitive Statement
Cognitive Statements sind empirische Aussagen, zu denen der Agent aufgrund gegenwärtiger oder, falls er ein Gedächtnis für seine Wahrnehmungen besitzt, vergangener
Sensoraktivität gelangt ist.
Welche Cognitive Statements ein Agent erwerben kann, hängt somit davon ab, was er
nach Maßgabe seiner Sensoren und der seinen Context bestimmenden Regeln des
Environment wahrnehmen kann. Jedes Cognitive Statement läßt sich direkt auf eine
Sensoreingabe bzw. ein Percept zurückführen.
Geortete Hindernisse im Weg eines Roboters, Nachrichten anderer Agenten, Benutzereingaben, Informationen über den Ausführungszustand des Agenten oder Aussagen über
die Attribute anderer Entities werden alle durch Cognitive Statements beschrieben.
– 123 –
Cognitive Statements ist auf drei Ebenen mit einer gewissen Skepsis zu begegnen:
Zunächst kann der Wahrnehmungsprozeß die Umwelt verfälschen, da gerade in
physikalischen Systemen Wahrnehmung nie objektiv sein kann. Selbst bei semantisch
korrekter Wahrnehmung sind die abgeleiteten Cognitive Statements nicht unbedingt
wahr: die wahrgenommene Entity kann selbst eine unwahre Aussage ausdrücken.
Zuletzt bleiben wahre Aussagen nicht zwangsläufig wahr, sondern können schon nach
kurzer Zeit nicht mehr aktuell sein.
Ein Roboter im RoboCup verwechselt das rote T-Shirt eines Zuschauers mit dem Ball.
Ein Einkaufsagent kann die Nachricht eines anderen Agenten korrekt empfangen, der
andere Agent kann dabei aber trotzdem im Inhalt der Nachricht lügen. Ein mobiler
Agent will einen anderen Agenten lokal ansprechen, der inzwischen das System
verlassen hat.
Für jegliche Interaktion mit anderen Agenten und der Umwelt ist diese Klasse von
Aussagen essentiell. Welche Cognitive Statements möglich sind und vor allem welche
Relevanz ihnen zugemessen wird, ist somit eine wichtige Frage im Rahmen der
Implementierung der Agentenintelligenz.
Element Summary
Cognitive Statement
Hierarchical Name
Conceptual.Statement.Cognitive
Definition
A Statement acquired by an Agent’s Sensors
Grounding
Sensor input, possibly Percept
Examples
Internal representation of perceptions, received messages
iii.
Derived Statement
Derived Statements werden von der internen Logik des Agenten hergeleitet. Sie
ergeben sich als Schlußfolgerungen aus bereits vorhandenen Statements. Dabei hängt
ihre Glaubwürdigkeit von den zugrundegelegten Statements ab: Leiten sie sich nach
rationalen Prinzipien aus Inherent Statements ab, sind sie ebenfalls unzweifelhaft wahr.
Basieren sie dagegen auf Cognitive Statements, pflanzen sich eventuelle Fehler in ihnen
fort.
Die Schlußfolgerungen können in einer reinen Logik begründet oder auch durch
Heuristiken, subjektive Einschätzungen oder Nichtdeterminismus bestimmt sein.
– 124 –
Die klassische Aussage „Sokrates ist sterblich“ leitet sich logisch aus „Alle Menschen
sind sterblich“ und „Sokrates ist ein Mensch“ ab. Auktionsagent A kann als Folge aus
der Erkenntnis „Agent B hat die Lieferung nicht bezahlt“ die subjektive, normative
Aussage „Ich mache mit Agent B keine Geschäfte mehr“ ableiten.
Element Summary
Derived Statement
Hierarchical Name
Conceptual.Statement.Derived
Definition
A Statement that has been derived from other Statements by the Agent
Examples
Conclusions, resolutions
iv.
Factual Statement
Die zweite Differenzierung unterscheidet zwischen faktischen und modalen Aussagen.
Factual Statements sind im Sinne einer klassischen Aussagenlogik zu verstehen. Sie
sollen eine Tatsache über den Agenten oder die Welt ausdrücken. Sie sind nicht
notwendigerweise wahr. Sie sollten sich auf Attribute konkreter Entities abstützen.
Im Sinne der Programmierung lassen sich die Eigenschaften des Systemzustands, also
besonders die Werte sämtlicher Variablen, als faktische Aussagen verstehen. Reines
Wissen erster Ordnung läßt sich ebenfalls durch faktische Aussagen beschreiben.
Der Begriff wird aus pragmatischen Gründen definiert, da im Grunde ein Factual
Statement auch als modale Aussage geschrieben werden kann, dies aber für viele
Anwendungen unangemessen aufwendig erscheint.
Element Summary
Factual Statement
Hierarchical Name
Conceptual.Statement.Factual
Definition
A Statement supposed to state a fact about the world.
Grounding
Entity
Examples
Value of a variable, statement in Boolean logic
v.
Modal Statement
Ein Modal Statement ist ein durch modale Operatoren qualifiziertes Statement. Diese
Klasse von Aussagen ist für die Beschreibung eines Agenten im Sinne der meisten
Agententheorien unverzichtbar.
– 125 –
Typische Modal Statements sind Beliefs, Desires, Intentions, Uncertain Beliefs, Wants,
Needs und Assumptions.
Das Metamodell sieht solche Aussagen nur vor, macht aber keine inhaltlichen Aussagen
über ihre Semantik. Diese wird vom Modellierer durch assoziierte Semantics spezifiziert. Dementsprechend werden Modal Statements von anderen Teilen des Metamodells
nicht referenziert, sondern können in dieser Form nur für die interne Implementierung
der Agentenintelligenz von Belang sein.
Element Summary
Modal Statement
Hierarchical Name
Conceptual.Statement.Modal
Definition
A Statement qualified by a modal expression
Relationships
Uses Semantics
Formalisms
Tied to Semantics
Examples
Belief, desire, intention, goal, uncertain belief, assumption
a.
Semantics
Semantics definieren die Semantik eines Modal Statement. Die Wahl eines geeigneten
Formalismus liegt allein beim Modellierer.
Element Summary
Semantics
Hierarchical Name
Conceptual.Semantics
Definition
Defines the semantics of Modal Statements
Relationships
Used by Modal Statement
Formalisms
Informal semantics, modal logic
Examples
BDI, FIPA ACL, KQML
b.
Aim
Der Begriff Aim ist insoweit eine Ausnahme, daß er die einzige Klasse modaler
Aussagen beschreibt, deren Semantik durch das Metamodell beschrieben wird. Sinngemäß ist ein Aim mit Goals oder Desires vergleichbar. Es wird abweichend benannt, da
seine Definition nur vergleichsweise naiv ist: Ein Aim ist ein Statement, das wahr sein
soll, d.h. der Agent hat den Auftrag, das Zutreffen des Aim entweder zu erhalten oder,
falls es nicht schon wahr ist, herbeizuführen. Aims sind eine reine Argumentationshilfe
und können in der Anwendung auch durch eventuell vorhandene stärkere Formalismen
ersetzt werden.
– 126 –
Aim eines Thermostaten ist etwa, daß die gemessene Temperatur 23°C sein soll.
Da Aims Statements sind, gilt auch hier die Unterscheidung zwischen inhärenten und
abgeleiteten Aims. Inhärente Aims übersetzen die Entwurfsziele eines Agenten in seine
subjektive Perspektive und sind somit mit einer Mission77 assoziiert.
Aims können Hierarchien bilden und mit Gewichtungen versehen werden. Unter
Entlehnung des Begriffs aus dem Modell von Bölöni und Marinescu78 kann der entsprechende Ausschnitt des Outlook als Agenda bezeichnet werden.
Element Summary
Aim
Hierarchical Name
Conceptual.Statement.Modal.Aim
Definition
A Statement an Agent is supposed to make or keep true.
Relationships
Translates a Mission
Grounding
Entity
Examples
Temperature := 23°C
C.
Premeditation
Die Premeditation eines Agenten sind die geplanten Aktivitäten eines Agenten. Sie
wird durch eine Abfolge von Actions79 definiert und kann durch die Relationen in einem
gerichteten, azyklischen Graphen beschrieben werden.
Die Aktivitäten können mit Dauer, Anfangs- und Endzeiten versehen werden, so daß die
zeitliche Ordnung genau beschrieben werden kann. Die Premeditation erlaubt jedoch
keine Aussagen zur Finalität einzelner Aktivitäten. Insoweit beschreibt die Premeditation die Absichten eines Agenten nur auf einer rein behavioristischen Ebene.
Ein Auktionsagent schließt einen Kaufvertrag ab und plant daraufhin, binnen einer
Woche dem Verkäufer den Kaufpreis zu bezahlen.
77
Siehe Mission, S. 163.
Siehe Abschnitt 2.4.2, S. 41.
79
Siehe Action, S. 133.
78
– 127 –
Die Bedeutung der Premeditation wird bei der Beschreibung ihres öffentlichen
Gegenstücks, der Schedule, im Rahmen des Behavioral Model im Detail betrachtet.
Element Summary
Premeditation
Hierarchical Name
Conceptual.Premeditation
Definition
A dag describing the Actions an Agent has scheduled
Relationships
Contains Actions
Formalisms
Any scheduling formalism
Examples
Scheduled payments, project plan
D.
Agent Personality
Die Agent Personality faßt zum einen Outlook und Premeditation eines Agenten
begrifflich zusammen. Zum anderen ist die Agent Personality die Abstraktion von der
Implementierung der künstlichen Intelligenz des Agenten. Sie enthält somit die
Inferenzmaschine eines Agenten, entsprechend der Agent Internal Machinery bei Viroli
und Omicini80.
Die Agent Personality ist die konzeptionelle Beschreibung des Agent Core auf der
Physical Layer.
Element Summary
Agent Personality
Hierarchical Name
Conceptual.Agent.Personality
Definition
Abstraction for an Agent’s AI
Relationships
Connected to Outlook, Premeditation and Aims
Formalisms
Any modelling technique
Grounding
Agent Core
Examples
Specification of an agent’s AI
II.
Modellierung
Die Modellierung des Mental Model ist nicht mit wenigen Worten abdeckbar. Weite
Teile der meisten formalen Agententheorien fallen in seinen Bereich, so daß die Anzahl
der existierenden Methoden groß ist. Wie beschrieben kommen hier zumeist logische
80
Siehe Abschnitt 2.4.3, S. 44.
– 128 –
Spezifikationssprachen zum Einsatz. Daneben existieren Agenten mit sehr speziellen
Anforderungen, die sich zwar in Teilen durch Statements beschreiben lassen, im
Wesentlichen aber innerhalb der Agent Personality definiert sind und daher mit einer
geeigneten weiterführenden Methode beschrieben werden müssen.
Sprachbasierte Chatagenten benötigen zwar eine Repräsentation ihrer Weltsicht und
Erinnerungen an vorhergehende Gesprächsthemen und Bezugsobjekte, die sich als
Statements ausdrücken lassen. Die wesentliche Leistung der Agenten liegt jedoch in
ihrem Parser und der Generierung neuer Sätze, die auf dieser Ebene nicht beschrieben
werden können.
Inherent
Statement
Outlook
(0,n)
consists of
(0,n)
(0,n)
(1,1)
Statement
d,t
Derived
Statement
(0,n)
Structure
Cognitive
Statement
has
Factual
Statement
n,t
(1,1)
Agent
Personality
(0,n)
has
(0,n)
(0,1)
(1,1)
Modal
Statement
Aim
(0,n)
d,p
(1,1)
Hierarchy
has
using
(1,1)
Premeditation
(0,n)
(0,n)
plans
(0,n)
Action
Abbildung 3.16 Elementbeziehungen innerhalb des Mental Model
Semantics
– 129 –
Entsprechende spezielle Methoden lassen sich problemlos in Verbindung mit dem
Metamodell verwenden. Für modellinterne Zwecke genügen jedoch auch einfachere
Formalismen.
In einfachen Fällen kann eine natürlichsprachige Spezifikation durchaus ausreichend
sein. Unter Umständen ist auch eine direkte Modellierung mit den Methoden der
klassischen Softwaretechnik möglich. Ist das Modell komplexer, ist eine formalere
Beschreibung der Ontologie der Statements erforderlich. Wichtig ist hier die Abstützung auf Sensorwahrnehmungen bzw. indirekt Entities. Die Premeditation läßt sich
problemlos durch hergebrachte Netzplantechniken wie CPM oder PERT (vgl.
[West/Levy 1977]) beschreiben.
3.3.2.2 Behavioral Model
Das Mental Model beschreibt zwar die mentalen Einstellungen eines Agenten, macht
aber bislang noch keine Aussagen über deren beobachtbare Dynamik, zumal sich in
ihrem Zentrum in Form der Agent Personality eine Black Box befindet, von der
nichtdeterministische Änderungen ausgehen können. Das Behavioral Model fügt dem
nun die für eine externe Betrachtung erforderliche öffentliche Perspektive hinzu, wobei
die als Legal Stance eingeführte juristische Sichtweise zum Einsatz kommt.81
Behaviors beschreiben in Form von Bedingungen und Aktionen Verhaltensweisen. Für
ihren Einsatz als Mittel zur Beschreibung eines Agentensystems ist vor allem die Frage
von Belang, ob sich erkennen läßt, wann ein Agent sich konform zu einem Behavior
verhalten hat. Gerade in offenen Systemen ist die Definition und Erkennung a b w e i c he n d e n Verhaltens mindestens genauso wichtig wie die Definition normgerechter
Verhaltensweisen. Auch wenn es bei Behaviors natürlich nicht per se um schädliche
Verhaltensweisen geht, läßt sich hier daher eine interessante Parallele zum angelsächsischen Strafrecht ziehen. Sein zentraler Grundsatz ist actus non facit reum nisi mens sit
rea (‚Eine Tat macht keinen zum Schuldigen, wenn nicht sein Geist schuldig ist’). Eine
Verurteilung erfordert den Nachweis der Tat, actus reus, und des Vorsatzes, mens rea.
81
Für eine Übersicht über das Behavioral Model siehe Abbildung 3.17, S. 139.
– 130 –
Hinsichtlich des actus reus ist dies für Agentensysteme zumeist unproblematischer als
in menschlichen Gesellschaften. Einfache Actions haben eine exakte Entsprechung in
Form von Anwendungen von Effectors und Active Sensors auf der Physical Layer und
können als solche in der Regel wahrgenommen und dokumentiert werden. Problematisch ist hingegen der Nachweis des mens rea, also die Erfüllung der mentalen Vorbedingungen, die das Behavior erfordert.
Um dieses Problem zu lösen, werden Position und Schedule definiert. Die Position ist
die öffentliche Perspektive auf den Outlook eines Agenten, die Schedule publiziert
Teile der Premeditation. Im Idealfall sind die beiden jeweils identisch, in jedem Fall ist
jedoch anzustreben, daß sie jeweils konsistent sind, d.h. die öffentliche Beschreibung
eine echte Teilmenge der privaten Beschreibung ist.
Im Folgenden werden zunächst die beiden öffentlichen Sichten definiert. Im Anschluß
werden Actions und Behaviors beschrieben.
I.
Elemente
A.
Position
Die Position publiziert die Weltsicht eines Agent, um seine Handlungen im sozialen
Kontext vorhersagen und beurteilen zu können. Die Position ist ähnlich strukturiert wie
der Outlook und besteht aus einer Struktur von Statements. Daher fallen auch die
identischen drei Ursprungsklassen für Statements an.
Inherent Statements sind die am wenigsten problematische Klasse. Da sie schon in der
Spezifikation des Mental Model durch den Modellierer explizit abgebildet worden sind,
lassen sie sich in diesem Zusammenhang auch problemlos in der selben Form öffentlich
machen.
Cognitive Statements können nicht vorab in einem statischen Modell beschrieben
werden. Der Vorteil dieser Art von Statements ist jedoch, daß sie sich unter Kenntnis
der Regeln des Environment und der verfügbaren Sensors eindeutig herleiten und dem
Agenten zuschreiben lassen. Das einzige Problem hier sind nicht allgemein nachvollziehbare Wahrnehmungen, etwa eine private Konversation zwischen zwei Agenten. Die
Sicht der anderen Agenten auf die Position fragmentiert, was aber kein übermäßiges
– 131 –
Problem ist, solange das Verhalten des Agenten unstrittig ist. Die Regelung von
Konflikten erfordert allerdings eine Offenlegung der Kommunikation.
Agent A nimmt in einer privaten Nachricht an Agent B dessen Angebot an und schreibt
der Position von B somit Wissen über den geschlossenen Vertrag zu. Aus der Sicht von
Aufsichtsagent C enthält die Position von B keine solche Information. Wenn B nun
gegenüber A den Vertrag leugnet und somit lügt, muß A den Nachrichtenaustausch
nachweisen, um C davon zu überzeugen, Sanktionsmaßnahmen gegen B zu ergreifen.
Die meisten Probleme bereiten die Derived Statements, da ihre Herleitung Wissen über
die Inferenzkomponente des Agenten erfordert. Für den Entwickler, der die künstliche
Intelligenz eines Agenten selbst umsetzt, ist diese Information implizit vorhanden – in
offenen, heterogenen Systemen ist sie aber als solche nicht verfügbar, wenn sie nicht
gar als Geschäftsgeheimnis gehütet wird. Eine Beschreibung intelligenten Verhaltens ist
ohne sie jedoch undenkbar.
Der Lösungsansatz für dieses Problem wird in der weiteren Beschreibung des Behavioral Model geliefert werden: Wo diese für die Interaktion mit der Umwelt relevant
erscheinen, kann ein Agent in ergebnisorientierter Weise beschreiben, welche (Arten
von) Schlußfolgerungen er aus bestimmten Statements ziehen wird. Diese Beschreibungen haben die Form von Behaviors, deren Actions die Position modifizieren.
Ein Agent publiziert: ‚Wenn ich auf ein Angebot nicht binnen 5 Minuten eine Antwort
erhalten habe, schließe ich, daß der andere Agent nicht interessiert ist.’
Element Summary
Position
Hierarchical Name
Conceptual.Position
Definition
The legal stance perspective on an Agent’s Outlook
Relationships
Publishes Outlook
Referenced by Behavior
Examples
B.
Set of published beliefs and goals
Schedule
Die Schedule eines Agent gleicht dementsprechend seiner Premeditation und dokumentiert seine angekündigten bzw. erwarteten zukünftigen Handlungen. Sie dient der
Dokumentation seiner Absichten, die hier jedoch keine Beschreibung des angestrebten
– 132 –
Ziels im Sinne des Konzepts der Intention82 sind, sondern die konkret beabsichtigten
Handlungen auf dem Weg zu diesem Ziel angeben.
Diese Sichtweise ist zweifach motiviert: Zum einen besitzen die konkreten Handlungen
dank der möglichen Abstützung auf die Physical Layer eine präzise definierte Semantik. Zum anderen spiegelt es die Tatsache wider, daß Akteure in einem sozialen Umfeld
primär nach ihren Handlungen und erst nachgeordnet gemäß der unterstellten Motivation der Handlung beurteilt werden. Dies gilt analog auch für zukünftige Handlungen:
zunächst ist wichtig, ob überhaupt eine Handlung vorgesehen ist, die Frage nach der
Begründung dabei zumeist zweitrangig.
Problematisch ist bei dieser Betrachtungsweise lediglich die Handhabung von bewußter
Inaktivität. In diesem Falle muß die Untätigkeit als spezielle Form der Action in der
Schedule erfaßt werden.
Der willentliche Bruch eines Leistungsversprechens oder das klassische ‚perfekte
Verbrechen’, das nur durch tatenloses Zusehen begangen wird, werden beide durch
b e w u ß t e Untätigkeit definiert.
Die Schedule entspricht wiederum einem gerichteten, azyklischen Graphen, der
durchaus nichtdeterministische Übergänge enthalten kann. Für die meisten Anwendungsbereiche dürfte es sich aber als notwendig erweisen, den einzelnen Aktionen im
Sinne eines Projektplanes Zeitrahmen, insbesondere Deadlines, zuweisen zu können, da
die Ankündigung einer Handlung ‚irgendwann’ in der Zukunft in der Regel keinerlei
planerischen Wert hat.
Die Einträge der Schedule sind alle auf die eine oder andere Art abgeleitet. Zum einen
können reaktive Behaviors bestimmte Reaktionen vorsehen, die dann in die Schedule
eingetragen werden. Zum anderen kann ein Agent ähnlich wie für Derived Statements
auch eigene Behaviors definieren, die beschreiben, welche geplanten Handlungen er aus
welchen Statements ableitet.
82
Siehe Abschnitt 2.3.2.3, S. 26.
– 133 –
Ein mobiler Agent veröffentlicht: ‚Sobald ich zu dem Schluß gekommen bin, daß die
lokalen Ressourcen für die Erreichung meiner Ziele nicht ausreichen, werde ich auf ein
anderes System migrieren.’
Element Summary
Schedule
Hierarchical Name
Conceptual.Schedule
Definition
The legal stance perspective on an Agent’s Premeditation
Relationships
Publishes Premeditation
Referenced by Behavior
Examples
C.
A timetable of expected actions
Action
Die einzelnen Aktionen im Rahmen von Behaviors und der Schedule werden durch
Actions beschrieben. Eine Action ist ein atomares Verhaltensmuster eines Agenten, das
den Zustand der Welt beeinflußt. Dabei wird unterstellt, daß der Agent sein Verhalten
beabsichtigt, was jedoch nicht notwendigerweise einschließt, daß er alle Konsequenzen
und Implikationen ebenfalls beabsichtigt.
Bei Actions wird zwischen zwei Untertypen unterschieden: Physical Effect, einer
Änderung am Environment, und Mental Effect, einer Änderung am Mental Model
bzw. seiner publizierten Repräsentation.
Element Summary
Action
Hierarchical Name
Conceptual.Action
Definition
The basic behavioral building block, affecting the state of the world
Relationships
Contained by Behavior, Schedule, Premeditation
Examples
Sending a message, reading a file, scheduling an Action
i.
Physical Effect
Ein Physical Effect ist eine Action, die durch eine konkrete, inhaltlich abgeschlossene
Abfolge von Effector- und Sensor-Anwendungen auf der Physical Layer beschrieben
werden kann. Der Schwerpunkt liegt dabei auf Effectors, jedoch können Active Sensors
analog erfaßt werden.
Die oben erwähnte Inaktivität kann als Physical Effect mit einer leeren Anwendungsreihenfolge gesehen werden.
– 134 –
Element Summary
Physical Effect
Hierarchical Name
Conceptual.Action.Physical
Definition
An Action that consists of using an Effector or Active Sensor
Formalisms
Entity Model
Grounding
Effector or Active Sensor
Examples
Sending a message, deleting a file, moving a robot
ii.
Mental Effect
Ein Mental Effect ist eine Action, die die Position und/oder die Schedule verändert,
was nach Möglichkeit zu entsprechenden Änderungen an Outlook und Premeditation
führen sollte. Ein Mental Effect kann Statements bzw. Actions einfügen, verändern
oder löschen.
Element Summary
Mental Effect
Hierarchical Name
Conceptual.Action.Mental
Definition
An Action changing the Agent’s Position or Schedule
Relationships
Affects Position or Schedule
Examples
Drawing a conclusion, scheduling an action
D.
Behavior
Zuletzt kann nun das Behavior als der zentrale Baustein des Behavioral Model mit
seinen verschiedenen Untertypen definiert werden. Ein Behavior ist ein komplexes
Verhaltensmuster. Eine Menge von Behaviors erlaubt die Charakterisierung eines
Agenten in Anlehnung an den sozialpsychologischen Behaviorismus, wobei der Begriff
hier durch die Berücksichtigung von Denkprozessen und die Bezugnahme auf das
Mentalmodell allerdings weiter gefaßt ist.
Auf der technischen Ebene greift ein Behavior unter anderem den Gedanken der
Methodensignatur in der objektorientierten Welt auf, geht aber durch die Hinzunahme
von semantischen und pragmatischen Aspekten sowie Proaktivität und Nichtdeterminismus darüber hinaus. Ein Behavior beschreibt das Verhalten eines Agenten unter
bestimmten Umweltbedingungen. Behaviors publizieren somit, was die Umwelt von
einem Agenten erwarten kann.
Behaviors können dabei unterschiedlich stark nichtdeterministisch geprägt sein. Streng
deterministische Behaviors sind naturgemäß eher agentenuntypisch. Jedoch ist es
durchaus üblich, daß Behaviors nichtdeterministische Entscheidungen enthalten, in
– 135 –
anderen Bereichen aber ganz präzise Verhaltensgarantien formulieren und objektähnliches Verhalten zeigen. Deterministische Behaviors lassen sich oft als spezielle Ausprägung eines generischen nichtdeterministischen Behaviors verstehen.
Ein Behavior, das das Verhalten eines Verkäufers beschreibt, könnte etwa die Abfolge
‚Angebot’ – ‚Vertragsschluß’ – ‚Lieferung’ vorsehen. Durch einen konkreten Handel
würde eine konkrete Frist oder gar ein exakter Zeitpunkt für die Lieferung festgelegt.
Jedes Behavior beschreibt jeweils nur das Verhalten eines einzelnen Agenten. Soll eine
Interaktion beschrieben werden, müssen daher mehrere komplementäre Behaviors
verwendet werden.
Ein Behavior besteht aus einer geordneten zeitlichen Abfolge von Actions, die durch
Entscheidungsregeln und Vor- und Nachbedingungen verknüpft sind, die sich auf
Position und Schedule des Agenten beziehen. Behaviors können sehr einfach oder
beliebig komplex sein; ein Behavior kann sich auch aus mehreren einfacheren Behaviors zusammensetzen oder andere Behaviors auslösen.
Die Subsumption Architecture kann als System von Behaviors modelliert werden.
Das Konzept des Behaviors wird auf zwei Arten verwendet, die im Rahmen des Social
Model ausgiebig betrachtet werden: Zum einen können Agenten a priori Behaviors
selbst publizieren – zum anderen kann ein externer Beobachter a posteriori beschließen,
daß ein Agent durch sein Verhalten einem bestimmten Behavior entsprochen hat, was
eine Beobachtbarkeit des Behaviors voraussetzt.
Element Summary
Behavior
Hierarchical Name
Conceptual.Behavior
Definition
A sequence of rules stating pre- and postconditions for specific Actions
Relationships
Included by Role
Conditions reference Position and Schedule
Formalisms
Natural language, script or programming language, flowchart, formal logic
Examples
Interaction protocol, conversing, moving, thinking, reacting
Behaviors lassen sich entlang mehrerer orthogonaler Achsen klassifizieren. Sie können
proaktiv oder reaktiv ausgelöst werden. Sie können inneres oder äußeres Verhalten
– 136 –
beschreiben, also auf die Umwelt einwirken oder rein mental sein. Sie können Einzelaktivitäten oder Interaktionen mit anderen Agenten sein.
i.
Spontaneous Behavior
Ein Spontaneous Behavior wird durch einen agenteninternen Impuls angestoßen. Der
Agent initiiert es proaktiv selbst, sei es aufgrund eines nichtdeterministisch modellierten
Zustandsübergang innerhalb seiner Agent Personality oder als Konsequenz einer gemäß
veröffentlichter Regeln abgeleiteten Schlußfolgerung. Die Bezeichnung bezieht sich nur
auf den Auslöser des Behavior – in seinem weiteren Verlauf kann das Verhaltensmuster
durchaus Interaktion und Reaktion enthalten.
Agent A beschließt, eine Message mit einem Angebot an Agent B zu schicken.
Ein Spieler eröffnet in Quake mit seinem Avatar das Feuer auf einen NPC.
Element Summary
Spontaneous Behavior
Hierarchical Name
Conceptual.Behavior.Spontaneous
Definition
A Behavior proactively initiated by an Agent
Examples
Starting a conversation, placing an offer
ii.
Conditioned Behavior
Ein Conditioned Behavior ist eine Reaktion auf einen äußeren Reiz. Es wird durch ein
neues Cognitive Statement, also eine Sensorwahrnehmung, ausgelöst. Diese Wahrnehmung wird in vielen Fällen die Folge eines Physical Effect, also durch eine Effektorbenutzung eines anderen Agenten bedingt, sein.
Agent B sendet eine Message an Agent A zurück, in der er das Angebot ablehnt.
Der NPC in Quake duckt sich, weicht aus und erwidert das Feuer.
Element Summary
Conditioned Behavior
Hierarchical Name
Conceptual.Behavior.Conditioned
Definition
A Behavior triggered by an Action or a new Cognitive Statement
Relationships
Triggered by Action or Cognitive Statement
Examples
Conversation protocols, automated response
– 137 –
iii.
Manifestation
Jedes Behavior, das mindestens einen Physical Effect umfaßt, ist eine Manifestation.
Manifestations sind daher zumindest teilweise beobachtbar.
Element Summary
Manifestation
Hierarchical Name
Conceptual.Behavior.Manifestation
Definition
A Behavior having Physical Effect
Examples
Sending a Message, moving the robot around.
iv.
Deliberation
Ein Behavior, das mindestens einen Mental Effects enthält, ist eine Deliberation. Eine
reine Deliberation, die nicht gleichzeitig eine Manifestation ist, ist nicht beobachtbar,
da sie naturgemäß völlig selbstbezogen ist.
Der durch die Deliberation beschriebene Denkprozeß muß nicht deterministisch oder
vollständig spezifiziert sein. Es können auch nur die Entscheidungsgrundlage und eine
Auswahl möglicher Ergebnisse angegeben sein. Deliberations sollen lediglich die
Möglichkeit bieten, die Schlußfolgerungen eines Agenten so transparent zu machen, wie
dies für die Entwicklung des Gesamtsystems notwendig erscheint.
Deliberations können zusätzlich noch eine weitere interessante Information vermitteln:
Da sie Behaviors sind, lassen sie sich als zeitliche Abfolge mit einer spezifischen Dauer
verstehen. Damit läßt sich beschreiben, daß ein Agent zwar alle gemäß der ihm zur
Verfügung stehenden Syllogismen aus den verfügbaren Informationen ableitbaren
logischen Schlüsse ziehen könnte, in endlicher Zeit aber jeweils nur immer einen
begrenzten Ausschnitt dieser Gesamtmenge tatsächlich betrachten kann. Dadurch wird
das Problem der Berücksichtigung des beschränkten Erfahrungshorizonts eines Agenten, das in Verbindung mit Possible World Semantics auftritt (Logical Omniscience
Problem), elegant gelöst.
Element Summary
Deliberation
Hierarchical Name
Conceptual.Behavior.Deliberation
Definition
A Behavior having Mental Effect
Examples
Making plans, drawing conclusions
– 138 –
v.
Solitary Behavior
Ein Solitary Behavior ist ein Behavior, das bezüglich anderer Behaviors in sich
abgeschlossen ist, also keine direkten Verflechtungen mit dem Verhalten anderer
Agenten besitzt. Es ist jedoch nicht notwendigerweise reflexiv, sondern kann auf die
Umwelt, also andere Entities und Agents, einwirken.
Element Summary
Solitary Behavior
Hierarchical Name
Conceptual.Behavior.Solitary
Definition
A self-contained Behavior involving only a single active agent
Examples
Moving the robot around, thinking, reading a file, .suspending another agent
vi.
Interactive Behavior
Ein Interactive Behavior ist Teil einer Beschreibung der Interaktion zwischen mehreren
Agenten. Da jedes einzelne Behavior jeweils aus der Perspektive genau eines Agenten
formuliert ist, wird dabei die Interaktion in ihrer Gesamtheit durch mehrere miteinander
verwobene Interactive Behaviors beschrieben.
Bei der Spezifikation einer Interaktion in einem Swim Lane-Aktivitätsdiagramm würde
jede einzelne Spalte (Swim Lane) ein Interactive Behavior wiedergeben.
Element Summary
Interactive Behavior
Hierarchical Name
Conceptual.Behavior.Interactive
Definition
A Behavior that, combined with other Behaviors, describes an interaction
Relationships
Associated with connected Behaviors
Examples
Conversation protocol, swimlane in enhanced activity diagram
II.
Modellierung
Das Behavioral Model ist einer anschaulichen grafischen Modellierung sehr zugänglich
und kann sich auf eine große Auswahl existierender Formalismen abstützen.
Die Modellierung einer Action hängt von ihrem Typ ab. Ein Physical Effect kann durch
die zur Beschreibung der Physical Layer verwendeten Formalismen angemessen
beschrieben werden. Die Spezifikation eines Mental Effect hängt dagegen von der für
Position und Schedule eingesetzten Modellierungsmethode ab, die wiederum aus dem
Mental Model übernommen werden dürfte.
– 139 –
Physical
Effect
n,t
Position
Schedule
(0,n)
(0,n)
references
references
Mental
Effect
Action
(0,n)
Spontaneous
Behavior
comprises
d,t
Conditioned
Behavior
(0,1)
(0,1)
(1,n)
Composition
Manifestation
(0,n)
(0,n)
Behavior
n,t
(0,n)
Deliberation
(0,n)
Interweaving
Solitary
Behavior
d,t
Interactive
Behavior
Abbildung 3.17 Elementbeziehungen innerhalb des Behavioral Model
Das Behavior selbst kann mit einem beliebigen Formalismus ausgedrückt werden, der
die Angabe von Aktionen und Bedingungen erlaubt. Denkbar sind natürlichsprachige
Beschreibungen, Automatenmodelle, Aktivitätsdiagramme, Netzpläne, Pseudocode oder
ausführbare Spezifikationen.
Das Strukturmodel des Behavioral Model umfaßt nur sehr wenige ´Typen und Beziehungen und wird vor allem durch die große Zahl der Untertypen geprägt. Trotz seiner
scheinbaren Einfachheit sind die Zusammenhänge innerhalb des Teilmodells in der
Anwendung jedoch komplex, da hier ein großer Teil der Dynamik und Komplexität des
Systems erfaßt wird.
– 140 –
In einem agentenbasierten Produktionsplanungs- und Steuerungssystem (PPSSystem) existieren Agenten, die Aufträge repräsentieren (Job Control Agent) und
solche, die Ressourcen, hier im Besonderen Maschinen vertreten (Machine Control
Agent). Jeder Job Control Agent verfügt über eine Auftragsnummer und ein Arbeitsprogramm, das es umzusetzen gilt. Weiterhin wird er mit einem gewissen Startkapital an
Credits versehen, mit denen er Ressourcen kaufen kann. Jeder Machine Control Agent
ist einer bestimmten Maschine zugeordnet. Er führt über die noch verfügbare Maschinenlaufzeit Buch und verfolgt das Ziel, den Betrag der eingenommenen Credits zu
maximieren.
Im untenstehenden Diagramm ist vereinfacht eine konkrete Interaktion zwischen zwei
Agenten modelliert. Der Job Control Agent für Lot E-230-C18 muß eine Charge Achsen
herstellen lassen, wozu er laut Plan 1:23 h Maschinenlaufzeit auf einer CNCDrehmaschine benötigt. Er hat bereits etabliert, daß der Agent CNC B-12 eine passende
Maschine repräsentiert. Im Rahmen des Spontaneous Behaviors Acquire Ressource
schickt er daher eine entsprechende Anfrage. Deren Erhalt (in Form eines Cognitive
Statement) löst beim Machine Control Agent ein entsprechendes Conditioned Behavior
aus. Er prüft die verfügbare Arbeitszeit und schickt ein entsprechendes Angebot zurück.
Der Job Control Agent nimmt das Angebot in einer entsprechenden Nachricht an.
Daraufhin überweist er die geforderten Credits, wodurch sich sein wahrgenommener
Bestand an Credits entsprechend verringert. Nach Erhalt der Zahlung korrigiert der
Machine Control Agent zunächst durch einen Mental Effect den Betrag der verfügbaren
Zeit und setzt sofort danach den Arbeitsauftrag durch eine entsprechende Action in die
Tat um, die sich auf den Einsatz der Maschine als Operative Effector abstützt. Das
Applied-Event des Effectors markiert die Fertigstellung des Auftrags und signalisiert
dem Job Control Agent die Erreichung seines Ziels.
Die Notation des Diagramms entspringt einer informellen Verwendung der oben
definierten Modellbegriffe. Agents (blaßrotes Dreieck) besitzen eine Position (drei
Kreise), die aus als Schlüssel/Attribut-Paare ausgedrückten Statements (Kreis) und
Aims (Kringel) besteht (alle hellgrün). Diese können jeweils Inherent (I), Cognitive (C)
oder Derived (D) sein. Die Behaviors (zwei Dreiecke, ocker) sind hier beide Manifestations (M). Actions (Ausrufezeichen, ocker) haben Physical Effect (P) oder Mental
Effect (M) und können Zeitgrenzen tragen.
– 141 –
Job Control Agent
Machine Control Agent
M Acquire Resource
P Send Message
Position
Professed Intention
I agent
me
I identifier
0 0
C message
query
D recipient
CNC B-12
C sender
Lot E-230-C18
D query
1:23 h
C query
1:23 h
Lot E-230-C18
C credits
150
I complete
C agent
M Provide Resource
CNC Lathe
C identifier
C credits
P Send Message
offer
0 5
C sender
CNC B-12
D recipient
Lot E-230-C18
C query
52 credits
D offer
52 credits
P Send Message
5 6
CNC B-12
1:23 h
C message
response
D recipient
CNC B-12
C sender
Lot E-230-C18
D respnse
accept
C respnse
accept
me
CNC B-12
D available
4:53 h
C credits
150
I credits
C agent
I requirement Axle C-56
I CNC Lathe
I agent
I identifier
C message
Axle C-56
Position
Professed Intention
-> max!
150 Axles
C identifier
Lot E-230-C18
D available
3:30h
98
P Transfer Credits
C amount
6 7
C credits
202
52
M Update Availabilty 7 7
C complete
Axle C-56
P Manufacture
C duration
Abbildung 3.18
7 15
1:23 h
Behaviors zweier Agenten in einem PPS-System
Die Einrückungen drücken eine hierarchische Unterordnung aus. Die Behaviors sind
jeweils von oben nach unten zu lesen. Durchgezogene Linien markieren Abfolgen,
gestrichelte Linien beschreiben Seiteneffekte, also im Besonderen die Korrelation
zwischen den Aktionen des einen und der Wahrnehmung des anderen Agenten. Die
gepunkteten Linien innerhalb der Position beschreiben die Aktualisierung eines
Elements. Bezüglich der Dynamik der Position ist die Modellierung hier im Sinne der
Modelldefinition insoweit unvollständig, als daß eigentlich auch alle anderen Statements im Rahmen des Behaviors, also etwa das Cognitive Statement zum Empfang der
Nachricht, expliziter Teil der Position werden.
3.3.2.3 Social Model
Innerhalb des Behavioral Model klang zwar bereits die Bedeutung des Prozesses der
Veröffentlichung von Behaviors und der Überprüfung ihrer Einhaltung an, diese
wurden jedoch noch nicht formalisiert. Diese Funktion wird vom Social Model
übernommen.
– 142 –
Im Rahmen des Social Model werden die jeweiligen Regeln beschrieben, die das
Verhalten eines Systems von Agenten auf konzeptioneller Ebene bestimmen. Die
‚Kultur’ einer solchen ‚Gemeinschaft’ umfaßt die definierten Rollen, Kommunikationssprachen, Gesetze und Konventionen.83 Die Begriffswelt des Teilmodells ist naturgemäß
soziologisch geprägt.
I.
Elemente
A.
Culture
Eine Culture charakterisiert eine Gruppe von Agenten, eine Community. Culture wird
hier nicht im ethnologischen, sondern im organisationssoziologischen Sinne verstanden.
Sie bezeichnet dort die Gesamtheit der Hypothesen, die eine Gruppe zur Lösung äußerer
Probleme und zur internen Koordination entwickelt hat (vgl. etwa [Strategor 1997, S.
470ff]).
Eine Culture beschreibt die Regeln eines Typs von Gemeinschaft, etwa eines elektronischen Marktplatzes, einer Demokratie, eines Unternehmens, eines Lehrstuhls, eines
persönlichen Assistenten und seines Benutzer oder eines Diskussionsforums.
Cultures können verschachtelte Strukturen besitzen und untergeordnete Cultures
(‚Subkulturen’) definieren.
Alle Teilnehmer eines (Roboter-)Fußballspiels sind Teil einer Gemeinschaft mit einer
gemeinsamen Culture, die etwa die Spielregeln diktiert. Innerhalb dieses Systems
definiert jede Mannschaft wiederum eine eigene Culture, etwa welches Spielsystem
gespielt wird und wer welche Position übernimmt.
Die Definition einer Culture kann weiterhin durch Vererbung wiederverwendet und
spezialisiert werden. Dabei ist zu unterscheiden, ob die ursprüngliche Culture nur als
Vorlage verstanden wird, wobei beliebige Umdefinitionen zulässig sind, oder ob die
83
Abbildung 3.19, S. 157, gibt einen Überblick über das Social Model.
– 143 –
abgeleitete Culture in einer Spezialisierungsrelation zum Ursprungstyp stehen soll,
wozu die Festschreibung bestimmter Invarianten erforderlich ist.
Eine Auktionsplattform kann nach dem Vorbild eines Konkurrenten ihre Geschäftsbedingungen definieren, dabei aber beliebige Änderungen vornehmen. Eine Fußballmannschaft kann zwar das allgemeine Modell einer Mannschaft an ihre Bedürfnisse
anpassen, aber dabei nicht beschließen, den Ball zukünftig mit den Händen zu führen.
Die Definition einer Culture umfaßt vor allem Rollen und Normen. Diese beantworten
wichtige Fragen, etwa, wie Mitgliedschaft in der Gemeinschaft definiert ist, welches
Verhalten sozial erwünscht ist, wie dies überwacht wird und mit welchen Sanktionen
sozial unerwünschtes Verhalten belegt wird. Dabei spielen auch Konventionen eine
wichtige Rolle, die festlegen, welche Handlungen welche Absichten implizieren.
Sprache ist eine spezielle Art der sozialen Konvention. Die Implikationen der Handlungen werden formal durch Professed Intentions beschrieben.
Eine soziale Konvention legt etwa fest, daß die Abgabe eines Gebots bei einer Auktion
ein Versprechen zum späteren Kauf ist. Eine Norm legt fest, daß der Agent bei Bruch
dieses Versprechens vom Marktplatz ausgeschlossen wird.
Die Beschreibung der Rollen ist wesentlich zur Erfassung des Zwecks und der Ziele
einer Gemeinschaft. Weiterhin definieren die Rollen Strukturen und Beziehungen
innerhalb der Gemeinschaft. Im Rahmen des Social Simulation Approach84 [Castelfranchi
1990] stellt Castelfranchi dabei im Besonderen die Bedeutung von Machtstrukturen
heraus, wobei er sich auf die soziologische Standarddefinition von Macht als „jede
Chance, innerhalb einer sozialen Beziehung den eigenen Willen auch gegen Widerstreben durchzusetzen, gleichviel worauf diese Chance beruht“ von Weber (vgl. etwa [Weiß
1989]) und nicht nur auf institutionalisierte Macht bezieht. Im Metamodell kann direkte
Machtausübung durch einen entsprechenden Context auf der Physical Layer oder die
Garantie reaktiver Conditioned Behaviors auf der Conceptual Layer abgebildet
84
Siehe Abschnitt 2.1.1, S. 9.
– 144 –
werden, indirekte Macht hängt etwa mit der Kontrolle von Resources und Facilities
oder Befehlsgewalt über dritte Agenten mit entsprechenden Kompetenzen zusammen.
Element Summary
Culture
Hierarchical Name
Conceptual.Culture
Definition
A shared set of rules and concepts shared by a group of Agents
Relationships
Adopted by Community
Defines Roles, Language, Norm, Professed Intention
Examples
B.
Company guidelines, marketplace rules, team hierarchy
Role
Die von einer Culture festgelegten Rollen werden durch Roles beschrieben. Eine Role
ist immer nur im Rahmen einer Culture zu verstehen, kann aber durchaus auch von
mehreren Cultures verwendet werden.
Die Rolle des Kapitäns ist sehr unterschiedlich definiert, je nachdem ob sie sich auf ein
Schiff bzw. Flugzeug oder eine Fußball- oder Handballmannschaft bezieht.
Roles können genau wie Cultures umdefiniert und verfeinert werden, wobei wiederum
zu unterscheiden ist, ob die Role nur als Vorlage dient oder generischer Obertyp sein
soll.
Eine Role ist im Kern eine Menge Behaviors, die unter diesem Namen zusammengefaßt
sind. Durch das Übernehmen einer bestimmten Rolle erklärt ein Agent, daß er den
dadurch definierten Verhaltensmustern entsprechen wird. Die Bedingungen für die
Anwendung der einzelnen Behaviors sollten eindeutig und widerspruchsfrei sein. Im
Zweifel können Roles hierzu Meta-Behaviors im Stil der im nächsten Abschnitt
beschriebenen Rules definieren, die im Fall von Konflikten oder Zweideutigkeiten die
Auswahlkriterien klarstellen.
Die Verzeichnisdienstrolle in einem Multiagentensystem definiert zwei Behaviors: auf
den Empfang einer Anmeldung reagiert sie mit der Erstellung eines Registrierungseintrages, auf eine Anfrage durch die prompte Rückgabe des gesuchten Eintrages.
– 145 –
Wie einführend beschrieben wurde, werden in Verbindung mit einem evolutionären
Verständnis der Agentenorientierung Rollen oft als Entsprechung zum Begriff des
Interface in der Objektorientierung gesehen. Dies ist aus Sicht des Metamodells
durchaus haltbar. Ebenso wie ein Objekt mehrere Interfaces implementieren darf, kann
ein Agent mehrere Rollen gleichzeitig spielen. Sein Profil muß allerdings nicht statisch
sein, sondern kann unter Umständen nach Maßgabe sozialer Normen durch Annehmen
und Ablegen von Roles verändert werden. In aktuellen Softwaresystemen dürfte
allerdings die Obermenge der Roles, die ein bestimmter Agent potentiell spielen kann,
zum Zeitpunkt der Erstellung bereits festgelegt sein.
Roles können bestimmte Garantien, Rechte, Pflichten und Beschränkungen mit sich
bringen. Formal wird dies durch eine Assoziation mit Professed Intentions, die unten
detailliert eingeführt werden, ausgedrückt.
Darüber hinaus können mit einem bestimmten Zweck, ihrem Purpose, assoziiert sein,
der im Rahmen des Application Model näher beschrieben85 wird.
Element Summary
Role
Hierarchical Name
Conceptual.Role
Definition
A named and structured set of Behaviors
Relationships
Consists of Behaviors
Committed to by Agent
Associated with Professed Intentions
May have Purpose
Examples
C.
Buyer, Seller, Officer, Forward, Directory,
Norm
Eine Norm ist ganz allgemein jede explizite Festlegung zur Koordination der Struktur
und des Verhaltens in einer Culture. Dies schließt zum einen strukturelle Regeln wie
etwa die Festschreibung von Kardinalitäten oder notwendigen Beziehungen ein, zum
anderen Verhaltensmaßregeln im Sinne von Meta-Behaviors oder im Stil sozialer
Konventionen zur Interpretation von Verhalten und Nachrichten.
85
Siehe Purpose, S. 162.
– 146 –
Ein Schachspiel wird durch strukturelle Regeln (es gibt 64 Felder, schwarze und weiße
Figuren und jeweils 8 Bauern, einen König usw.), Rollen (die Figurentypen) mit
assoziierten Verhaltensweisen (Zugmöglichkeiten der Figurentypen), Verhaltensregeln
über erlaubte Züge und Ausgang des Spiels (eigene Figuren können nicht geschlagen
werden, Rochade ist nicht beim Ziehen durch ein Schachgebot möglich, dreimalige
Stellungswiederholung führt zu Remis) und soziale Konventionen (Umlegen des Königs
signalisiert Aufgabe) definiert.
Bei der Definition sozialer Normen ist die Frage von grundlegender Bedeutung, wer der
Adressat dieser Spezifikation ist. Normen können sich nur als Implementierungsrichtlinien an den – möglicherweise mit dem Modellierer identischen – Entwickler richten,
der sie dann implizit bei der Gestaltung des Systems berücksichtigt. Bei größeren
Projekten oder offenen Systemen erfordert dies eine systemexterne Evaluation der
Konformität, etwa durch ein Audit des Quellcodes. Alternativ kann, sofern das damit
verbundene Risiko tragbar ist, die Korrektheit der Implementierung auch erst zur Zeit
der Anwendung durch externe Beobachtung überprüft werden.
Ergänzungen zu kritischen geschlossenen Systemen wie etwa Produktionssteuerungen
werden vor dem praktischen Einsatz intensiv auf ihren Einfluß auf das Gesamtsystem
und ein der Intention des Entwurfs entsprechendes Verhalten überprüft werden. Der
Betreiber einer Auktionsplattform wird bei Hinweisen auf Regelverstöße die Protokolle kontrollieren, delinquente Agenten ausschließen und von dem verantwortlichen
Unternehmen Korrekturen und Wiedergutmachung verlangen.
Andererseits können Regeln auch im Kontext des Systems überprüft werden, was ihre
Abbildung auf die Physical Layer erfordert. Dabei ist nicht relevant, in welcher Form
die Regeln im System kodiert sind. Im Allgemeinen werden sie implizit im Entwurf des
Entity Model umgesetzt sein, denkbar sind jedoch auch eine explizite Darstellung der
Regeln und ihre Verarbeitung durch einen geeigneten Parser. Wichtig ist hingegen, wie
ihre Einhaltung überwacht wird, also sowohl, wie sie überprüft wird, als auch, wie sie
durchgesetzt wird. Eine zentralisierte Überwachung erscheint für Agentensysteme
vergleichsweise untypisch, da eine monolithische Wächterinstanz der Philosophie der
Verhaltensdekomposition zuwiderläuft und ein schwer handhabbares Maß an Komplexität an einer zentralen Stelle bündelt. Viele Regeln werden direkt durch Contexts auf
– 147 –
der Physical Layer umgesetzt werden, so daß verbotenes Verhalten gar nicht erst
möglich ist. Strukturelle Regeln können durch einen Enforcement Process garantiert
werden, der auch zur direkten Ahndung bestimmter Übertretungen verwendet werden
kann. Abstraktere Regeln können durch soziale Kontrolle geschützt werden, wobei die
Existenz von als inhärent vertrauenswürdig betrachteten Agenten hilfreich sein kann. Es
können auch dedizierte Agenten vorgesehen werden, die die Beachtung bestimmter
Teilaspekte des Regelwerks überprüfen und die Fähigkeit besitzen, geeignete Sanktionen zu verhängen. Zuletzt können Regeln auch durch eine freiwillige Selbstkontrolle
umgesetzt werden.
Ein Enforcement Process kann eine Suchanfrage, die die ihr zum Kauf von Rechenzeit
und anderen Ressourcen mitgegebenen Credits verbraucht hat, von einem Server
löschen. Soziale Systeme können etwa ein Rufsystem implementieren, in dem nichtkonforme Agenten sozial geächtet oder sogar aus der Agentengemeinschaft ausgeschlossen werden. Agenten merken selbst, wenn sie Opfer regelwidrigen Verhaltens,
etwa eines Vertragsbruches, werden und publizieren dies. Viele aktuelle soziale
Systeme beruhen auf einer Selbstkontrolle der Agenten, die beispielsweise zwar
Versprechen brechen dürfen, dafür aber dann eine Vertragsstrafe zahlen müssen.
Element Summary
Norm
Hierarchical Name
Conceptual.Norm
Definition
A social law
Relationships
Defined by Culture
Interprets Professed Intention
Grounding
May be implemented by an Enforcement Process
Examples
Chess is played by ‘black’ and ‘white’, with 16 pieces each. White moves first.
i.
Axiom
Eine strukturelle Regel wird als Axiom bezeichnet. Sie muß zwangsläufig erfüllt sein,
damit eine Gemeinschaft zu einer bestimmten Culture konform ist. Axioms quantifizieren häufig erforderliche Mengenrelationen bestimmter sozialer Elemente.
– 148 –
Eine Fußballmannschaft umfaßt 11 Spieler. Auf dem Marktplatz gibt es immer
mindestens einen Auktionator. Alle Mitglieder der Handelsplattform müssen zertifiziert sein. Keine zwei Agenten können die Datenbankverwalterrolle gleichzeitig
innehaben. Jeder Agent vertritt einen Benutzer.
Die Überprüfung von Axioms ist in der Regel weitgehend unproblematisch, da sie in
ihrem Anspruch nicht über die Erfordernisse klassischer Softwaretechnik oder Mengenlogik hinausgeht. Axioms können allerdings auch Entwurfsprinzipien sein, die weitergehende Garantien auf inhaltlicher Ebene beschreiben, deren Einhaltung nicht mehr
trivial ersichtlich ist.
Alle Agenten sind aufrichtig, d.h. ihre Position und ihr Outlook sind nicht im Widerspruch. Jeder Produktionsauftrag muß immer genügend Credits zurückbehalten, um
seine Fertigstellung zu Minimalpreisen finanzieren zu können.
Element Summary
Axiom
Hierarchical Name
Conceptual.Norm.Axiom
Definition
A Norm constraining the static structure and guarantees of the Culture
Examples
There is at least one coordinator in a team. Agents are truthful.
ii.
Rule
Eine Norm, die im Stil eines Gesetzes das Verhalten von Agenten einschränkt und
vorschreibt, wird als Rule bezeichnet. Rules beschreiben häufig auf einer Metaebene
Verhalten in Form von Behaviors. Sie können zum einen Konsequenzen bestimmter
Handlungen festschreiben, zum anderen definieren, welche Handlungen überhaupt
möglich sind.
Abweichen von den Behaviors einer publizierten Rolle führt zu Ausschluß aus der
Gemeinschaft. Das Behavior ‚Rücknahme eines Versprechens’ impliziert das Behavior
‚Zahlung einer Vertragsstrafe’. Wenn ein Agent ein Angebot veröffentlicht hat, kann er
es nicht mehr zurückziehen, bis seine Gültigkeit regulär abgelaufen ist.
Rules können dabei oft in ähnlicher Weise wie Behaviors beschrieben werden, können
aber zusätzlich auf der Ebene von Roles, Behaviors und Professed Intentions argumentieren. Die Überprüfung von Rules ist in der Regel um Größenordnungen komplexer als
– 149 –
die der Axioms, da hier nicht nur ein einzelner Zustand, sondern ein kompletter Ablauf
in Form seiner signifikanten Zwischenzustände betrachtet werden muß.
Eine Rule kann auch eine Konvention im bereits beschriebenen Sinne sein.
Das Abgeben eines Gebotes impliziert das Versprechen, einen Kauf zu tätigen.
Das System der Rules muß nicht zwangsläufig statisch sein. Komplexere soziale
Modelle können dessen Adaption an sich ändernde Umstände erfordern (vgl. etwa
[Excelente-Toledo et al. 2001]). Rules höherer Ordnung, die die Anwendbarkeit anderer
Rules in Abhängigkeit vom Systemzustand beschreiben, können diese Anforderungen
erfüllen.
Element Summary
Rule
Hierarchical Name
Conceptual.Norm.Rule
Definition
A Norm constraining the dynamics of the Culture through meta-behaviors
Examples
Breaking a promise costs a penalty. A permission cannot be revoked.
iii.
Language
Eine Language ist ganz allgemein die vereinbarte Definition der Bedeutung bestimmter
Zeichen, also einer Semantik. Sie bildet den konkreten Inhalt von Messages auf eine
Ontologie ab. Zudem kann sie auch im Sinne des oben verwendeten Konventionsbegriffs eine pragmatische Interpretation des Inhalts als Professed Intention vorschreiben.
KQML und FIPA ACL beschreiben die Bedeutung verschiedener Klassen von
Sprechakten und gehen dabei im Besonderen auf den beabsichtigten Effekt ein.
Der Begriff der Language ist hier aber im Grunde enger gefaßt als bei den meisten
ACLs, da er nur die Umsetzung in Cognitive Statements und Professed Intentions
beinhaltet und nicht auch die Definition der eigentlichen Ontologie oder der sozialen
Implikationen bestimmter Aussagen einschließt.
Element Summary
Language
Hierarchical Name
Conceptual.Language
Definition
Specification of the semantics of Messages
Formalisms
Natural language, formal logic
Examples
KQML, FIPA-ACL, mapping of method imvocations to Professed Intentions
– 150 –
D.
Professed Intention
Als letztes Element des Social Model soll nun die Professed Intention definiert werden,
deren Bedeutung sich schon in den Beschreibungen aller anderen Elemente angekündigt
hat.
Eine Professed Intention ist als Willenserklärung im juristischen Sinne zu verstehen.
Sie ist ein wichtiges Instrument, um bei der Verwendung des Konzepts des sozialen
Systems als Analogie für ein Multiagentensystem sinnvoll argumentieren zu können.
Auch für das Konzept des Legal Stance ist sie von zentraler Bedeutung.
Die Professed Intention erlaubt es nun, zu formalisieren, was damit gemeint ist, wenn
Agenten ‚Versprechen’ machen, Vorhaben ‚publizieren’ oder ‚Garantien’ geben. Ganz
allgemein gesehen ist eine Professed Intention eine öffentlich gemachte Aussage eines
Agenten, die das verfügbare Wissen der Gemeinschaft über seine mentalen Einstellungen erweitert.
Was eine Professed Intention ist, wird allein durch soziale Konventionen festgelegt. Sie
k a n n sich auf einen Sprechakt im klassischen Sinne beziehen, es kann sich dabei
jedoch auch um jede andere Aktion eines Agenten handeln. Die Essenz der Professed
Intention ist aber nicht der eigentliche Akt, sondern sein Ergebnis, das den Akt
dokumentiert.
Dies lehnt sich an die juristische Festlegung an, daß bestimmte Willenserklärungen der
Schriftform bedürfen. In Softwaresystemen, in denen es überhaupt keine im eigentlichen Sinne mündliche Kommunikation gibt, ist eine solche Anforderung trivial erfüllt.
Jede Professed Intention läßt sich auf Entities der Physical Layer zurückführen, was
auch explizit modelliert werden sollte.
Wird die Migration auf einen Server als Anerkennung der dortigen Geschäftsbedingungen akzeptiert, dokumentiert die Anwesenheit des Agenten diese Aussage. Sprechakte
sind durch die Messages dokumentiert, in denen sie ausgedrückt sind.
– 151 –
Dabei wird nicht verlangt, daß die Manifestationen der Professed Intentions persistent
gespeichert werden, etwa in einem Audit Trail ausgetauschter Nachrichten. Sieht der
Entwurf des Systems allerdings die Möglichkeit zu Konflikten, speziell Dispute
bezüglich unterstellter Professed Intentions, vor, sind entsprechende Aufzeichnungen
Voraussetzung für deren gerechte Beilegung.
Die sozialen Implikationen der Professed Intentions werden wiederum durch Norms
festgelegt, so daß deren genaue Bedeutung im Ermessen des Modellierers liegt. Um
aber bereits mit den Begriffen des Metamodells eine expressive Systembeschreibung zu
ermöglichen, wird schon eine Einteilung in sieben generische Klassen von Professed
Intentions umrissen. Diese spiegeln die grundlegenden Typen von Aussagen, die
Agenten kommunizieren können, wider, wie sie auch bei der Definition von ACLs
relevant sind. In Anlehnung an die von Singh86 identifizierten Sprechaktklassen wird hier
daher zwischen Assertion, Directive, Commitment, Permission, Interdiction, Declaration und Expression unterschieden. Diese werden in eigenen Unterabschnitten kurz
vorgestellt werden.
Bei der konzeptionellen Betrachtung des Systems lassen sich die Begriffe zunächst
intuitiv verwenden. Bei der Implementierung ist dann wie in Verbindung mit Norms
dargelegt zu entscheiden, ob diese abstrakt bleiben oder zur Laufzeit abfragbar umgesetzt werden sollen.
Existiert etwa eine Permission, die einem Agenten Zugriff auf eine Datenbank gewährt,
ist damit öffentlich auf der abstrakten Ebene klargestellt, daß der Versuch des Agenten,
einen Lesezugriff auf die Datenbank in seine Schedule einzufügen, zulässig ist.
Vor dem Hintergrund der Zielsetzung eines Brückenschlags zwischen KI und Softwaretechnik ist die Frage nach der exakten Definition einer sozialen Semantik und der
Abstützung auf das konkrete System von wesentlicher Bedeutung. Dies wird durch das
Metamodell zum einen unter Verwendung des Behavioral Model, zum anderen durch
die Verknüpfung der Professed Intentions mit Entities geleistet.
86
Siehe Abschnitt 2.3.4, S. 32.
– 152 –
Ein Agent trägt sich mit einem Physical Effect in Form eines Operative Effector in
einem Verzeichnis (Entity) als ein Broker ein. Dies wird durch eine Norm als Commitment an die Role Broker interpretiert. Dadurch verspricht der Agent also bestimmte
Behaviors, die etwa definieren, wie und in welchem Zeitrahmen er auf Vermittlungsgesuche reagieren wird. Andere Agenten können nun mit ihren Sensors den
Verzeichniseintrag wahrnehmen. Durch den Filter der sozialen Konvention gesehen
ergibt sich daraus ein entsprechendes Cognitive Statement, das das Commitment des
Agenten beinhaltet und somit anderen Agenten erlaubt, Erwartungen an sein Verhalten
zu formulieren.
Die abstrakte Bedeutung der Professed Intention wird erschöpfend allein mit den
Elementen der Conceptual Layer beschrieben. Auf diese Weise kann bei der Konzipierung mit aussagekräftigen abstrakten Konstrukten gearbeitet werden. Durch die
nachfolgende Abstützung auf die Elemente der Physical Layer wird jedoch die Gefahr
vermieden, Aussagen über das System machen zu wollen, die zur Laufzeit überhaupt
nicht möglich sind.
Die Idee einer Willenserklärung setzt zwingend voraus, daß die Erklärung von einer
Person abgegeben wird. In diesem Sinne ist auch jede Professed Intention einem
Urheber zugeordnet. Dies bezieht sich zunächst offensichtlich auf den Agenten, der mit
Effectors und durch den Versand von Messages direkt die Professed Intention bedingt.
Jedoch erscheint es zweckmäßig, auch den (menschlichen) Benutzern implizite oder an
explizite Eingaben gebundene Professed Intentions zuschreiben zu können, in denen
sie den Agenten etwa Aufträge (Directives) geben oder sie zu bestimmten Handlungen
autorisieren (Permissions). In diesem Sinne können einem Agenten oder einer bestimmten Role auch, vergleichbar mit Inherent Statements, vom Modellierer schon bestimmte Professed Intentions implizit mit auf den Weg gegeben werden.
Element Summary
Professed Intention
Hierarchical Name
Conceptual.Profession
Definition
The socially agreed interpretation of an Agent’s actions
Examples
Commitment to a role, permission to perform an action
– 153 –
i.
Explicitly Professed Intention
Eine Explicitly Professed Intention ist eine Professed Intention, die durch eine
Nachricht explizit geäußert wird. Sie entspricht somit einem klassischen Sprechakt. Ihre
Interpretation hängt von einer Language ab. Dokumentiert wird sie durch die entsprechende Message.
Element Summary
Explicitly Professed Intention
Hierarchical Name
Conceptual.Profession.Explicit
Definition
A Professed Intention expressed and documented by a Message
Relationships
Depends of Language
Grounding
Message
Examples
Sending a message, emitting a speech act
ii.
Implicitly Professed Intention
Eine Implicitly Professed Intention ist eine Professed Intention, die aus dem Verhalten
des Agenten abgeleitet wird. Sie wird in der Regel durch eine einzelne Action definiert
sein, kann jedoch auch von einem vollständigen komplexen Behavior abhängen, dessen
Ausführung eine bestimmte Absicht nahelegt. Implicitly Professed Intentions werden
durch Norms bzw. speziell Rules definiert und durch beobachtbare Änderungen an
beliebigen Entities dokumentiert.
Element Summary
Implicitly Professed Intention
Hierarchical Name
Conceptual.Profession.Implicit
Definition
A Professed Intention associated with behavior, documented by an Entity
Relationships
Associated with Action, Entity
Grounding
Modified Entity
Examples
Manipulating an Entity, performing a Behavior
iii.
Assertion
Eine Assertion ist die Erklärung eines Agenten, daß er eine bestimmte Aussage für wahr
hält. Sie ist eine Art öffentliches Glaubensbekenntnis, in dem ein Agent einen Teil
seines Outlook publiziert. Gegenstand einer Assertion ist somit ein Statement. Der
Agent erklärt durch eine Assertion, daß er dieses Statement für wahr hält, wodurch es
sich seiner Position zuschreiben läßt. Kann der Position gleichzeitig ein gegenteiliges
Statement zugeschrieben werden, lügt der Agent.
– 154 –
Assertions sind die wohl häufigste Klasse von Professed Intentions. Ein Großteil des
Informationsaustausches zwischen Agenten basiert auf ihnen.
Die Funktion eines Verzeichnisagenten hängt davon ab, daß andere Agenten seinen
Versicherungen bezüglich der Eigenschaften anderer Agenten vertrauen können.
Vertrauen ist ein wichtiger Aspekt von Assertions. Ein Agent verbürgt mit den Assertions, die er abgibt, seine Autorität und Vertrauenswürdigkeit. Wie Assertions vom
Empfänger in Cognitive Statements umgesetzt werden, hängt von seiner Einschätzung
der Vertrauenswürdigkeit des Urhebers ab.
Element Summary
Assertion
Hierarchical Name
Conceptual.Profession.Assertion
Definition
A Professed Intention asserting a Statement
Examples
The stock price is $4.30. This statement is true. We come in peace.
iv.
Directive
Eine Directive weist einen Agenten an, ein bestimmtes Behavior, also eine Folge von
Actions, auszuführen. Diese kann von anderen Agenten oder im Besonderen auch von
Seiten eines Benutzers ausgesprochen werden. Die zentrale Frage ist hier, ob der
Empfänger der Directive zur Kooperation bereit ist bzw. dies vorab etwa durch ein
Behavior veröffentlicht hat, oder ob der Urheber notfalls die nötige Macht besitzt, um
die Durchsetzung seiner Directive zu erzwingen.
Element Summary
Directive
Hierarchical Name
Conceptual.Profession.Directive
Definition
A Professed Intention asking another Agent for an Action
Examples
Return the requested information! Perform an action!
v.
Commitment
Ein Commitment ist eine Garantie eines Agenten bezüglich seines zukünftigen Verhaltens. Es ist etwa ein Versprechen, mit dem sich ein Agent an eine bestimmte Role
bindet, wodurch er anderen Agenten mitteilt, daß er den enthaltenen Verhaltensmustern
zu entsprechen gedenkt. Gerade Commitments sind häufig im Entwurf des Systems
impliziert. Sie bieten aber gleichzeitig den Mechanismus, der es Agenten erlaubt, zur
Laufzeit dynamisch Roles zu übernehmen.
– 155 –
Commitments sind nicht auf Roles beschränkt, sondern können sich in Abhängigkeit
von der gewünschten Granularität auch direkt auf Behaviors oder einzelne Actions
beziehen. Dabei kann ein Agent sich sowohl an generische Spezifikationen binden, etwa
die Beschreibung der notwendigen Vorbedingungen für eine bestimmte Action, als auch
an eine konkrete Instanz eines Behaviors oder einer Action, die sich somit in seiner
Schedule niederschlägt.
Die Unterscheidung zwischen generischen und konkreten Behaviors ist besonders von
Interesse, wenn Commitments zurückgenommen bzw. gebrochen werden sollen. Die
Zuwiderhandlung gegen ein versprochenes generisches Behavior unterläuft die
Spezifikation des Systems und stellt in den meisten Fällen unerwünschtes Verhalten dar.
Die Verletzung eines konkreten Versprechens kann dagegen durchaus als konstruktives
Element im Entwurf des Systems vorgesehen werden (vgl. etwa [Hogg/Jennings 1997])
und kann durch eine entsprechende Rule erfaßt werden. Ziel der Verhaltensspezifikation ist es, die ‚Ausnahmen’ auf eine möglichst konkrete Ebene zu verlagern.
Element Summary
Commitment
Hierarchical Name
Conceptual.Profession.Committment
Definition
A Professed Intention promising a Statement
Examples
Commitment to a role, promise to deliver a service
vi.
Permission
Eine Permission erlaubt einem Agenten eine Handlung – also die Ausführung bestimmter Actions im Environment. Inwieweit der die Erklärung abgebende Agent berechtigt
ist, dies zu erlauben, ist wieder eine Frage des Systems und seiner Norms. Eine
Permission kann auf allen Ebenen des Systems umgesetzt sein, sei es durch Zugriffsrechte auf der Ebene von Entities oder soziale Kontrolle.
Element Summary
Permission
Hierarchical Name
Conceptual.Profession.Permission
Definition
A Professed Intention allowing an Action
Examples
You have access to all files on the server. You may bid on this auction.
vii.
Interdiction
Eine Interdiction ist ein Verbot. Sie untersagt einem Agenten die Ausführung bestimmter Actions. Inwieweit ein Verbot bindend wirkt, hängt von der Autorität ihres Urhebers
und den Möglichkeiten des Systems ab. Implementiert der Entwickler eine Interdiction
– 156 –
auf der Physical Layer, so ist sie zwangsläufig unumstößlich. Kann ein Agent aufgrund
besonderer Rechte das Verbot durch Änderungen auf der Physical Layer durchsetzen,
ist es in der Regel ebenfalls bindend. Wird es dagegen durch Rules auf der Concepetual
Layer gestützt, kann nur seine Übertretung geahndet werden. Wird es überhaupt nicht
umgesetzt, ist es nur symbolisch.
Element Summary
Interdiction
Hierarchical Name
Conceptual.Profession.Interdiction
Definition
A Professed Intention prohibiting an Action
Examples
Access to database revoked. You may not send me any messages.
viii.
Declaration
Eine Declaration ist ein Sprechakt im reinsten Sinne. Technisch gesehen ist sie einfach
ein neues Statement, das mit seiner Abgabe wahr wird, sofern ihr Urheber über die
notwendige Autorität verfügt. Da Declarations sich oft etwa in Verzeichniseinträgen
niederschlagen, läßt sich diese Frage oft auf die Frage reduzieren, ob der Agent die
notwendigen Permissions besitzt, um den Eintrag an der relevanten Stelle vornehmen
zu können.
Element Summary
Declaration
Hierarchical Name
Conceptual.Profession.Declaration
Definition
A Professed Intention stating a declaration
Examples
I christen you to the name…; Game over!
ix.
Expressions
Eine Expression dient dem Ausdruck von Bewertungen und Emotionen. Im Grunde
genommen ist sie einfach ein Statement mit unklarem Wahrheitsgehalt. Die erwartete
Reaktion seitens anderer Agenten ist zumeist nicht klar definierbar. In aktuellen
Systemen mit ihrer schwach ausgeprägten verbalen und sozialen Intelligenz ist diese
Klasse noch weitestgehend verzichtbar.
Element Summary
Expression
Hierarchical Name
Conceptual.Profession.Expression
Definition
A Professed Intention expressing an emotion or an assessment
Examples
I wish it were night! What a terrible color!
– 157 –
II.
Modellierung
Das Social Model ist für die Beschreibung des Systemverhaltens von zentraler Bedeutung. Viele innovative Konzepte zur Koordination komplexer Agentensysteme, etwa zur
verteilten Optimierung des Gesamtnutzens (vgl. [Hogg/Jennings 1997,4]) oder zur
Verhinderung von parasitärem Verhalten in kooperativen Systemen (vgl. [Kalenka
2001]), werden auf dieser Ebene formuliert.
expressed in
Explicit
(1,n)
d,t
(0,n)
Implicit
(1,n)
Language
Norm
d,t
Rule
Assertion
Axiom
Directive
(0,n)
(0,n)
sets
interprets
Commitment
Structure
Structure
(0,n)
(0,n)
(0,n)
(0,n)
Role
(0,n)
(0,n)
(0,n)
defines
(0,n)
Culture
defines
(0,n)
(0,n)
Professed
Intention
d,t
Permission
(0,n)
(1,n)
(0,n)
associated with
Interdiction
guarantees
Declaration
(0,n)
Behavior
(0,n)
consists of
(0,n)
Action
(0,n)
implied by
Expression
Abbildung 3.19 Elementbeziehungen innerhalb des Social Model
Die Beschreibung der Roles und eingeschränkt auch der Rules kann auf die aus dem
Behavioral Model bekannten Mechanismen zurückgreifen. Zur Modellierung komplexerer sozialer Zusammenhänge existieren allerdings nur wenige, schon gar nicht
grafische Formalismen, da in ihren Ursprungsdisziplinen, den Rechtswissenschaften
und der Soziologie, der Schwerpunkt auf rein verbalen Beschreibungen liegt. Die
Umsetzung entsprechender Konzepte in logisch-mathematische Modelle ist zwar in
verschiedenen Fällen bereits erfolgreich geleistet worden, jedoch nicht unbedingt
– 158 –
trivial.87 In diesem Bereich liegt allerdings auch ein großer Teil des Potentials der
Agententechnologie.
3.3.2.4 Application Model
Das Application Model88 ist der letzte Baustein des Metamodells. Es bietet eine
gesamtheitliche (top down) Sicht auf das System und ordnet die Teilmodelle der
Conceptual Layer in ein Gesamtkonzept ein. Auf dieser Ebene werden nicht nur die
Gemeinschaften und Agenten des Systems definiert, sondern auch seine Ziele aus
Benutzersicht beschrieben. Bei der Modellierung konkreter Anwendungen werden seine
Elemente in vielen Fällen der Ausgangspunkt der Betrachtung sein.
I.
Elemente
A.
Agent
Ein Agent auf der konzeptuellen Ebene beschreibt die abstrakte Spezifikation eines
Agent auf der Physical Layer. Der Begriff selbst ist, abgesehen von der abstrakten
Identität des Agenten und einer etwaigen Beschreibung, vollkommen inhaltsleer. Der
Agent wird völlig durch seine Beziehungen beschrieben. Relevant ist er vor allem als
Besitzer einer Agent Personality, Träger bestimmter Roles, Urheber von Professed
Intention, Mitglied einer Gemeinschaft oder Vertreter eines Benutzers. Agent wird hier
als rein ideeller Begriff verwendet, so daß eine strikte Trennung zwischen Typen und
Instanzen in der Regel nicht vordringlich erscheint. Der Begriff Agent umfaßt also
sowohl die Class, eine ganze Klasse von Agenten, die auf der Physical Layer durch
einen Type umgesetzt wird, als auch das Individual, einen konkreten Agent. Die
jeweilige Verwendung sollte aus der Bezeichnung und dem jeweiligen Kontext deutlich
werden.
87
Der Erfolg der Suchmaschine Google beruht etwa darauf, daß durch ihren Algorithmus erfolgreich das
Konzept der Weiterempfehlung bzw. der Mundpropaganda mathematisch formalisiert und operationalisiert wird [Page et al. 1998].
88
Die Elemente des Application Model werden in Abbildung 3.20, S. 165, zusammengefaßt.
– 159 –
Element Summary
Agent
Hierarchical Name
Conceptual.Agent
Definition
Conceptual representation of an agent instance
Relationships
Member of Community
Owned by User
Fulfills Purpose
Carries Agent Personality
Implemented by Agent Core
Commits to Roles and Behaviors
Utters Professed Intentions
Grounding
Physical.Agent or Type
Examples
A marketplace member, a chat agent, …
B.
Community
Eine Community formalisiert den bereits verwendeten Gemeinschaftsbegriff. Sie ist
zum einen eine Menge von Agents, zum anderen die Instanz einer Culture.
Die Community ist ein wichtiges ordnungsstiftendes Element. Da sie konkreter Träger
der sozialen Regeln und Konventionen einer Culture ist, können Agenten nur durch
Mitgliedschaft in einer Community kommunizieren und koordiniert interagieren.
Weiterhin definieren die Hierarchie und anderen Beziehungen zwischen Communities
die Struktur und das generelle Verhalten des Systems.
Das bereits angeführte Fußballspiel ist als Community von 22 Spielern und den
Schiedsrichtern zu sehen, innerhalb derer zwei untergeordnete Communities von je 11
Spielern gegenläufige Ziele verfolgen.
Dabei sind Agents und Communities die strukturellen Bausteine des Gesamtsystems.
Wo dies angebracht erscheint, kann eine Community in ihrer Eigenschaft als Menge
von Agents auch agententypische Beziehungen eingehen. Zum einen ist es denkbar, daß
eine Community nicht nur in einer anderen Community als Teilmenge enthalten ist,
sondern dort selbst explizit als Mitglied auftritt. Zum anderen ist es denkbar, daß eine
Community selbst Professed Intentions abgibt. Diese können entweder so definiert
sein, daß sie für a l l e Agents der Community bindend sind, oder lediglich garantieren,
daß mindestens e i n Agent sie honorieren wird. Eine solche Verwendung des Begriffs
lehnt sich an das Prinzip der juristischen Person an. Ganz im Sinne dieser Analogie
– 160 –
kann dies praktisch so umgesetzt werden, daß stellvertretend für die Community ein
designierter Agent handelt.
Ein verteilter Verzeichnisdienst, etwa das System der DNS Root Server des Internet,
garantiert, daß jedes Mitglied der Gruppe unkompromittierte Informationen liefert. Er
garantiert weiter, daß bei einer undifferenzierten Anfrage an die gesamte Gruppe
(Broadcast) mindestens bzw. genau ein Server antworten wird.
Daneben kann eine Community auch eine wichtige Rolle auf der Ebene der Kommunikation spielen. Die Mitglieder einer Community müssen sich nicht zwangsläufig im
selben Environment befinden, so daß der Begriff es erlaubt, den kommunikativen
Kontext eines Agenten auch über die Grenzen seines Environment hinaus zu beschreiben. In diesem Sinne ergibt sich eine sehr praxisnahe Definition der Community als die
Menge der als ihre Mitglieder adressierbaren Agenten.
Eine von Agenten abonnierte Mailingliste ist eine einfache Form von Community.
Auf der Physical Layer läßt sich eine Community auf verschiedene Arten abbilden.
Einerseits sind Communities denkbar, die mit einem Environment deckungsgleich sind,
so daß Mitgliedschaft in ihnen durch ‚physikalische’ Anwesenheit begründet wird.
Ähnlich implizit sind Communities definiert, bei denen auf Mitgliedschaft nur aus
einem charakteristischen Attribut der einzelnen Agenten geschlossen werden kann.
Dies ist der Fall, wenn alle Agenten eines Typs oder einer Klasse, etwa die NPC bei
Quake, oder am selben ‚virtuellen Ort’, etwa einem Chatraum, eine Community bilden.
Eine Community kann aber auch explizit durch ein zentrales Verzeichnis in Form einer
Entity definiert werden, was die Möglichkeiten zum Ausschluß und zur selektiven
Aufnahme von Agenten verbessert. Schließlich kann sie auch völlig dezentral als
Netzwerk von Bekanntschaften organisiert sein, so daß jeder Agent nur jeweils einige
andere Mitglieder der Community kennt, was das Risiko der Fragmentierung der
Community birgt.
– 161 –
Element Summary
Community
Hierarchical Name
Conceptual.Community
Definition
A set of associated Agents
Relationships
Contains Agent
Governed by Culture
Grounding
Entity
Examples
A workgroup, a soccer team, a marketplace, a P2P network
C.
User
Der Begriff des User ermöglicht es, den oder die Besitzer eines Agenten zu beschreiben. Es muß nicht zwangsläufig für jeden Agent ein User modelliert werden, da der
Aspekt des stellvertretenden Handelns nicht bei jedem Agenten gleichermaßen wichtig
ist, auch wenn die Ausführung eines künstlichen Agenten, der sich nicht selbst schaffen
und aktivieren kann, immer zumindest mittelbar auf einen Menschen zurückzuführen
ist. Diese Bindung ist von elementarer Wichtigkeit, da die Agenten aus dieser Bindung
die Legitimation ihres Handelns beziehen.
Der Vertretungsaspekt ist gerade in Softwaresystemen insoweit von Bedeutung, als daß
sich die operativen Befugnisse des Agenten direkt von der Autorität des Benutzers
ableiten. Diese Übertragung von Rechten kann durch die oben erwähnte Verwendung
von Professed Intentions des Benutzers expliziert werden.
Dabei ist zu unterscheiden, in welcher Form der Benutzer im System selbst repräsentiert
ist. Er kann völlig abstrakt sein und sich nur auf der Ebene der Entities in Professed
Intentions manifestieren. Dies kann entweder implizit im Rahmen der Implementierung, oder explizit und dynamisch in Form eines Autonomous Process umgesetzt
werden. Letzteres dürfte in der überwiegenden Anzahl der Systeme der Fall sein, in
denen der Benutzer zur Laufzeit mit dem Agenten interagiert, sei es über eine grafische
Oberfläche, Konfigurationsdateien oder textuelle Befehle. Er kann allerdings auch
selbst durch einen Avatar in Form eines Agent, dessen Agent Core er darstellt, im
System vertreten sein.
Für die Entwicklung eines Systems ist das Konzept des Users von großer Bedeutung, da
in der Regel die Ziele eines Agenten in Verbindung mit diesem definiert werden. Seine
explizite Modellierung unterstützt eine an den Bedürfnissen der Benutzer orientierte
Herangehensweise, da der Entwickler dadurch immer im Blick behalten muß, auf
wessen Anforderungen ein bestimmter Lösungsansatz eigentlich abzielt.
– 162 –
Gerade bei persönlichen Agenten sind die Erfassung der Wünsche und Ziele und die
Kommunikation mit dem Benutzers von zentraler Bedeutung. Psychologische Aspekte
sind hier extrem wichtig – damit ein Agent akzeptiert wird, muß er dem Benutzer das
Gefühl der Kontrolle über das, was der Agent in seinem Namen tut, geben. Somit
müssen neue Informationen und besonders Zielvorgaben von Seiten des Benutzers mit
besonderer Aufmerksamkeit beachtet werden.
Die Interaktion des Benutzers mit dem Agenten läßt sich konkret durch Professed
Intentions, besonders Directives, Assertions und Permissions, modellieren, die der
Agent durch geeignete Sensors wahrnimmt.
Element Summary
User
Hierarchical Name
Conceptual.User
Definition
Representation of an Agent’s user
Relationships
Owns Agent
Grounding
Autonomous Process, Agent or Entity
Examples
The user of a filtering tool, an enterprise sending a trading agent
D.
Purpose
Der Purpose eines Agenten ist die Menge der Ziele, die der Modellierer bzw. der User
einem Agent vorgibt. Im übertragenen Sinne ist es auch möglich, daß eine Community
oder eine Role einen Purpose haben.
Der Purpose besteht aus einem System von Missions, die die strategischen und
operativen Ziele eines Agenten abbilden. Sie sollen die unterliegende Motivation des
Agenten beschreiben. Alle Missions leiten sich von einer externen Autorität ab. Sie
werden entweder durch den Modellierer oder den Benutzer vorgeschrieben – ein Agent
kann sich selbst keine originär neue Mission geben.
Die Missions können wechselseitige Abhängigkeiten besitzen, etwa, daß eine Mission
eine Vorbedingung einer anderen Mission darstellt oder zwei Missions nur gemeinsam
verfolgt werden können. Weiterhin können sie priorisiert und in einer Hierarchie
angeordnet werden, was bei Zielkonflikten oder Widersprüchen unabdingbar ist. Bei der
Modellierung eines Systems bietet sich dies oft als erster Entwurfsschritt an, wie dies
etwa die Goal Case-Technik [Kendall et al. 1998a] vorsieht.
– 163 –
Die abstrakten Missions eines Agenten sind zumeist durch seinem Entwurf festgelegt.
Dabei kann sich allerdings die Auswahl der aktiv verfolgten Ziele bei Agenten mit
komplexeren Zielhierarchien dynamisch ändern. Weiterhin wird es in der Regel
möglich sein, daß der Benutzer Instanzen abstrakter Missions erzeugt, indem er dem
Agenten einen konkreten Auftrag gibt.
Ein mobiler Einkaufsagent für elektronische Handelsplattformen verfolgt die abstrakte
Mission, für seinen User auf den Handelsplattformen die gewünschten Waren zum
minimalen Preis zu erstehen. Dabei existieren zwei inhärente Nebenziele, die unbedingt
erfüllt sein müssen: der Agent will die eigene Integrität und Ausführung sicherstellen
und seinen Benutzer getreulich vertreten, also insbesondere sein Vermögen vor
Mißbrauch schützen.
Beauftragt der User nun diesen Agenten, eine bestimmte Ware zu einem gegebenen
Höchstpreis zu beschaffen, erstellt er dadurch eine konkrete Instanz des abstrakten
Ziels.
Der Purpose macht keine weitergehenden Aussagen darüber, wie die formulierten Ziele
im Einzelnen erreicht werden sollen, so daß er die Autonomie des Agenten nur ansatzweise beschneidet. Er erlaubt also in der Regel keine streng deterministische Vorausberechnung des Agentenverhaltens, hilft aber dabei, die rationalen Erwartungen an das
Verhalten des Agenten sinnvoll einzuschränken.
Element Summary
Purpose
Hierarchical Name
Conceptual.Purpose
Definition
Defines objectives from an observer’s perspective
Relationships
Assigned to Agent, Role, Community
Examples
Produce goods; earn money; win the game
E.
Mission
Eine Mission ist ein einzelnes Element eines Purpose. Viele Missions dürften impliziter
Natur sein, sich also allein in der Implementierung des Agenten niederschlagen. In
dieser Form spielen Missions nur als Interpretationswerkzeug beim Entwurf und der
Wartung des Systems eine Rolle und sind zur Laufzeit unsichtbar und statisch.
– 164 –
Es ist allerdings auch möglich, Missions explizit im System umzusetzen. Für dynamisch
hinzugefügte Missions wie die erwähnten Zielinstanzen, die sich aus einem abstrakten
Ziel ableiten, ist dies sogar notwendig.
Mission werden aus der Sicht eines externen Beobachters in den ‚objektiven’ Begriffen
der Physical Layer bzw. auch direkt darauf abgestützten abstrakten Konzepten formuliert. Daher müssen sie, um für Agenten operationalisierbar zu sein, in deren subjektive
Begriffswelt übersetzt werden. Dort werden sie durch entsprechende Aims ausgedrückt,
die somit die Brücke zwischen Mental Model und Application Model, also im Besonderen zum User und seinen Wünschen, herstellen.
Element Summary
Mission
Hierarchical Name
Conceptual.Mission
Definition
An element of an Agent’s Purpose
Relationships
Contained by Purpose
Translated into Aim
Grounding
Entity Model
Examples
PPS: complete production schedule. Quake: Eliminate all other agents.
II.
Modellierung
Das Application Model spiegelt in gewisser Weise das Konzept des Bebauungsplans im
Environment Model wider, wenn auch der Betrachtungsgegenstand ein anderer ist. In
ähnlicher Weise lassen sich daher zur Modellierung der abstrakten Systemstruktur
Deployment- und andere Strukturdiagramme verwenden.
Die Erfassung der Benutzer und Ziele läßt sich mit etablierten High-LevelModellierungsmethoden wie etwa Use Cases oder den von Kendall vorgeschlagenen
Zielhierarchien [Kendall et al. 1998a] bewältigen.
Eine agentenbasierter elektronischer Marktplatz erlaubt es Unternehmen, eigene
Agenten auf den Marktplatz zu entsenden. Durch die Migration auf den Marktplatz
macht ein Agent (Enterprise Auction Agent) ein implizites Commitment, sich an die
Regeln des Marktplatzes zu halten, die in Form der Role Marketplace Trader definiert
sind. Diese Rolle wird hier nur in Ausschnitten dargestellt.
– 165 –
User
Purpose
(0,n)
(0,n)
consists of
(1,1)
(0,n)
owns
(1,1)
assigns
Mission
(0,1)
(0,n)
Hierarchy
(1,n)
(0,n)
Agent
(0,n)
d,p
(0,n)
Relations
Structure
(0,n)
member of
(0,n)
Community
(0,n)
Abbildung 3.20 Elementbeziehungen innerhalb des Application Model
Die Rolle bringt eine Permission von Seiten der Marktplatzleitung mit sich, die
Infrastruktur des Marktes, hier konkret die Verzeichnisdienste, nutzen zu dürfen.
Gleichzeitig impliziert sie auch eine Erlaubnis von Seiten des entsendenden Unternehmens, Gebote bis zu einem durch ein Inherent Statement mitgegebenes Limit abgeben
und Auktionen starten zu dürfen.
Als beispielhaftes Behavior wird definiert, daß Agenten auf beliebige Anfragen binnen
5 Zeiteinheiten antworten müssen. Die Beschreibung des Behaviors selbst unterscheidet
sich im Prinzip nicht von dem Beispiel aus dem Behavioral Model. Jedoch kommt hier
noch eine Interpretation der Handlungen durch soziale Konventionen hinzu, die sich
wiederum in Professed Intentions niederschlägt. Die Anfrage wird als Directive
interpretiert, die Antwort als Assertion. Letztere drückt aus, daß Agenten nicht lügen
dürfen, da sie sonst nicht die Rolle erfüllen und ihr implizit beim Betreten des Marktplatzes gemachtes Commitment brechen, was eine angemessene Sanktion nahelegt.
– 166 –
Marketplace
Enterprise Auction Agent
P Incoming Migration
Professed
acceptance
Intentionof Role
C Implied
Marketplace Trader
Marketplace Trader
Professed Intention
to place bids
P Permission
Represented Enterprise
P Place Bids
Professed Intention
to make offers
P Permission
Represented Enterprise
P Start Auction
I transactions ‚limit’
Professed Intention
to use directories
P Permission
Marketplace Administrator
P Query Directory
M Responsiveness
C message
query
C from
‚sender’
C ask*
‚item?’
Professed
Queried
Intention
Information
D Provide
‚Sender’ Agent
P Reply Message
0 5
C to
‚sender’
C reply*
‚item.’
P Reply Message
Professed
TruthIntention
A Assert
C reply
Abbildung 3.21
0 5
‚item.’
Definition einer Role auf einem elektronischen Marktplatz
Die Notation greift das für das Beispiel am Ende des Behavioral Model definierte
Format wieder auf. Als neue Elemente kommen die Community (drei blaßrote Dreiekke), der User (:)) sowie die Role (blaue Filmrolle) und die Professed Intention (drei
Rechtecke) hinzu. Professed Intention sind hier Assertions (A), Commitments (C),
Directives (D) und Permissions (P). Es muß jeweils ersichtlich werden, w e r die
Professed Intention äußert und w a s sie aussagt.
– 167 –
3.3.2.5 Zusammenfassung der Conceptual Layer
Abschließend soll wiederum die gesamte Ebene im Zusammenhang dargestellt werden.
Die Conceptual Layer ist weniger stark untergliedert als die Physical Layer, da sich,
abgesehen von der bewußten Trennung zwischen Mental Model und Social Model, alle
Teilmodelle in mehreren Punkten berühren.
Statement
(1,1)
Agent
Personality
(1,1)
(0,n)
(1,1)
(0,n)
Agent
(0,n)
member of
(0,n)
Relations
has
(0,n)
has
Aim
(0,1)
Community
(0,n)
(0,n)
(0,n)
(0,n)
has
consists of
(1,1)
implements
(0,n)
(1,n)
(1,1)
Structure
(1,1)
owns
adopts
Structure
(0,n)
(1,1)
(1,1)
Outlook
(0,n)
Premeditation
(1,1)
(0,n)
User
(1,1)
(0,n)
commits to
(0,n)
Culture
(0,n)
translates
(0,n)
(0,n)
(0,n)
defines
(0,n)
fufills
defines
(0,n)
publishes
publishes
plans
sets
defines
(0,n)
Norm
interprets
(1,1)
(1,1)
Position
(0,n)
Schedule
(1,n)
Action
Purpose
(0,1)
(0,1)
(0,n)
(0,n)
(0,n)
(0,n)
references
references
comprises
d,t
fulfills
consists of
Axiom
(0,1)
(0,1)
(0,n)
(0,n)
(1,n)
(0,n)
Mission
Structure
Composition
(0,n)
(0,n)
(0,n)
Behavior
(0,n)
(0,n)
(0,n)
(1,1)
guarantees
Rule
(0,n)
Professed
Intention
Role
(0,n)
Language
(0,n)
(0,n)
Interweaving
Directive
Commitment
Permission
d,t
d,t
Assertion
Interdiction
Declaration
Expression
Implicit
Explicit
Abbildung 3.22 Übersicht über die wichtigsten Elemente der Conceptual Layer
Im obigen Diagramm wurden wieder aus Gründen der Übersichtlichkeit einige wenige
Beziehungen und eine große Anzahl an Untertypen unterdrückt.
– 168 –
3.3.3 Zusammenfassung des Gesamtmodells
Damit ist die Beschreibung aller Modellelemente abgeschlossen. Die einzelnen
Teilmodelle sind bis ins Detail und durch zum Teil umfangreichere Beispiele illustriert
worden, wobei jeweils auch auf Beziehungen zwischen Teilmodellen und über Ebenengrenzen hinweg eingegangen wurde. Auf der Ebene des Gesamtmodells soll hier
dagegen auf die Angabe eines konkreten Beispiels verzichtet werden, da die Ausarbeitung eines für eine Überprüfung des Metamodells ausreichend detaillierten Anwendungsbeispiels vom Aufwand und Umfang her an dieser Stelle nicht möglich erscheint.
Zudem wäre der zusätzliche Erkenntnisgewinn durch ein isoliertes Beispiel insoweit
begrenzt, als daß kaum eine Anwendung zu ihrer Beschreibung das Metamodell in
seiner vollen Breite benötigen dürfte, sondern in der Regel den Schwerpunkt der
Betrachtung wieder in bestimmte Teilmodelle legen wird.
Conceptual Layer
Aim
Mission
Behavior
Statement
User
Action
Cognitive
Statement
Agent
Personality
Percept
Purpose
Agent
Community
Agent Core
Role
Norm
Culture
Language
Professed
Intention
Explicit
Agent
Message
Sensor
Effector
Agent Shell
Entity
Item
Process
Environment
Service
Facility
Physical Layer
Abbildung 3.23 Zentrale Modellbegriffe und Relationen
– 169 –
Daher sollen lediglich in einem semantisch reduzierten Diagramm die bedeutendsten
Modellbegriffe und die wichtigsten Abstützungsrelationen von der konzeptuellen auf
die konkrete Ebene nochmals überblicksartig dargestellt werden.
Zu den wichtigsten Abstützungsrelationen zählt die Fundierung des Behavioral Model
im konkreten Interaktionsmodell des Agenten, also der Actions in Anwendungen von
Effectors, und der konditionierenden Cognitive Statements in den Wahrnehmungen der
Sensors. Über die Beziehung zwischen Position und Outlook stellt das Mental Model
auf diese Weise nicht nur eine formalisierte Verbindung zum Social Model her, sondern
verankert seine Begriffswelt gleichzeitig in der (technischen, virtuellen) Realität.
Zum anderen stützen sich auch die wichtigen sozialen Konventionen auf die konkrete
Ebene ab – Professed Intentions entsprechen Messages oder von Operative Effectors
vorgenommenen Änderungen an beliebigen Entities und können somit in beiden Fällen
an Attributen von Entities festgemacht werden. Communities lassen sich in der Regel
ebenfalls zu Entities in Bezug setzen: Entweder wird die Community direkt durch eine
spezielle Entity, etwa ein Verzeichnis, abgebildet, oder sie wird indirekt durch Beziehungen zwischen Agenten oder eine charakteristische Eigenschaft der Agent Shell, also
wiederum Attribute von Entities, definiert.
Umgekehrt liefert die konzeptuelle Ebene in vielen Fällen erst die nötige Semantik, um
die Interaktionen auf der Physical Layer überhaupt interpretieren zu können. Die
Bedeutung von Messages hängt etwa im Allgemeinen von der verwendeten Language
aus dem Social Model ab. Dies gilt natürlich in herausragendem Maße für die Beziehungen zwischen dem konkreten und dem abstrakten Agenten, also im Kern zwischen
dem Agent Core und seiner Spezifikation in der Agent Personality, war doch der
Brückenschlag zwischen der abstrakten Perspektive der KI und der technischen
Herangehensweise der Softwareentwicklung ein zentrales Anliegen des Modells.
– 170 –
4
Studie zur operativen Umsetzung des Metamodells
Bei der Beschreibung der Entwurfsprinzipien des Metamodells wurden als die zentralen
Aussagen der Agentenorientierung die Kapselung von Verhalten und eine interaktionsorientierte Systemsicht herausgestellt. Im Rahmen des Metamodells wurde dementsprechend konkret mit Entitäten, Effektoren und Sensoren und abstrakt mit Verhaltensmustern, Rollen und der Publikation relevanten internen Verhaltens argumentiert. Der
Schwerpunkt der Betrachtung lag auf der Definition eines Strukturmodells der einzelnen
Begriffe, wobei aber zwangsläufig auch Prozesse und Austauschbeziehungen zwischen
den Elementen erörtert wurden. In Form der Ereignisklassen wurden bereits relevante
Zustandsübergänge herausgestellt, und in Verbindung mit dem Agentenlebenszyklus
wurde ein vollständiges Zustandsmodell aufgestellt. Die Dynamik des Gesamtsystems
wurde somit zwar implizit beschrieben, aber noch nicht einheitlich formalisiert dargestellt.
Es liegt in der Natur statischer Strukturen, daß sie einer eingängigen, übersichtlichen
Modellierung zugänglicher sind als komplexe Abläufe. Mit einem statischen Medium,
wie Papier es ist, lassen sich Zustandsänderungen eines Elements nicht an Ort und Stelle
darstellen. Der Zustand wird entweder nur implizit erfaßt (Quellcode, Kollaborationsdiagramme) oder muß durch Duplizierung des betroffenen Elements an anderer Stelle
ausgedrückt werden (ereignisgesteuerte Prozeßketten (ePK), Aktivitäts-, Zustands- oder
Flußdiagramme). Die resultierenden Modelle sind in der Regel umfangreicher, aufwendiger und unübersichtlicher als das korrespondierende Strukturmodell.
Gerade für nebenläufige Systeme, wie es Multiagentensysteme gemeinhin sind, ist eine
exakte Spezifikation des erwarteten Verhaltens jedoch unabdingbar. Als wesentliche
Herausforderung auf dem Weg zu einer weiten Verbreitung agentenorientierter
Technologien wird daher gesehen, Methoden zu entwickeln, die es einer breiten
Entwicklergemeinde erlauben, entsprechende Spezifikationen in effizienter Weise zu
erstellen. Dabei erscheint die Unterstützung durch grafische Beschreibungen und
geeignete Werkzeuge wünschenswert.
Geschickt gewählte Abstraktionen können es ermöglichen, auch komplexe Systeme für
den menschlichen Betrachter verständlich und in ihrer Korrektheit bewertbar zu
machen. Dies setzt jedoch voraus, daß die zugrundeliegende Methode selbst korrekt ist
und die wegabstrahierte Komplexität nicht einfach unterschlägt, sondern sie in erschöp-
– 171 –
fender Weise behandelt. Um die diesbezügliche Eignung des Metamodells zu bestätigen, wurde daher angestrebt, seine Dynamik mit Hilfe einer formalen Spezifikationssprache zu erfassen.
4.1
Vorgehensweise
4.1.1 Verwendete Modellierungsmethode
4.1.1.1 Anforderung und Auswahl
An die Methode zur Beschreibung des Metamodells wurden drei Anforderungen
gestellt: Sie sollte abstrakt genug sein, um dem flexiblen und umfassenden Charakter
des Metamodells gerecht zu werden, und gleichzeitig konkret genug, um die Dynamik
des Modells detailliert und präzise zu beschreiben. Zweitens sollte sie die Verifikation
des Modells ermöglichen, sei es durch formale Überprüfung oder durch simulierte
Ausführung. Gleichzeitig sollte sie aber einfach und anschaulich genug sein, um in
Ergänzung zum Strukturmodell als lesbare Dokumentation des Metamodells dienen zu
können.
Die Suche nach einer geeigneten Methode führte bald auf die von Gurevich entwickelten
Evolving Algebras, einem alternativen Verfahren zur Beschreibung der Semantik von
Algorithmen. Ihre Entwicklung ist durch die Überlegung motiviert, daß entsprechende
Turing-Maschinen zwar prinzipiell jeden Algorithmus simulieren können, dabei aber
gerade bei komplexeren, speziell logischen, Problemen keine adäquate Darstellung
mehr zulassen, da für einen inhaltlichen Berechnungsschritt des Algorithmus unverhältnismäßig viele Schritte der Maschine notwendig sind [Gurevich 1988]. Als Vorteil
gegenüber konkurrierenden alternativen Automatenmodellen wird angesehen, daß
Evolving Algebras nicht auf einem festgelegten Abstraktionsniveau arbeiten, sondern an
das jeweilige Problem angepaßt werden können, um jeweils eine möglichst weitgehende
Strukturgleichheit zwischen Algorithmus und simulierendem Automaten erreichen zu
können [Gurevich 1995].
Die entsprechenden Automaten werden als Abstract State Machines (ASM) bezeichnet.
Sie wurden bereits zur Spezifikation einer vielfältigen Auswahl an Hard- und Software-
– 172 –
systemen verwendet, unter anderem auch in den hier relevanten Bereichen verteilte
Systeme und Programmiersprachen. Das Augenmerk fiel dabei besonders auf die Arbeit
von Stärk, Schmid und Börger, die auf der Basis von ASM ein Modell der Programmiersprache Java [Gosling et al. 1996] und der zugehörigen Laufzeitumgebung, der Java
Virtual Machine (JVM), aufgestellt haben [Stärk et al. 2001]. Die erfolgreiche Anwendung der Methode auf ein Problem diesen Umfanges versprach, daß sie nicht nur für
isolierte Algorithmen geeignet sein, sondern auch auf komplexe Systeme wie das
vorliegende Metamodell skalieren würde. Zudem erschien der Ansatz mit dem dritten
Teilziel kompatibel, da die Arbeit von Stärk et al. explizit „Programmierer und Implementierer“ [ibid., S. 1] anspricht und „Praktikern“ ein klares Verständnis der „dunklen
Ecken“ der Java-Spezifikation bieten möchte [ibid., S. 2], somit also ebenfalls Wert auf
eine klare und eingängige Darstellung legt. Da die Methode somit vielversprechende
Ansätze bot, wurde ihre Eignung für den vorliegenden Fall näher untersucht.
4.1.1.2 Abstract State Machines
Konzept nach Gurevich
Die grundlegende Idee hinter Evolving Algebras ist es, Algorithmen als Übergänge
zwischen Zuständen zu beschreiben, wobei jeder Zustand durch eine Struktur erster
Ordnung, also eine Menge mit Funktionen und Relationen, beschrieben wird. Der
eigentliche Algorithmus wird dabei durch Transitionsregeln beschrieben, die den neuen
Zustand in Form einer beschränkten Anzahl von Änderungen am aktuellen Zustand
definieren.
Aus technischen Gründen bildet Gurevich die Relationen der Strukturen durch Funktionen ab, so daß die einzelnen Zustände konkret durch statische Algebren beschrieben
werden können, worin der Name der Methode begründet ist. Die Signatur bleibt über
alle Algebren hinweg konstant; es können also keine Funktionen entfernt oder hinzugefügt werden.89 Dabei sind Funktionen der Arität null erlaubt, mit deren Hilfe Konstanten
89
Sofern nicht entsprechende Kunstgriffe, wie die Behandlung von neuen Funktionen als Daten durch
eine apply(function, parameter)-Funktion, angewendet werden.
– 173 –
und Variablen abgebildet werden. Weiterhin sind alle Funktionen als total definiert.
Originär partielle Funktionen geben an den entsprechenden Stellen das spezielle
Element undef zurück.
Sämtliche Funktionen arbeiten auf einem gemeinsamen Superuniverse (Übergeordnetes
Universum bzw. Allklasse). Dieses wird allerdings durch charakteristische Funktionen
in verschiedene Universes (Universum bzw. Allklasse) partitioniert, so daß die Algebren faktisch als mehrsortig zu verstehen sind. Das Superuniverse bleibt ebenfalls
konstant; es können also keine neuen Elemente erzeugt werden. Um dennoch Universes
dynamisch erweitern zu können, kann ein spezielles, möglicherweise unendliches
Universum namens Reserve eingeführt werden, dem durch Umdefinition der charakteristischen Funktionen Elemente entnommen und zurückgegeben werden können.
Die Transitionsregeln beschränken sich somit darauf, die Funktionen der Signatur an
bestimmten Stellen umzudefinieren. Sie werden als bedingte Aktualisierungen formuliert. Dabei werden alle Aktualisierungen einer Regel gleichzeitig angewendet. Daraus
leitet sich ab, daß Aktualisierungen konsistent und frei von Widersprüchen sein müssen;
andernfalls hält die Ausführung an. Die parallele Anwendung wurde trotz der damit
verbundenen Entscheidbarkeitsprobleme bevorzugt, da sie die Erweiterung auf das
Gebiet nebenläufiger Systeme zu erleichtern versprach. Die Bedingungen und Aktualisierungen enthalten im Prinzip ausschließlich geschlossene, variablenfreie Funktionsterme. Variablen sind lediglich in Verbindung mit einem All- oder Existenzquantor in
der Bedingung zulässig. Zuletzt wird in Verbindung mit den Transitionsregeln zwischen
statischen internen, dynamischen internen und dynamischen externen Funktionen
unterschieden. Externe Funktionen werden nicht durch den Automaten selbst aktualisiert, ändern sich jedoch im Stil eines Orakels trotzdem, so daß sie etwa das Einlesen
von Benutzereingaben nachbilden können (vgl. [Gurevich 1995] und [Gurevich 1996]).
Verwendung gemäß Börger
Börger führt in seiner Sichtweise auf ASM verschiedene Erweiterungen ein [Stärk et al.
2001, S. 18-25]. Dabei nimmt er zahlreiche rein syntaktische, einer bequemeren
Anwendbarkeit dienende Ergänzungen vor. Vor allem aber erlaubt er Variablen in
Termen, die dann im Rahmen von Regeln an Werte gebunden werden können. Außerdem können Regeln im Stil von Methoden parametrisiert von anderen Regeln aufgeru-
– 174 –
fen werden. Dies scheint das unausgesprochene Ziel zu verfolgen, in der Anwendung
den ASM-Pseudocode einer klassischen funktionalen Programmiersprache möglichst
ähnlich zu machen. Es verwässert allerdings auch das Konzept der Evolving Algebras,
da zum einen die klare Unterscheidung zwischen Regeln (hier quasi ‚Methoden mit
Seiteneffekten) und Funktionen (‚Methoden ohne Seiteneffekte’) zumindest syntaktisch,
im Grunde aber auch semantisch verwischt wird, und zum anderen die Funktionen der
Arität null vielfach durch das Variablenkonstrukt verdrängt werden, was unter anderem
dazu führt, daß Regeln selbst Zustände haben können.
Entscheidend im aktuellen Zusammenhang war aber vor allem die pragmatische Frage,
inwieweit sich aus der Modellierung der JVM eine Eignung von ASM für die Spezifikation des Metamodells ableiten ließe. Die Arbeit von Stärk, Schmid und Börger kann an
dieser Stelle nicht umfassend diskutiert und gewürdigt werden; jedoch sollen einige für
den konkreten Betrachtungszweck relevante Beobachtungen herausgestellt werden.
Zunächst wird Java nicht vollständig modelliert. Um die Darstellung kompakt zu
halten, werden nur der Bequemlichkeit dienende syntaktische Konstrukte (hier bezeichnet als „expressive sugar“) wie alternative Kontrollstrukturen (switch, for),
Variableninitialisierung, konditionale Operatoren (&& und ||), Zuweisungsoperatoren
(+=, *=, etc.) und Pre- und Postinkrementoperatoren90 (++ und --) nicht modelliert.
Bei der Umsetzung des Modells in ausführbare ASM auf Basis des Werkzeugs ASMGofer, das eine grafische Umgebung zur Validierung von Programmen bieten soll,
fehlen diese Elemente allerdings ebenfalls, so daß eine Anwendung auf reale Programme nur sehr eingeschränkt möglich erscheint. Weiterhin werden Aspekte wie Packages,
Sichtbarkeit von Namen, Ein- und Ausgabe und Garbage Collection ausgeschlossen
[Stärk et al. 2001, S. 32].
Diese und weitere im Text eingestreute Vereinfachungen und Annahmen erschweren
eine eigenständige Beurteilung, inwieweit der geführte formale Korrektheitsbeweis für
90
Während sich kombinierte Zuweisungsoperatoren trivial expandieren lassen (a+=1 Ùa=a+1), stellt
die Semantik der Pre- und besonders Postinkrementoperatoren ein praktisch relevantes Problem dar, das
sowohl die Ursache zahlreicher Programmfehler als auch fundamentaler Mehrdeutigkeiten in der
Spezifikation der Sprache C ist, so daß ihre Einordnung als „expressive sugar“ zumindest erklärungsbedürftig erscheint.
– 175 –
reale Systeme relevant ist und Aussagen über die Validität und Sicherheit einer
tatsächlichen Java-Implementierung zuläßt. Weiterhin werden strukturelle Einschränkungen (Constraints) aufgestellt, von denen nicht deutlich wird, in welcher Form sie
sich im Code der ASM niederschlagen. Ohnehin erschweren handwerkliche Mängel das
Verständnis des Modells. Die verwendete Notation weicht von der im methodischen
Teil des Buches eingeführten Form ab. Die Beschreibung der Signatur enthält unkommentierte Vorwärtsreferenzen (etwa [ibid., S. 35]), was noch dadurch verschärft wird,
daß bestimmte Funktionen überhaupt nicht, also weder im Text noch im Anhang,
definiert werden (etwa [ibid., S. 41]).
Eine ernüchternde Erkenntnis bezüglich verteilter ASM ergab sich in Verbindung mit
der Modellierung von Java Threads. Verteilte ASM wurden bislang nur zur Modellierung von Algorithmen geringen Umfangs verwendet und können gegenwärtig auch
noch nicht ausgeführt werden. Daher werden zur Beschreibung des Threads herkömmliche sequentielle ASM verwendet. Dabei werden allerdings nicht einmal die Fähigkeiten zur parallelen Aktualisierung mehrer Funktionen genutzt, sondern die Threads
nacheinander von einem Multiplexer ausgeführt!
Abschließend wurde eine Erkenntnis deutlich, die sich auf die Beschreibung durch
Evolving Algebras generell bezieht: Jeder Einzelschritt eines Algorithmus wird durch
eine separate Regel beschrieben, so daß die Struktur des Algorithmus nicht unmittelbar
ersichtlich wird. Zwar lassen sich komplexe Strukturen wie Objekte oder Agenten
durchaus auch funktional beschreiben, hinsichtlich der Regeln unterstützen oder
zumindest befördern ASM jedoch per se keine strukturierte Darstellung. Dies war die
wesentliche Motivation, der derzeit unter der Leitung von Gurevich entwickelten
Abstract State Machine Language (AsmL) den Vorzug zu geben, die über diesbezüglich stärkere Ausdrucksmittel verfügt.
4.1.1.3 Abstract State Machine Language
AsmL ist ein Projekt der Forschungsabteilung Foundations of Software Engineering
von Microsoft [Microsoft 2003c]. Microsoft hat neben Gurevich auch Schulte, der
gemeinsam mit Börger Urheber des Projekts zur Modellierung von Java war, verpflichten können, so daß die Abteilung gegenwärtig ein führendes Zentrum der ASMbezogenen Forschung darstellt.
– 176 –
Mit AsmL wird das konkrete Ziel verfolgt, die Entwicklungsprozesse bei Microsoft zu
beschleunigen und qualitativ zu verbessern. Im Rahmen verschiedener Projekte wird
bereits versucht, AsmL in einem operativen Kontext einzusetzen [Microsoft 2003d]. Ein
Pilotprojekt betraf die Spezifikation des Protokolls für Universal Plug and Play (UPnP)
[Modeled Computation 2001].
Aufgrund dieser Zielsetzung ist AsmL eng mit dem Microsoft .NET Framework
[Microsoft 2003e] verknüpft. Der in die .NET Entwicklungsumgebung integrierte
AsmL-Compiler setzt AsmL-Code in C#-Code [Microsoft 2003f] um, der dann vom C#Compiler in ein eigenständiges Programm übersetzt wird. AsmL-Spezifikationen sind
somit ausführbar.
Um die Einstiegshürde für an ein objektorientiertes Paradigma gewöhnte Entwickler zu
verringern und die Methode besser an die konkreten Bedürfnisse der Softwareentwicklung bei Microsoft anzupassen, führt AsmL objektorientierte Konzepte wie Interfaces
und Klassen ein [Barnett/Schulte 2001]. Weiterhin sieht die Sprachreferenz in der
aktuellen Version 2.0 [Modeled Computation 2002] C#-spezifische Konstrukte wie
property oder delegate vor, die allerdings bislang nur rudimentär bzw. überhaupt nicht
implementiert sind. AsmL bietet eine einfache Klassenbibliothek [Grieskamp/Tillmann
2003], die im Wesentlichen die elementaren Datentypen, die drei Behältertypen Set
(ungeordnete Menge), Seq(uence) (geordnete Menge) und Map (mit einer Schlüsselmenge indizierte Menge) und minimalistische Ein- und Ausgabefunktionen für Dateien
und Konsole umfaßt.
Die Einführung objektorientierter Konstrukte hilft deutlich bei der strukturierten
Modellierung komplexer Systeme, führt aber auch die bereits bei Börger angemerkte
Entfernung von den mathematischen Grundlagen des Konzepts fort. Die Idee der
Signatur und die Beschreibung von Variablen als Funktionen der Arität null treten
komplett in den Hintergrund. Funktionen und Regeln werden einheitlich durch Methoden abgebildet. Dabei wird zwar prinzipiell zwischen Methoden mit Seiteneffekten
(procedure) und ohne Seiteneffekte (function) unterschieden, diese Differenzierung
wird jedoch von den derzeitigen Werkzeugen nicht überprüft [Modeled Computation
2002, S. 52].
Alle zur Arbeit mit AsmL benötigten Entwicklungswerkzeuge sind kostenlos über die
Internetseiten von Microsoft Research zu beziehen. Im vorliegenden Fall wurde AsmL
– 177 –
for Microsoft .NET in der Version 2.1.5.2 [Microsoft 2003a] zur Modellierung verwendet.91 Zusätzliche Details bezüglich der Sprache und der zugehörigen Werkzeuge
werden im Rahmen der Beschreibung des umgesetzten Entwurfes und des anschließenden Erfahrungsberichtes betrachtet werden.
4.1.2 Dekomposition und Strukturierung durch Zwischenziele
Bei der Planung des weiteren Vorgehens bezüglich der Implementierung des Modells
erschien es als vorteilhaft, das Projekt zweistufig anzugehen.
Erste Überlegungen bezüglich der Umsetzung von Sensoren und Effektoren hatten
schnell auf die Frage geführt, wie die Wahrnehmungen der Sensoren und die von den
Effektoren vorgenommenen Änderungen an Entities inhaltlich hinreichend detailliert
abzubilden wären. Vor dem Hintergrund der für die physikalische Ebene angestrebten
starken Verankerung in existierender Softwaretechnik lag es hier nahe, auf die Prinzipien der Objektorientierung zurückzugreifen. Die enge Verwandtschaft, die die Beschreibung der manipulierten Attribute und die Spezifikation der zu einer konkreten Benutzung von Effektoren und Sensoren anzugebenden Parameter mit objektorientierten
Konzepten, konkret Objektvariablen und Methodensignaturen, aufwiesen, war somit
nicht überraschend, sondern durchaus beabsichtigt.
Daher wurde beschlossen, zunächst eine objektorientierte Laufzeitumgebung mit AsmL
zu spezifizieren. Diese sollte dann in einem zweiten Schritt erlauben, Agenten, Entities,
Sensors, Effectors und Attribute auf Basis der abstrakt spezifizierten Objekte, Variablen und Methoden detailliert und präzise zu beschreiben, ohne dadurch das Metamo-
91
AsmL befindet sich offiziell noch im Beta-Stadium. Erste Experimente wurden mit AsmL Version
2.1.4 vom Oktober 2002 [Microsoft 2002] durchgeführt. Die themenbezogene Implementierungsarbeit
wurde auf Grundlage der Anfang Januar erschienenen Version 2.1.5.2 [Microsoft 2003a] vorgenommen.
Anfang März erschien die derzeit aktuelle Version 2.1.5.6 [Microsoft 2003b]. Auf der AsmL-Homepage
[Microsoft 2003d] sind leider weder die vorhergehenden Versionen noch Informationen bezüglich der
genauen Änderungen zwischen den verschiedenen Versionen (etwa in Form von Release Notes oder
einem Change Log) verfügbar.
– 178 –
dell in seinem allgemeinen Anspruch zu beschränken.92 Die Entscheidung hatte
allerdings nicht nur inhaltliche, sondern auch methodische Gründe. Aufgrund der
Tatsache, daß sowohl das Metamodell noch nicht praktisch erprobt worden war als auch
bislang noch keine eigenen Erfahrungen mit AsmL gesammelt worden waren, bot es
sich an, eine Unbekannte zu eliminieren und AsmL zunächst auf ein vertrautes, vielfach
bestätigtes Konzept, eben die Objektorientierung, anzuwenden. Um dabei gleichzeitig
schon ein Gefühl für die Herausforderungen bei der Spezifikation des ungleich komplexeren Konzeptes der Agentenorientierung zu gewinnen, wurde die objektorientierte
Laufzeitumgebung nicht strikt auf die für das agentenorientierte Modell unmittelbar
relevanten Teile beschränkt, sondern zum Test der Methode zunächst als vollwertiger
Betrachtungsgegenstand behandelt.
4.2
Aufbau der Spezifikation
Da AsmL-Spezifikationen sprachbasiert sind und sich syntaktisch nicht auf einer
höheren Abstraktionsebene bewegen als herkömmlicher objektorientierter Quellcode,
empfiehlt es sich in analoger Weise, vor einer konkreten Umsetzung zunächst die
Struktur der Spezifikation zu planen.
Zu diesem Zweck wurden als erster Schritt UML-Klassendiagramme der objektorientierten Laufzeitumgebung aufgestellt. Im folgenden Abschnitt sollen die zentralen
Elemente des entwickelten Modells vorgestellt und einige relevante Aspekte bezüglich
seiner praktischen Umsetzung in AsmL erörtert werden.
92
Die Beschreibung von Objektorientierung mittels einer objektorientierten Methode, wie AsmL es ist,
birgt gewisse (epistemologische) Probleme. Die inhaltliche und konzeptionelle Ähnlichkeit zwischen
den beiden Abstraktionsebenen stiftet leicht Verwirrung darüber, auf welche Ebene sich ein verwendeter Begriff bezieht. In diesem Sinne sei betont, daß hier die Metaebene, also die Elemente der physikalischen Ebene und ihre abstrakten Interaktionsbeziehungen, durch die Erweiterung objektorientierter
Konzepte modelliert wird (also etwa eine Entity als spezielles Objekt mit assoziierten Attributen), dies
aber keine Aussage über die Natur der Objektebene, also des beschriebenen Systems, macht (die
beschriebene Entity kann etwa in Wahrheit eine Kaffeemaschine sein, deren ‚Attribute’ ihr Betriebszustand und der Füllstand der Kanne sind).
– 179 –
4.2.1 Die objektorientierte Cb Laufzeitumgebung
Die auf den Namen Cb getaufte objektorientierte Laufzeitumgebung entlehnt Konzepte
aus den Sprachen Java [Gosling et al. 2000], C++ [Stroustrup 2000] und C# [Microsoft
2003f]. Da die Laufzeitumgebung ohnehin auf einer dreistufigen Emulation basiert (Cb
durch AsmL, AsmL durch C#, C# durch die C# Virtual Machine), wird die Aufmerksamkeit nicht auf Effizienz, sondern auf mächtige Ausdrucksmittel, die sich auf dieser
maschinenfernen Ebene leicht umsetzen lassen, gerichtet. Cb bietet Interfaces und
Garbage Collection wie Java, Mehrfachvererbung, Operatorüberladung und Unterscheidung zwischen Objekt- und Zeigertypen wie C++ und einen speziellen Funktionszeigertypen wie C#. Andere interessante Aspekte wie generische Typen oder Properties
sind hier irrelevant, da kein zugehöriger Compiler spezifiziert wird. Der praktische
Nutzwert der Laufzeitumgebung ist deswegen begrenzt, da auszuführende Programme
in umständlicher Notation indirekt in AsmL angegeben werden müssen. Dies ist auch
der Grund, weshalb die implementierte ‚Klassenbibliothek’ äußerst minimalistisch ist
und nur die unbedingt notwendigen Basistypen enthält.93
4.2.1.1 Strukturen
Die Struktur der Laufzeitumgebung wird vom Dualismus zweier spiegelbildlicher
Hierarchien bestimmt. Auf der einen Seite existiert die statische Spezifikation des
auszuführenden Programms, die etwa seine Klassen, Methoden und Variablen umfaßt.
Diesen steht zur Laufzeit ihre konkrete Realisierung durch Instanzen, Methodenaufrufe
und Speicheradressen gegenüber.
CompTiNE-Hierarchie
Die Objekte94 der statischen Beschreibung tragen alle einen eindeutigen, hierarchischen
Namen. Sie können bereits zur Erstellungszeit vom Compiler aus dem Quelltext
93
94
Der Quelltext der Spezifikation ist im Anhang der elektronischen Version dieser Arbeit verfügbar.
Um die Unterscheidung zwischen den beiden Verwendungsarten objektorientierter Begriffe, also
Klassen im Sinne von AsmL und Klassen im Rahmen von Cb, zu verdeutlichen, werden letztere kursiv
gedruckt. Bezeichner aus der Spezifikation werden in nichtproportionaler Schrift geschrieben.
– 180 –
abgeleitet bzw. in der vorliegenden Situation vom Benutzer manuell definiert werden.
Sie werden daher hier unter dem Begriff Compile Time Named Entity (CompTiNE)
zusammengefaßt. Ihre Beziehungen werden durch eine Hierarchie von Interfaces
definiert, die in Abbildung 4.1 dargestellt ist.
Der Basistyp dieser Hierarchie ist die CompTiNE, die einen einfachen und einen
qualifizierten (hierarchischen) Bezeichner besitzt. Sie muß, mit Ausnahme des globalen
Namensbereichs in seiner Rolle als Wurzelelement, in einem Scope enthalten sein. Ein
Scope ist eine CompTiNE, in deren Rahmen andere CompTiNE definiert werden
können.
«Interface»
«Schnittstelle»
CompTiNE
+identifier() : String
+qualifiedIdentifier() : String
+scope() : Scope
«Interface»
«Schnittstelle»
Scope
«Interface»
«Schnittstelle»
Variable
+validCompTiNE(in identifier : String) : CompTiNE
+localCompTiNE(in identifier : String) : CompTiNE
«Interface»
«Schnittstelle»
Namespace
+instanceType() : Type
+isMutable() : Boolean
+isSpecializable() : Boolean
+access() : Access
+instantiate(in context : Context) : Location
«Interface»
«Schnittstelle»
Block
+namespaceDefinition(in identifier : String) : Namespace
+typeDefinition(in identifier : String) : Type
+methodDefinition(in identifier : String) : Method
+variableDefinition(in identifier : String) : Variable
+instantiate(in context : Context) : StaticContext
+variableDefinition(in identifier : String) : Variable
+code()
+instantiate(in context : Context) : StackContext
«Interface»
«Schnittstelle»
Type
+isAbstractType() : Boolean
+isa(in t : Type) : Boolean
+inheritsDirectlyFrom() : Set of Type
+inheritsDirectlyFrom(in t : Type) : Type
+methodDefinition(in identifier : String) : Method
+variableDefinition(in identifier : String) : Variable
+instantiate(in ot : Objectable, in isMutable : Boolean) : Instance
«Interface»
«Schnittstelle»
Method
+returnType() : Type
+parameters() : Seq of Variable
+invariant() : Boolean
+isSpecializable() : Boolean
+access() : Access
+signature() : String
+invoke(in context : Context, in parameters : Seq of Instance) : Instance
Abbildung 4.1
Die Interfaces der CompTiNE-Hierarchie
– 181 –
Ein Type beschreibt eine Klasse oder ein Interface. Er kann Methods und Variables enthalten und von anderen Types erben. Ein Namespace erfaßt die Konzepte
der Kompilierungseinheit und des Namensbereichs aus C++ und der Package aus Java.
Er kann andere Namespaces, Types, Methods und Variables enthalten.
Prinzipiell entspricht jeder Type auch einem Namespace; es hat sich bei der Umsetzung jedoch als praktischer erwiesen, die statischen Elemente und inneren Klassen eines
Typs in einem separaten Namespace gleichen Namens abzubilden.
Ein Block ist ein Abschnitt im Quellcode, der einen eigenen Geltungsbereich für
lokale Variablen einführt. Eine Method ist ein spezieller Block, der parametrisiert
aufgerufen werden und einen Wert eines bestimmten Typs zurückgeben kann. Da
Methodennamen überladen werden können, wird eine Methode nur durch ihre Signatur
eindeutig identifiziert. Ist eine Member-Methode invariant, kann sie auf konstanten
Objektinstanzen aufgerufen werden.
Eine Variable ist eine CompTiNE, die den Typ und die Modifizierer (constant,
mutable) einer globalen, lokalen, Namensbereichs- oder Member-Variable beschreibt.
Für Member-Methoden und -Variablen läßt sich die Sichtbarkeit (public, protected,
private) und Spezialisierbarkeit (virtual, final) spezifizieren. Die Rückgabetypen
virtueller Methoden und die Typen virtueller Variablen können von abgeleiteten
Klassen verfeinert werden, wobei zwischen dem ursprünglichen und dem verfeinerten
Typ eine isa-Beziehung bestehen muß.
Die beschriebenen Interfaces werden von einer hier nicht näher beschriebenen parallelen Hierarchie von konkreten Klassen (BasicCompTiNE, BasicScope, etc.)
implementiert. Constructor und Destructor beschreiben spezielle Klassen von
Methoden und sind daher als Untertypen von BasicMethod definiert. Zur Definition
abstrakter Klassen bot sich erstmals eine spezielle Fähigkeit von AsmL, die Verwendung restringierter Typen, an. Der Typ BasicInterface hätte sich als BasicType, bei dem isAbstractType wahr ist, beschreiben lassen – dies wird von den
aktuellen Werkzeugen allerdings noch nicht unterstützt und funktioniert anscheinend
prinzipiell nur für eingebaute Typen.
– 182 –
RouTiNE-Hierarchie
Zur Laufzeit werden von der Laufzeitumgebung Instanzen der verschiedenen CompTiNE-Typen dynamisch erzeugt. Jede Instanz kann als die logische Beschreibung eines
bestimmten, hier natürlich nur abstrakten Speicherbereiches betrachtet werden und wird
daher als Run Time Named Entity (RouTiNE) bezeichnet. Die entsprechende Hierarchie wird nachfolgend in Abbildung 4.2 dargestellt.
Der Basistyp RouTiNE verweist auf die CompTiNE, die ihm als Vorlage gedient hat.
RouTiNE werden von der spezialisierten instantiate-Methode einer CompTiNE
erzeugt und können mittels ihrer eigenen dispose-Methode wieder zerstört werden.
Außer dem Wurzelelement sind wiederum alle RouTiNE jeweils in einem übergeordneten Context, der Instanz des entsprechenden Scope, enthalten.
«Interface»
RouTiNE
«Schnittstelle»
+identifier() : String
+template() : CompTiNE
+context() : Context
+dispose()
«Interface»
Context
«Schnittstelle»
«Interface»
Location
«Schnittstelle»
+createLocation(in identifier : String, in location : Location, in caller : Context)
+accessLocation(in identifier : String, in caller : Context) : Location
+accessMethod(in identifier : String, in caller : Context) : Method
+scope() : Scope
+content() : Instance
+content(in value : Instance) : Instance
+variable() : Variable
«Interface»
StaticContext
«Schnittstelle»
«Interface»
StackContext
«Schnittstelle»
+accessContext(in identifier : String) : StaticContext
+registerContext(in context : StaticContext)
+namespace() : Namespace
+inContext(in parent : Context) : Boolean
+execute()
+block() : Block
«Interface»
Instance
«Schnittstelle»
+object() : Instance
+objectable() : Objectable
+clone(inout duplicate : Objectable)
+location() : Location
+location(in address : Location)
+isMutable() : Boolean
+instanceof() : Type
«Interface»
Invocation
«Schnittstelle»
+method() : Method
Abbildung 4.2
Die Interfaces der RouTiNE-Hierarchie
– 183 –
Der Context spielt eine zentrale Rolle bei der späteren Umsetzung der Auswertung
von Ausdrücken und Befehlen. Ein Context erlaubt den Aufruf von Methoden und
den Zugriff auf abstrakte Speicherorte, also den Inhalt von Variablen.
Für jeden Namespace wird genau ein StaticContext erzeugt. Angefangen mit
dem globalen Namensbereich erzeugt die Laufzeitumgebung zu Beginn der Ausführung
den entsprechenden Baum aus StaticContexts und führt eventuellen Code zur
Initialisierung von Bereichsvariablen aus.
Ein StackContext ist die Instanz eines Block. Er bildet somit eine lokale Umgebung auf dem simulierten Stack ab. Der Aufruf einer Method, eine Invocation, ist
dementsprechend ein spezieller StackContext.
Die komplexeste RouTiNE ist die Instance, die Instanz eines Type. Eine Instance ist somit ein Objekt oder ein Teil eines Objekts. Im Fall von Vererbungsbeziehungen wird für jede Basisklasse eine eigene Instance erzeugt, so daß das eigentliche Objekt aus einer Struktur von Instances besteht. Da Mehrfachvererbung erlaubt
ist, werden die Instances nicht als Baumstruktur, sondern in einer Instanzentabelle
(Objectable) verwaltet. Zur Implementierung polymorpher Typen überlädt Instance die Methoden accessLocation und accessMethod aus Context und
wählt dynamisch die spezialisierteste Variable oder Methode aus. Alle Werte in Cb sind
Instances, einschließlich aller primitiven Typen und Literale.
Jedes Objekt belegt eine Location. Jede Location ist mit einer Variable
assoziiert, die ihren Type und ihre Modifikatoren beschreibt. Bei Zuweisungen und
allen vergleichbaren Operationen wird eine Typenprüfung vorgenommen. Dabei werden
Instances grundsätzlich by Value kopiert. Eine Übergabe von Instances by
Reference erfolgt mit Hilfe von explizit deklarierten Referenzen. Diese sind selbst als
Instances realisiert, die aus einer integrierten Vorlagenklasse erzeugt werden. Sie
können typsicher auf andere Instances oder auf Locations auf dem simulierten
Heap verweisen. Referenzen auf Methods sind in ähnlicher Weise realisiert. Für
Instances auf dem Heap wird unter Verwendung der Referenzen eine einfache
Garbage Collection durch Reference Counting realisiert.
– 184 –
4.2.1.2 Ausführbare Elemente
Der im engeren Sinne ausführbare Cb-Code besteht aus Ausdrücken (Expression)
und Befehlen (Imperative). Die eigentlichen Berechnungen eines Programmes
werden durch die Auswertung von Ausdrücken durchgeführt, Befehle steuern den
Ablauf der Ausführung. Ausdrücke können verschachtelt sein, sind dabei aber in
irgendeiner Form immer in einem Befehl verankert. Bestimmte Befehle können
ebenfalls andere Befehle enthalten. Mittelbar ist jeder Befehl Teil eines Block.
Die einzelnen Ausdrücke bzw. Befehle werden durch eigenständige Objekte repräsentiert. Der Baum aller Befehle und Ausdrücke eines Block (Parse Tree) wird durch den
sukzessiven Aufruf der Methoden evaluate bzw. execute auf diesen Objekten
abgearbeitet. Dabei ergibt sich das Problem der Explizierung des Kontextes. Bei einer
informellen oder rein abstrakten Beschreibung ist intuitiv klar, auf welches Objekt sich
eine Member-Methode bezieht oder welche Instanz einer bestimmten lokalen Variablen
bei einer Serie rekursiver Methodenaufrufe jeweils gemeint ist. Da AsmL jedoch nicht
auf einer logischen, sondern auf einer operativen Ebene arbeitet, sind sich die Elemente
des Modells ihres Kontextes nicht ‚bewußt’, sofern er ihnen nicht mitgeteilt wird. Daher
wird bei jedem Aufruf von evaluate bzw. execute der Context, in dem die
Auswertung stattfinden soll, explizit übergeben. 95
Ausdrücke
Jeder Ausdruck wertet zu einer RouTiNE bzw. CompTiNE aus. Dabei existieren vier
Klassen, die einen Context, eine Instance, eine Location bzw. eine Method
zurückgeben. Abbildung 4.3 gibt einen Überblick über eine Auswahl konkreter Typen.
95
Das explizite Mitführen des gesamten Zustandes in Aufrufparametern erinnert deutlich an funktionale
Programmierung. Im Prinzip i s t die Abarbeitung des Codebaums tatsächlich funktional gelöst, da
keinerlei Seiteneffekte auf die ausführenden Knoten auftreten, sondern nur die herumgereichte ‚Welt’
verändert wird. Die durchaus denkbare ‚objektorientierte’ Alternative, etwa beim Aufruf einer Method
den enthaltenen Code zu klonen und mit passenden Referenzen auf die zugehörige Invocation zu
versehen, verlagert den Kontext zwar in die Objekte, vermeidet aber ebenfalls nicht das Problem, sich
explizit mit ihm auseinandersetzen zu müssen. Praktisch scheitert dieser Ansatz weniger an mangelnder
Effizienz als an der Tatsache, daß AsmL prinzipbedingt weder Kopierkonstruktoren noch echte
Referenzen anbietet.
– 185 –
«Interface»
«Schnittstelle»
Expression
+evaluate(in context : Context)
«Interface»
«Schnittstelle»
ExpressionContext
+evaluateContext(in context : Context) : Context
«Interface»
«Schnittstelle»
ExpressionInstance
+evaluateInstance(in context : Context) : Location
+expressionType() : Type
«Interface»
«Schnittstelle»
ExpressionLocation
+evaluateLocation(in context : Context) : Location
+expressionType() : Type
«Interface»
«Schnittstelle»
ExpressionMethod
+evaluateMethod(in context : Context) : Method
+expressionMethod() : Method
ExpressionLocationContext
ExpressionLocationReference
-_context : ExpressionContext
-_identifier : Variable
-_reference : ExpressionInstance
ExpressionInstanceLiteral
ExpressionInstanceLocation
ExpressionInstanceAssign
ExpresssionInstanceInvocation
-_literal : Instance
-_location : ExpressionLocation
-_location : ExpressionLocation
-_instance : ExpressionInstance
-_context : ExpressionContext
-_method : ExpressionMethod
-_parameters : Seq of ExpressionInstance
Abbildung 4.3
Ausschnitt aus der Hierarchie der Ausdruckstypen
Reine Context-Ausdrücke ermitteln anhand eines qualifizierten Bezeichners vom
globalen Namensbereich aufsteigend den gesuchten StaticContext oder aus der
lokalen Umgebung durch verschachtelte Blocks absteigend den relevanten StackContext.
Da Instances ebenfalls Contexts sind, fungieren Instance-Ausdrücke gleichzeitig als Context-Ausdrücke, etwa beim Zugriff auf Member-Variablen. InstanceAusdrücke zeichnen sich für einen wesentlichen Teil der Instruktionen eines Programmes verantwortlich: Sie speichern Literale, erzeugen neue Instances, lesen Locations aus oder weisen ihnen Instances zu, werten Methodenaufrufe aus oder
nehmen Type Casts vor. Instance-Ausdrücke haben den Type ihres Ergebnisses.
Location-Ausdrücke dienen vor allem dazu, aus einem Bezeichner und einem
Context-Ausdruck eine konkrete Instanz einer Variable zu ermitteln. Sie werten
aber auch Referenzen aus, ermitteln die Location einer Instance und erzeugen die
Instanzen lokaler Variablen und neue Locations auf dem Heap.
Method-Ausdrücke ermitteln in ähnlicher Weise aus einem Context-Ausdruck und
einer Signatur oder einer Referenz die aufzurufende Methode.
– 186 –
Befehle
Die von der Laufzeitumgebung unterstützten Befehle werden in Abbildung 4.4 aufgeführt. Sie bieten nichts Außergewöhnliches und sollten weitgehend selbsterklärend sein.
«Interface»
«Schnittstelle»
Imperative
+execute(in context : Context)
ImperativeBlock
ImperativeEmpty
-_block : Block
+execute(in context : Context)
+execute(in context : Context)
ImperativeConditional
-_guard : ExpressionInstance
-_conditional : Imperative
-_alternative : Imperative
ImperativeReturn
-_expression : ExpressionInstance
+execute(in context : Context)
+execute(in context : Context)
ImperativeSequence
ImperativeExpresssion
-_code : Seq of Imperative
-_expression : ExpressionInstance
+execute(in context : Context)
+execute(in context : Context)
ImperativeLoop
-_guard : ExpressionInstance
-_body : Imperative
-_update : Imperative
ImperativeBreak
-_levels : Integer
+execute(in context : Context)
+execute(in context : Context)
ImperativeTry
-_code : Imperative
-_handlers : Seq of ImperativeCatch
+execute(in context : Context)
Abbildung 4.4
ImperativeContinue
-_levels : Integer
+execute(in context : Context)
ImperativeCatch
ImperativeThrow
-_handlingCode : Block
-_exceptionExpression : Variable
+execute(in context : Context)
-_expression : ExpressionInstance
+execute(in context : Context)
Übersicht über die unterstützten Befehlstypen
ImperativeBlock schiebt einen neuen StackContext auf den virtuellen Stack.
ImperativeSequence führt Befehle sequentiell aus. ImperativeExpression
wertet einen Ausdruck aus. ImperativeConditional bietet ein if-then-elseKonstrukt, wobei der else-Zweig auch nur die leere Anweisung ImperativeEmpty
enthalten kann. Die Bedingung muß ein Instance-Ausdruck vom Typ CbBoolean
sein, was in AsmL zwar durch den Befehl require als Vorbedingung spezifiziert werden
kann, jedoch bislang nicht überprüft wird. Gleiches gilt für ImperativeLoop, eine
while- oder for-Schleife. ImperativeReturn springt aus Methodenaufrufen.
ImperativeBreak und ImperativeContinue springen aus Blocks bzw. in
den nächsten Schleifendurchlauf, wobei in verschachtelten Strukturen auch über
– 187 –
mehrere Ebenen gesprungen werden kann. ImperativeTry und ImperativeCatch dienen zur Behandlung von mit ImperativeThrow ausgelösten Ausnahmen.
Die Implementierung der Befehle ist, das Befehlspaar try/catch einmal ausgenommen,
im Prinzip vollkommen trivial. Bei der Implementierung der Sprungbefehle war
allerdings problematisch, daß AsmL selbst aufgrund seiner funktionalen Herkunft
keinerlei Sprungbefehle anbietet. Die return-Anweisung legt etwa nur den Rückgabewert einer Funktion fest, ohne den Kontrollfluß zu beeinflussen.96 AsmL unterstützt
allerdings Exceptions, so daß erwogen wurde, bei der Ausführung einer ImperativeReturn eine ReturnException auszulösen und am Ort des Methodenaufrufs
aufzufangen. Dies scheitert allerdings daran, daß bei identischer Syntax die Semantik
der Exceptions fundamental von den aus objektorientierten Sprachen gewohnten
Konventionen abweicht: Beim Auslösen einer Exception werden alle bisherigen
Aktualisierungen innerhalb des try-Blocks zurückgenommen, so daß dieser stärkere
Ähnlichkeit mit einer Datenbanktransaktion als mit seinem Pendant in Java hat. Die
verwendete Lösung ist nicht elegant, aber effektiv: Die Cb-Sprungbefehle verändern
eine Variable der Laufzeitumgebung, den RunTimeState. Setzt etwa ein throwBefehl den Status auf RTSException, werden durch if-Abfragen alle weiteren
Befehle ausgelassen, bis ein passender catch-Befehl ihn wieder zu RTSExecute,
dem Normalwert, ändert.
4.2.1.3 Native Klassen
Eine Klassenbibliothek wird nur in dem Ausmaß definiert, wie diese für andere
Komponenten der Laufzeitumgebung zwingend notwendig ist. Der Namespace Cb
umfaßt die elementaren Typen CbBoolean, CbByte, CbInteger, CbDecimal
und CbCharacter, die einfache Wrapper um entsprechende AsmL-Typen sind,
96
Bei der Modellierung von Java lösen Stärk et al. das entsprechende Problem, indem sie alle Elemente
des Codebaums indizieren, den Index eines Funktionsaufrufes festhalten und dann beim returnBefehl nicht z u r ü c k k e h r e n , sondern in eine weitere Funktion hineinspringen, die die Ausführung
am festgehaltenen Index fortsetzt. Zur Umsetzung mit AsmL eignet sich diese Lösung allerdings nur
eingeschränkt, da auf diese Weise zwar der virtuelle Stack von Cb abgebaut, der reale Stack von AsmL
bzw. C# jedoch in einer nicht zurückkehrenden Rekursion immer weiter aufgebaut würde.
– 188 –
sowie CbVoid, CbObject, CbArray, CbString und die Referenztypen CbReference und CbFunctional. Zur Ein- und Ausgabe dienen die Befehle WriteLine
und ReadLine.
4.2.2 Zur Umsetzung des Metamodells
Die durch die Spezifikation der objektorientierten Laufzeitumgebung etablierten
Konzepte lassen sich vergleichsweise direkt auf die Physical Layer des agentenorientierten Metamodells übertragen. Die Umsetzung von Entities, Agents und Environments als spezialisierte Instances und von Sensors, Effectors und Mechanisms
durch verschiedene Arten von Methods wirft etwa keine gravierenden konzeptionellen
Probleme auf. Dieser Teil des Modells wird insoweit sogar einfacher, als daß die
Hierarchie der CompTiNE in wesentlichen Teilen wegfällt: Da Entities ungetypt sind,
sind Types einfach nur spezielle, als Vorlagen markierte Instances.
Die entsprechenden Strukturmodelle wurden bei der konzeptionellen Entwicklung des
Metamodells in Form der Beschreibungen, Zusammenfassungen und Diagramme
bereits in wesentlichen Teilen aufgestellt. Die Definition diverser Elemente kann in
einfacher Weise direkt mit den Mitteln von AsmL umgesetzt werden, etwa kann ein
Context als Set von Entities implementiert werden. Allerdings sind die Modelle
dahingehend zu überarbeiten, daß im Sinne des beschriebenen Problems des Kontextes
in AsmL wiederum alle Abhängigkeiten und Bezüge explizit darzustellen sind.
Weiterhin ist etwa die Unterscheidung, ob ein Sensor auf einer ‚realen’ Entity oder auf
einem dynamisch erzeugten ‚imaginären’ Percept operiert, im logischen Modell
nachrangig, während sie bei der operativen Umsetzung in AsmL eine explizite Fallunterscheidung und Implementierung in getrennten Untertypen erfordert. Notwendige
Differenzierungen dieser Art führen zu einer signifikanten Ausweitung der Klassenhierarchie.
Gänzlich problematisch wird dies bei der Spezifikation der Services. Während sich bei
einigen der Dienstklassen noch eine einheitliche Schnittstelle definieren läßt (etwa bei
Execution: Scheduling), wird in anderen Fällen (Security: Integrity) e i n e Lösung
kaum allen Ansprüchen gerecht werden. Sollen konkrete Systeme simuliert werden,
blähen unterhalb der ohnehin schon zahlreichen Dienstklassen jeweils noch diverse
konkrete Implementierungen die Klassenhierarchie weiter auf.
– 189 –
Die Conceptual Layer kann dagegen zumindest in ihren zentralen Strukturen vergleichsweise leicht beschrieben werden. Die Umsetzung des Social Model und des
Behavioral Model erfordert zwar eine ausführliche Auseinandersetzung mit den
verschiedenen bereits im konzeptionellen Teil eingeführten Untertypen, läßt sich
aufgrund des auf die Physical Layer abgestützten Entwurfs aber problemlos operationalisieren. Allerdings müssen auch hier verschiedene Implementierungsmöglichkeiten
beachtet werden, beispielsweise hinsichtlich der Frage, wie zur Ableitung von Professed Intentions das Verhalten der Agenten mit den entsprechenden Norms verglichen
wird.
In Verbindung mit dem Mental Model tritt wiederum das Problem auf, daß viele
inkompatible theoretische Ansätze bei der praktischen Umsetzung viele differenzierte
Implementierungen erfordern. Ein Problem prinzipieller Natur werfen sehr abstrakte
Konzepte wie etwa der Purpose auf. Seine Missions können natürlich durch die
Abbildung auf Aims in ein dynamisches Modell eingebunden werden, allerdings wird
dies seinem Anspruch allein nicht in vollem Maße gerecht. Da der Purpose die grundsätzliche Motivation eines Agent oder einer Role beschreibt, zieht er sich implizit durch
deren gesamte Umsetzung, so daß sich die Frage stellt, ob er überhaupt sinnvoll explizit
operationalisiert werden kann.
4.3
Erkenntnisse und Kritik
Auf ihrem abschließenden Entwicklungsstand bietet die objektorientierte Laufzeitumgebung die detaillierte Spezifikation einer möglichen Realisierung der zentralen
Konzepte der Objektorientierung. Zur Ausführung sinnvoller Programme fehlt allerdings nicht nur eine umfangreichere Klassenbibliothek, sondern vor allem eine Methode, um die Programme mit vertretbarem Aufwand überhaupt spezifizieren zu können.
Ferner wurde es nicht für sinnvoll erachtet, die Spezifikation des Metamodells mit
AsmL weiter zu verfolgen, da eine solche vor dem Hintergrund der bei der Implementierung des objektorientierten Modells gemachten Erfahrungen weder praktikabel noch
adäquat erschien. Die Gründe für diese Entscheidung sollen im Folgenden im Einzelnen
dargelegt werden, wobei zunächst auf die verfügbaren Werkzeuge, im Anschluß auf den
Entwurf von AsmL als Sprache und abschließend auf die prinzipielle Eignung von
– 190 –
Evolving Algebras und verwandten Ansätzen zur Modellierung abstrakter Modelle im
Stil des Metamodells eingegangen wird.
4.3.1 Zur Eignung von AsmL
4.3.1.1 Zur Eignung der verfügbaren Werkzeuge
AsmL for Microsoft .NET befindet sich offiziell noch im Beta-Stadium, was inhaltlich
auch durchaus gerechtfertigt erscheint. Verschiedene weiterführende Merkmale der
Sprache sind noch nicht implementiert, an anderen Stellen weist der Compiler formal
korrekten Code mit einem Verweis auf „Current Implementation Restrictions“ zurück.
Darüber hinaus enthält der Compiler noch zahlreiche oft schwerwiegende Fehler, die
leider teilweise extrem subtiler Natur sind. So führt etwa die Verwendung bestimmter
(selbstverständlich nicht reservierter) V a r ia b l e n n a m e n
in Musterausdrücken
reproduzierbar zu nur als bizarr zu bezeichnenden T y p f e h l e r n , die von einer
Kollision mit intern verwendeten Namen im generierten C#-Code herzurühren scheinen.
Diese Fehler machen die Erstellung eines Projekts vom Umfang der CbLaufzeitumgebung praktisch unmöglich. Nach einer langwierigen Fehlersuche, diversen
Umstellungen und der Implementierung von Behelfslösungen zum Umgehen technischer Beschränkungen wird die Spezifikation zwar vom AsmL-Compiler als korrekt
akzeptiert, erzeugt aber bei der weiteren Übersetzung in ausführbaren Code durch den
C#-Compiler in Abhängigkeit von der eingesetzten Version von AsmL unterschiedlichste Fehler, die etwa mangelnde Zugriffsrechte auf Objektattribute und in unzulässiger
Weise verwendete Schlüsselwörter oder Typen betreffen. So konnte die CbLaufzeitumgebung nur in Teilen, nicht aber in ihrer Gesamtheit praktisch getestet
werden.
Pro Projekt wird nur eine einzige Quelldatei unterstützt. AsmL-Code wird in XMLDateien gespeichert, was eine Vermischung von Code und verbalen Beschreibungen
befördern soll, aber auch gewisse syntaktische Einschränkungen, etwa bezüglich der
durch XML reservierten Zeichen (siehe [Bray et al. 2000]), mit sich bringt. Die Spezifikationen lassen sich im Prinzip in Microsoft Office-Dokumente konvertieren; die
diesbezüglichen Werkzeuge reagieren allerdings, wie auch der Compiler selbst, äußerst
sensibel auf von der erwarteten Norm abweichende Verzeichnisstrukturen.
– 191 –
Die Suche nach Laufzeitfehlern wird dadurch erschwert, daß für AsmL kein eigener
Debugger existiert, so daß nur der generierte – strukturell deutlich abweichende – C#Code mit dem entsprechenden Debugger untersucht werden kann. Die AsmLEntwicklungsumgebung versucht zwar, aus den Ausgaben des C#-Debuggers und C#Compilers die betroffene Stelle im AsmL-Code abzuleiten, was allerdings in der Regel
nicht gelingt und eher für zusätzliche Verwirrung sorgt.
4.3.1.2 Zur konzeptionellen Eignung der Sprache
Die technischen Probleme dürften sich bis zur Freigabe der ersten kommerziellen
Version noch deutlich reduzieren und zunehmend in den Hintergrund treten. Langfristig
erscheint daher vor allem die Konzeption der Sprache selbst für ihren Erfolg von
entscheidender Relevanz.
Als wesentlicher Vorzug von AsmL wird die Fundierung in einem exakten mathematischen Modell bezeichnet [Modeled Computation 2002, S. 2]. Praktisch gesehen sind der
Bezug zu den Evolving Algebras und die damit verbundene konzeptionelle Schlichtheit
allerdings verloren gegangen. Das Erscheinungsbild von AsmL wird vollständig von
den zahlreichen pragmatisch motivierten Erweiterungen geprägt, die zur Handhabung
umfangreicherer Modelle und zur stärkeren Annäherung an objektorientiert geprägte
Entwicklungsprozesse hinzugefügt wurden. AsmL ist im Kern eine funktional geprägte
Programmiersprache, auf die objektorientierte Konzepte und eine objektorientiert
gefärbte Syntax aufgesetzt worden sind. Die resultierende hybride Sprache soll die
Vorteile der beiden Paradigmen, ein mächtiges mathematisches Berechnungsmodell und
eine intuitive Strukturierung durch Objekte, verbinden, wird aber letztlich beiden
Konzepten nicht gerecht.
Erklärtes Ziel der Sprache ist es, mit geringem Aufwand die Erstellung von ausführbaren Prototypen zu erlauben, die dann vergleichsweise direkt mit einer herkömmlichen
Sprache in fertige Produkte umgesetzt werden können. Letzteres scheint nur auf den
ersten Blick trivial, da nominell und syntaktisch gleiche Konzepte sich semantisch
– 192 –
zwischen AsmL und C#97 oft fundamental unterscheiden. Die beschriebenen unterschiedlichen Interpretationen von Exceptions lassen sich etwa nicht aufeinander
abbilden. Dies setzt sich in anderen Bereichen fort, etwa bei der mathematisch definierten Gleichheitsrelation für Strukturen. Die anvisierte Zielgruppe dürfte dementsprechend einige Eigenheiten der Sprache zumindest als ungewohnt empfinden.
Besonders sticht hier die Handhabung von sequentiellen Befehlsfolgen heraus. Aus
‚pädagogischen’ Gründen [Barnett/Schulte 2001, S. 2] wurde zu deren Beschreibung
bewußt eine schwerfällige Syntax gewählt. Alle Befehle eines Blocks werden gleichzeitig ausgeführt, sofern dieser nicht durch wiederholte Verwendung des Schlüsselwortes
step in Einzelschritte partitioniert wird. Dies soll offenbar einen rein funktionalen
Programmierstil ohne Seiteneffekte befördern. Da die Verwendung von Objekten aber
im Grunde die Verwendung von Seiteneffekten voraussetzt, erfordern selbst einfache
Vorgänge oft so viele step-Befehle wie reguläre Operationen.
Für Zuweisungen an Variablen existieren zwei verschiedene Operatoren: = initialisiert
Variablen, := ändert bereits initialisierte Variablen. Interessanterweise ist es erlaubt, im
selben Schritt eine Variable zu deklarieren und dabei zu initialisieren und parallel mit
einem zweiten Befehl zu ändern. Da ‚verlorene Aktualisierungen’ (z.B. indem ein
return-Befehl noch den alten Wert zurückgibt) zu schwer lokalisierbaren Fehlern führen
können, bietet es sich generell an, lieber zu viele als zu wenige Steps zu verwenden. An
welcher Stelle in einem Block Variablen deklariert werden, soll ohne Bedeutung sein. In
diesem Zusammenhang trat allerdings ein verblüffender Implementierungsfehler auf:
Folgt in einem Block eine Deklaration auf eine Serie von Steps, werden die in den Steps
vorgenommenen Änderungen annulliert.
Bei der Suche nach entsprechenden Fehlern in der Blockstruktur wirkt erschwerend, daß
in AsmL Blöcke nicht durch Klammern, sondern einzig durch Einrückungen definiert
werden.
Letztlich zählt aber vor allem die Frage, welche Ausdrucksmittel die Sprache für die
effiziente und abstrakte Beschreibung eines Systems bietet. Zu nennen sind hier
97
Die nachfolgenden Vergleiche gelten zumeist in äquivalenter Weise für C#, C++ und Java.
– 193 –
nichtdeterministische Auswahl, Quantorausdrücke und Mustervergleich auf Typen und
Objekten sowie die parallele Ausführung von Befehlen. Letztere wird allerdings
notwendigerweise im generierten C#-Code durch sequentielle Abläufe nur simuliert.
Der einzige publizierte Fall, in dem die parallele Ausführung einen echten Vorteil
bietet, ist das beständig wiederholte Beispiel des unmittelbaren Vertauschens zweier
Variablen. Praktisch sind nichttriviale parallele Aktualisierungen immer riskant, weil
leicht wegen verborgener Seiteneffekte inkonsistente Aktualisierungen auftreten
können. Dies ist besonders bei Aufrufen von Objektmethoden zu bedenken, da Objektorientierung fast zwangsläufig zu einem nicht-funktionalen Programmierstil führt.
Mangels (für den praktischen Einsatz von Parallelität notwendiger) Synchronisierungsmechanismen führen entsprechende konkurrierende Änderungen zum Abbruch des
Programms.
Die Verifikation einer AsmL-Spezifikation erfolgt durch klassisches Testen. Mit den
mathematischen Grundlagen des Modells kommt der Entwickler nicht in Berührung, so
daß sich AsmL wie eine normale Programmiersprache präsentiert. Auch die zweifellos
nützlichen Ausdrucksmittel etablieren formal keine höhere Abstraktionsebene. Daher
muß sich AsmL den Vergleich mit ‚klassischen’ Programmiersprachen gefallen lassen.
Auch objektorientierte Sprachen erlauben es, das inhaltliche Abstraktionsniveau der
Beschreibung frei zu wählen und in einem Entwurfsprototypen weite Teile der Implementierung durch leere Methodenaufrufe oder Stümpfe wegzuabstrahieren. Die
zusätzlichen Ausdrucksmittel können in C++ oder Java leicht durch Hilfsfunktionen,
die mit der jeweiligen Klassenbibliothek in wenigen Zeilen umgesetzt werden können
(oder es bereits sind), hinzugefügt werden.
Umgekehrt bieten die objektorientierten Sprachen die Möglichkeit, auf die vorhandenen
Erfahrungen und Werkzeuge zurückzugreifen, sowie den Vorteil, die Spezifikation als
Grundlage der vollständigen Implementierung unmittelbar weiterverwenden zu können.
Die verfügbaren Klassenbibliotheken sind um Größenordnungen zahl- und umfangreicher und entsprechen zudem exakt den bei der späteren Implementierung verwendeten.
Es ist im Sprachentwurf allerdings zumindest vorgesehen, AsmL den Zugriff auf
externe COM-Objekte [Williams/Kindel 1994] zu erlauben [Barnett/Schulte 2001, S. 9].
Abschließend läßt sich sagen, daß die Verwendung von AsmL zumindest keine
deutlichen Vorteile gegenüber einer Spezifikation in einer herkömmlichen Hochsprache
– 194 –
aufweist. Konzeptionell vereinigt die Sprache eher die Nachteile als die Vorteile ihrer
beiden Vorbilder. Objektorientierte Prototypen können direkt in der Zielsprache
formuliert und ohne zusätzlichen Arbeitsaufwand in Form einer doppelt durchgeführten
Implementierung zum fertigen Produkt verfeinert werden. Funktionale Programmierung
mit objektorientierten Erweiterungen bietet Common LISP [Steele 1990] mit einem
deutlich höheren Reifegrad und besserer Werkzeugunterstützung.
4.3.2 Ausführbare Spezifikationen als Modellierungsmittel
Trotz der Kritik an AsmL werden ausführbare Spezifikationen dennoch nicht als
generell irrelevant angesehen. Wie bereits anklang, kann die Erstellung und Verfeinerung abstrakter Prototypen durchaus ein effizientes Vorgehensmodell darstellen. Wie im
vorliegenden Projekt umgesetzt, sollte der Implementierung allerdings die Aufstellung
von Strukturmodellen vorausgehen, da codebasierte Methoden prinzipbedingt zwar die
Dynamik eines Systems präzise beschreiben, dem menschlichen Betrachter aber keinen
unmittelbaren Überblick über die Systemstruktur erlauben.
Wichtig ist ferner die Einsicht, daß die Spezifikation zwar Teile der Implementierung
unterdrückt, sich aber nicht auf einer höheren Abstraktionsebene bewegt. Für konkrete
Systeme ist eine solche Beschreibung häufig sinnvoll, besonders, wenn sie kritische
Abläufe, aufwendige Algorithmen oder komplexe Protokolle enthalten, die auf diese
Weise vorab getestet werden können. Der Fall der Cb-Laufzeitumgebung macht
allerdings deutlich, daß eine vollständige und detaillierte Spezifikation dieser Form
einer Implementierung gleichkommt. Eine Sprache für ausführbare Spezifikationen
sollte daher mit einer Methodik zur sinnvollen Gliederung und Vereinfachung verbunden sein.
Eine Beschreibung des Metamodells durch eine ausführbare Spezifikation weist auf
zwei Ebenen Probleme auf. Um die angestrebte Validierung des Metamodells zu
erreichen, ist die Durchführung von Tests notwendig. Diese müßten die Form von
Simulationen konkreter agentenbasierter Anwendungssysteme annehmen, die die
Spezifikation des Metamodells als Laufzeitumgebung nutzen. Zu diesem Zweck müßte
die Spezifikation der Implementierung nicht nur einer, sondern gleich mehrerer
Agentenplattformen gleichkommen, was auch bei entsprechenden Vereinfachungen im
gegebenen zeitlichen Rahmen schlicht nicht umzusetzen ist.
– 195 –
Der zweite Einwand ist prinzipieller Natur. Das Metamodell und ausführbare Spezifikationen bewegen sich auf unvereinbaren Abstraktionsebenen, die durch ihre unterschiedlichen Aussageabsichten bedingt sind. Die Spezifikationen verfolgen das Ziel, die
Prozesse in einem System möglichst k o nk r e t und u n z w e i d e u t i g zu beschreiben.
Das Metamodell soll dagegen eine Begriffswelt definieren, die auf eine möglichst breite
Auswahl von Ansätzen anwendbar ist, was eine gewisse Dehnbarkeit der Begriffe
voraussetzt. Die Semantik der Begriffe und ihrer Beziehungen soll zwar ebenfalls
möglichst präzise beschrieben werden, dies geschieht jedoch auf der Ebene a b s t r a k t e r P r i n z i p i e n . Das Metamodell ließe sich wahrscheinlich in eine ausführbare
Spezifikation zwängen, wobei aber, wie etwa durch das Beispiel des Purpose illustriert
wird, jene abstrakteren Aspekte leiden würden, deren Rolle weniger operativ als
vielmehr methodisch-konzeptionell ist.
Dies läßt sich anschaulich mit einer Analogie rechtfertigen: UML Use Cases sind
zweifellos ein sinnvolles und populäres Element der Modellierungssprache. Sie dienen
einer konzeptionellen Strukturierung des betrachteten Systems und seiner Prozesse,
wobei die sehr einfache operative Semantik der entsprechenden Diagramme auf einer
primär nominalen Ebene arbeitet. Die Use Cases motivieren daher zwar die konkreteren
Klassen-, Sequenz- und Kollaborationsdiagramme, werden dort aber nicht für operative
Zwecke referenziert und sind konsequenterweise auch im implementierten System nur
abstrakt. Eine rein operative Beschreibung von UML würde daher zwar die einfachen
Beziehungen zwischen den Use Cases innerhalb des entsprechenden Teilmodells
abbilden, ihre konzeptionelle Rolle für das Gesamtmodell jedoch nicht erfassen. Somit
würde eine solche Spezifikation der Modellierungssprache einen wesentlichen Teil ihres
Konzepts und ihrer Ausdrucksfähigkeit unterschlagen.
Abschließend läßt sich ein Bogen zur Argumentation von McCarthy bezüglich der
Rechtfertigung einer mentalistischen Perspektive auf Programme98 schlagen: Auch
wenn durch den Quellcode eigentlich alles gesagt ist, kann eine abstraktere Beschreibung der zugrundeliegenden Konzepte in vielen Fällen zumindest hilfreich sein.
98
Siehe Abschnitt 2.3.2.1, S. 21.
– 196 –
5
Fazit und Ausblick
Auf der Grundlage des aktuellen Standes der Forschung ist ein umfassendes Metamodell der agentenorientierten Softwareentwicklung aufgestellt worden. Es definiert eine
Terminologie, die die exakte Beschreibung einer breitgefächerten Auswahl von
Ansätzen, Technologien und Anwendungen aus Theorie und Praxis erlaubt.
Als wesentliche Leistung des Metamodells wird die Überbrückung des Gegensatzes
zwischen der softwaretechnischen und der mentalistischen Sicht des Agentenbegriffes
angesehen, die durch die systematische Abstützung der abstrakten Konzepte der
konzeptuellen Ebene auf die implementierungsnahen Begriffe der technischen Ebene
erreicht wird. Das Process Model vermeidet elegant das Problem, aus jedem aktiven
Systemelement einen Agenten machen zu müssen. Das Service Model definiert ein
einheitliches Konzept zur Beschreibung der Infrastruktur verschiedener Agentenplattformen.
Einen innovativen Beitrag leistet das Metamodell primär auf der konzeptuellen Ebene,
wobei besonders das Behavioral Model und das Social Model herauszustellen sind. Die
Konzepte des Legal Stance, des Behaviors und der Professed Intention erlauben es
gemeinsam, diverse semantische Probleme mentalistischer Theorien, namentlich das
‚Gedankenlesen’ und die Entstehung von Idiolekten bei der Kommunikation und den
unbeschränkten Erfahrungshorizont und die nicht beabsichtigten Konsequenzen bei
Denkprozessen, zu umgehen.
Die anschließende Studie zur formalen Spezifikation der Dynamik des Metamodells hat
ergeben, daß eine Umsetzung in ein operatives Modell nicht nur nicht praktikabel,
sondern hinsichtlich der angestrebten Validierung des Metamodells auch inadäquat sein
dürfte.
Dessen ungeachtet bleibt das dargelegte Ziel, die Konsistenz und Aussagekraft des
Modells zu überprüfen, bestehen. Für das weitere Vorgehen liefert hier die zu Beginn
des Modellentwurfs zitierte Beobachtung99, daß der Erfolg einer Theorie primär von
99
Siehe Abschnitt 3.1.2, S. 58.
– 197 –
ihrer Fähigkeit zur adäquaten Beschreibung einer großen Anzahl von Phänomenen
abhängt, interessante Anregungen. Wird diese Überlegung als Grundlage eines Maßes
der Modellqualität genommen, liegt es nahe, die Eignung des Metamodells durch seine
praktische Anwendung auf eine möglichst vielfältige Auswahl realer Systeme zu
überprüfen. Interessant wäre hier unter anderem, das entsprechende Service Model für
den MASIF- bzw. FIPA-Standard aufzustellen.
Ein solches Projekt würde gleichzeitig einen idealen Rahmen bieten, um mit verschiedenen textuellen und grafischen Formalismen zur Beschreibung der einzelnen Teilmodelle zu experimentieren. Parallel könnten unterschiedliche Vorgehensmodelle getestet
werden, etwa eine von abstrakten Zielen ausgehende Modellierung im Gegensatz zu
einem inkrementellen, auf konkreten Wahrnehmungen aufbauenden Ansatz.
Die diversen genannten weiterführenden Arbeiten können insgesamt als Schritte in
Richtung eines mittelfristigen Ziels, der Schaffung einer neutralen Modellierungssprache zur Beschreibung agentenorientierter Systeme, gesehen werden. Ultimativ bestünde
die Hoffnung, durch eine etablierte Terminologie und anschauliche Formalismen dazu
beitragen zu können, daß Agententechnologie in der Weise allgemein anerkannt und
zwanglos eingesetzt wird, wie dies heute für die Objektorientierung der Fall ist.
– 198 –
Literaturverzeichnis
[Asimov 1994]
Asimov, Isaac: I, Robot. Nachdruck, Bantam Books, New York, 1994.
[Atkinson et al. 2000]
Atkinson, Rita L.; et al.: Hilgard's Introduction to Psychology. 13. Auflage, Harcourt Brace College Publishers, Orlando, 2000.
[Barnett/Schulte 2001]
Barnett, Michael; Schulte, Wolfram: The ABCs of Specification: AsmL, Behavior, and Components.
In: Informatica, 25 (4), November 2001.
[Bauer et al. 2001]
Bauer, Bernhard; Müller, Jörg P.; Odell, James: Agent UML: A formalism for specifying multiagent
interaction. In: Agent-Oriented Software Engineering. Hrsg.: Paolo Ciancarini, Michael Wooldridge. Springer, Berlin, S. 91-103, 2001.
[Becker/Schütte 1996]
Becker, Jörg; Schütte, Reinhard: Handelsinformationssysteme. Verlag mi Wissenschaft, Landsberg/Lech, 1996.
[Bellwood et al. 2002]
Bellwood, Tom; et al.: UDDI Version 3.0. Published Specification, 19. Juli 2002
URL: http://uddi.org/pubs/uddi-v3.00-published-20020719.htm Abrufdatum: 2003-03-01.
[BGB]
Bürgerliches Gesetzbuch (BGB) vom 18.08.1896. BGBl. III/FNA 400-2.
[Bonabeau et al. 1998]
Bonabeau, Eric; et al.: Routing in Telecommunication Networks with Smart Ant-Like Agents. In:
Proceedings of the Second International Workshop on Agents in Telecommunications Applications (IATA '98), 1998.
(CiteSeer: http://citeseer.nj.nec.com/bonabeau98routing.html).
[Booch 1994]
Booch, Grady: Object-oriented analysis and design with applications. Addison-Wesley, Reading,
1994.
[Booch et al. 1998]
Booch, Grady; Rumbaugh, James; Ivarson, Jacob: The Unified Modeling Language User Guide.
Addison-Wesley, Reading, 1998.
[Bölöni/Marinescu 1999]
Bölöni, Ladislaus; Marinescu, Dan C.: A Component Agent Model – from Theory to Implementation. Forschungsbericht, Computer Sciences Department, Purdue University, November 1999.
(CiteSeer: http://citeseer.nj.nec.com/392321.html).
[Boole 1847]
Boole, George: The Mathematical Analysis of Logic: Being an Essay towards a Calculus of Deductive Reasoning. Macmillan, Barclay, and Macmillan, Cambridge, 1847.
– 199 –
[Börger 1999]
Börger, Egon: High level system design and analysis using Abstract State Machines. In: Proceedings Current Trends in Applied Formal Methods (FM-Trends 98). Hrsg.: Dieter Hutter, Werner
Stephan, Paolo Traverso, Markus Ullmann. Lecture Notes in Computer Science 1641, S. 1-43,
Springer, Berlin, 1999.
[Bradshaw 1996]
Bradshaw, Jeffrey M.: KAoS: An Open Agent Architecture Supporting Reuse, Interoperability, and
Extensibility. In: Proceedings Tenth Knowledge Acquisition for Knowledge-Based Systems
Workshop, 1996.
[Bratman 1987]
Bratman, Michael E.: Intentions, Plans, and Practical Reason. Harvard University Press, Cambridge (USA), 1987.
[Bray et al. 2000]
Bray, Tim; Paoli, Jean; Sperberg-McQueen, C. M.; Maler, Eve: Extensible Markup Language
(XML) 1.0 (Second Edition). W3C Recommendation, 2. Auflage, 6. Oktober 2000.
URL: http://www.w3.org/TR/REC-xml/ Abrufdatum: 2003-03-01.
[Brazier et al. 1997]
Brazier, Frances M.T.; Dunin-Keplicz, Barabara M.; Jennings, Nicholas R.; Treur, Jan: DESIRE: Modelling Multi-Agent Systems in a Compositional Formal Framework. International Journal of
Cooperative Information Systems, 6 (1), S. 67-94, 1997.
[Bringsjord 1997]
Bringsjord, Selmer: Strong AI Is Simply Silly. AI Magazine, 18 (1), S. 9-10, 1997.
[Brooks 1986]
Brooks, Rodney A.: A robust layered control system for a mobile robot. In: IEEE Journal of Robotics and Automation, 2 (1), S. 14–23, 1986.
[Brooks 1990]
Brooks, Rodney A.: Elephants Don’t Play Chess. In: Designing Autonomous Agents. Hrsg.: Pattie Maes. S. 3-15, 1990.
[Brooks 1991]
Brooks, Rodney A.: Intelligence without representation. In: Artificial Intelligence 47, S. 139-159,
1991.
[Brooks 1995]
Brooks, Frederick P.: The Mythical Man-Month. Anniversary Edition, Addison-Wesley, Reading,
1995.
[Castelfranchi 1990]
Castelfranchi, Cristiano: Social Power: A Point Missed in Multi-Agent DAI and HCI. In: Decentralized AI. Hrsg.: Yves Demazeau, Jean-Pierre Muller. Elsevier Science, Amsterdam, S. 49-62,
1990.
[CERT 2001a]
CERT Coordination Center: CERT Advisory CA-2001-19 "Code Red" Worm Exploiting Buffer
Overflow In IIS Indexing Service DLL. 19. Juli 2001.
URL: http://www.cert.org/advisories/CA-2001-19.html Abrufdatum: 2003-02-15.
– 200 –
[CERT 2001b]
CERT Coordination Center: CERT Advisory CA-2001-26 Nimda Worm. 25. September 2001.
URL: http://www.cert.org/advisories/CA-2001-26.html Abrufdatum: 2003-02-15.
[Chen 1976]
Chen, Peter P.: The entity-relationship model: towards a unified view of data. In: ACM Transactions on Database Systems, 1 (1), S. 9-36, 1976.
[Christensen et al. 2001]
Christensen, Erik; et al.: Web Services Description Language (WSDL) 1.1. W3C Note, 15. März
2001. URL: http://www.w3.org/TR/2001/NOTE-wsdl-20010315 Abrufdatum: 2003-03-01.
[Cleve/Lämmel 2001]
Cleve, Jürgen; Lämmel, Uwe: Gottlob Frege - Logik und Grundlagenausbildung. UICEE Global
Journal of Engineering. Education, 5 (3), 2001.
[Coen 1995]
Coen, Michael H.: SodaBot: A Software Agent Construction System. MIT AI Lab, 1995.
(CiteSeer http://citeseer.nj.nec.com/coen95sodabot.html).
[Cohen/Levesque 1990]
Cohen, Philip R.; Levesque, Hector J.: Intention is choice with commitment. In: Artificial Intelligence, 42, S. 213–261, 1990.
[Copeland 2002]
Copeland, B. Jack: The Church-Turing Thesis. In: The Stanford Encyclopedia of Philosophy (Fall
2002 Edition). Hrsg.: Edward N. Zalta.
URL: http://plato.stanford.edu/archives/fall2002/entries/church-turing/ Abrufdatum: 2003-02-05.
[Dennett 1987]
Dennett, Daniel C.: The Intentional Stance. The MIT Press, Cambridge (USA), 1987.
[Duden 1990a]
o.V.: Agent. In: Duden Fremdwörterbuch. Hrsg.: Wissenschaftlicher Rat der Dudenredaktion. 5.
Auflage, Dudenverlag, Mannheim et al., 1990.
[Duden 1990b]
o.V.: Paradigma. In: Duden Fremdwörterbuch. Hrsg.: Wissenschaftlicher Rat der Dudenredaktion. 5. Auflage, Dudenverlag, Mannheim et al., 1990.
[eBay 2003]
eBay Inc.: Der eBay Bietagent. Online Hilfe, 2003.
URL: http://pages.ebay.de/help/buy/proxy-bidding.html Abrufdatum: 2003-02-15.
[Electronic Arts 2003a]
Electronic Arts Inc.: SimCity Classic Live.
URL: http://simcity.ea.com/play/simcity_classic.php Abrufdatum: 2003-02-20.
[Electronic Arts 2003b]
Electronic Arts Inc.: The Sims. URL: http://thesims.ea.com/ Abrufdatum: 2003-02-20.
– 201 –
[Excelente-Toledo et al. 2001]
Excelente-Toledo, Cora B.; Bourne, Rachel A.; Jennings, Nicholas R.: Reasoning about commitments and penalties for coordination between autonomous agents. Proceedings 5th International
Conference on Autonomous Agents (Agents-2001), Montreal, Canada, S. 131-138, 2001.
[Fallside 2001]
Fallside, David C. (Hrsg.): XML Schema Part 0: Primer. W3C Recommendation. 2. Mai 2001.
URL: http://www.w3.org/TR/xmlschema-0/ Abrufdatum: 2003-03-01.
[Ferstl/Sinz 1998]
Ferstl, Otto K.; Sinz, Elmar J.: Grundlagen der Wirtschaftsinformatik. 3. Auflage, Oldenbourg,
München, 1998.
[Fielding et al. 1999]
Fielding, Roy T.; et al: Hypertext Transfer Protocol – HTTP/1.1. Network Working Group, Request for Comments 2616, Juni 1999. URL: ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt
Abrufdatum: 2003-03-15.
[FIPA]
Federation for Intelligent Physical Agents: Offizielle Homepage.
URL: http://www.fipa.org Abrufdatum: 2003-02-15.
[FIPA C00001]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00001:
FIPA Abstract Architecture Specification.
URL: http://www.fipa.org/specs/fipa00001/ Abrufdatum: 2003-02-15.
[FIPA C00007]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00007:
FIPA Content Languages Specification.
URL: http://www.fipa.org/specs/fipa00007/ Abrufdatum: 2003-02-15.
[FIPA C00008]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00008:
FIPA SL Content Language Specification.
URL: http://www.fipa.org/specs/fipa00008/ Abrufdatum: 2003-02-15.
[FIPA C00009]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00009:
FIPA CCL Content Language Specification.
URL: http://www.fipa.org/specs/fipa00009/ Abrufdatum: 2003-02-15.
[FIPA C00010]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00010:
FIPA KIF Content Language Specification.
URL: http://www.fipa.org/specs/fipa00010/ Abrufdatum: 2003-02-15.
[FIPA C00011]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00011:
FIPA RDF Content Language Specification.
URL: http://www.fipa.org/specs/fipa00011/ Abrufdatum: 2003-02-15.
– 202 –
[FIPA C00023]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00023:
FIPA Agent Management Specification.
URL: http://www.fipa.org/specs/fipa00023/ Abrufdatum: 2003-02-15.
[FIPA C00025]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00025:
FIPA Interaction Protocol Library Specification.
URL: http://www.fipa.org/specs/fipa00025/ Abrufdatum: 2003-02-15.
[FIPA C00026-36]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00026
bis C00036: FIPA Interaction Protocol Specifications.
URL: http://www.fipa.org/specs/fipa00026/ etc. Abrufdatum: 2003-02-15.
[FIPA C00037]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00037:
FIPA Communicative Act Library Specification.
URL: http://www.fipa.org/specs/fipa00037/ Abrufdatum: 2003-02-15.
[FIPA C00061]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00061:
FIPA ACL Message Structure Specification.
URL: http://www.fipa.org/specs/fipa00061/ Abrufdatum: 2003-02-15.
[FIPA C00067]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00067:
FIPA Agent Message Transport Service Specification.
URL: http://www.fipa.org/specs/fipa00067/ Abrufdatum: 2003-02-15.
[FIPA C00086]
Federation for Intelligent Physical Agents: FIPA 2000 Standard Specification, Document C00086:
FIPA Ontology Service Specification.
URL: http://www.fipa.org/specs/fipa00086/ Abrufdatum: 2003-02-15.
[FIPA OS]
FIPA OS: Projekthomepage. URL: http://fipa-os.sourceforge.net/ Abrufdatum: 2003-02-15.
[Fisher 1993]
Fisher, Michael: Concurrent METATEM – A Language for Modeling Reactive Systems. In: Parallel Architectures and Languages, Europe (PARLE), München, Springer, 1993.
[Foner 1993]
Foner, Leonard N.: What's An Agent Anyway? A Sociological Case Study. MIT Media Laboratory, Boston, Technical Report, Agents Memo 93-01, 1993.
[Fou 2001]
Fou, John: Web Services and Mobile Intelligent Agents - Combining Intelligence with Mobility.
Oktober 2001.
URL: http://www.webservicesarchitect.com/content/articles/fou02.asp Abrufdatum: 2003-03-01.
– 203 –
[Franklin/Graesser 1997]
Franklin, Stan; Graesser, Art: Is it an Agent, or just a Program?: A Taxonomy for Autonomous
Agents. In: Proceedings of the Third International Workshop on Agent Theories, Architectures,
and Languages. Hrsg.: Jörg P. Müller, Michael Wooldridge, Nicholas R. Jennings. S. 21-36,
Springer, Berlin, 1997.
[Frege 1879]
Frege, Gottlob: Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen
Denkens, Halle, Berlin, 1879.
[Gams 1995]
Matjaž Gams: Strong vs. Weak AI. In: Informatica, 19, S. 479-483, 1995.
[Gödel 1931]
Gödel, Kurt: Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme I. Monatshefte für Mathematik und Physik, 38, S. 173-198, 1931.
[Gosling et al. 1996]
Gosling, James; Joy, Bill; Steele, Guy: The Java Language Specification. Addison-Wesley, Reading, 1996.
[Grieskamp/Tillmann 2003]
Grieskamp, Wolfgang; Tillmann, Nikolai: The AsmL Standard Library. Sprachreferenz, 6. Januar
2003. URL: http://research.microsoft.com/fse/AsmL/doc/AsmLStandardLibraryReference.doc
Abrufdatum: 2003-01-10.
[Gruber 1993]
Gruber, Tom R.: A translation approach to portable ontologies. Knowledge Acquisition, 5 (2),
S. 199-220, 1993.
[Gudgin et al. 2002a]
Gudgin, Martin; et al. (Hrsg.): SOAP Version 1.2 Part 1: Messaging Framework. W3C Candidate
Recommendation, 19. Dezember 2002.
URL: http://www.w3.org/TR/2002/CR-soap12-part1-20021219 Abrufdatum: 2003-03-01.
[Gudgin et al. 2002b]
Gudgin, Martin; et al. (Hrsg.): SOAP Version 1.2 Part 2: Adjuncts. W3C Candidate Recommendation, 19. Dezember 2002.
URL: http://www.w3.org/TR/2002/CR-soap12-part2-20021219 Abrufdatum: 2003-03-01.
[Gurevich 1988]
Gurevich, Yuri: Logic and the challenge of computer science. In: Current Trends in Theoretical
Computer Science. Hrsg.: Egon Börger. Computer Science Press, S. 1-57, 1988.
[Gurevich 1995]
Gurevich, Yuri: Evolving Algebra 1993: Lipari Guide. In: Specification and Validation Methods.
Hrsg.: Egon Börger. Oxford University Press, S. 9-36, 1995.
[Gurevich 1996]
Gurevich, Yuri: Evolving Algebras: An Attempt To Discover Semantics. Electrical Engineering
and Computer Science Department, University of Michigan, 1996.
URL: http://www.eecs.umich.edu/gasm/tutorial/tutorial.html Abrufdatum: 2003-01-02.
– 204 –
[Gurevich 2000]
Gurevich, Yuri: Sequential Abstract State Machines Capture Sequential Algorithms. ACM Transactions on Computational Logic, 1 (1), S. 77-111, 2000.
[Harrison 1995]
Harrison, Colin G.; Chess, David M.; Kershenbaum, Aaron: Mobile Agents: Are They a Good Idea?
Forschungsbericht RC 19887, IBM Research Division, T.J. Watson Research Center, Yorktown
Heights, New York, März 1995.
(CiteSeer: http://citeseer.nj.nec.com/chess95mobile.html).
[Hayes-Roth1995]
Hayes-Roth, Barbara: An Architecture for Adaptive Intelligent Systems. Artificial Intelligence:
Special Issue on Agents and Interactivity, 72, S. 329-365, 1995.
[Hewitt 1977]
Hewitt, Carl: Viewing control structures as patterns of passing messages. Journal of Artifical Intelligence, 8 (3), S. 323-363, 1977.
[Hintikka 1962]
Hintikka, Jaakko: Knowledge and Belief. Cornell University Press, Ithaca, 1962.
[Hogg/Jennings 1997]
Hogg, Lisa M.; Jennings, Nicholas R.: Socially Rational Agents. In: Proceedings AAAI Fall Symposium on Socially Intelligent Agents, Boston, S. 61-63, 1997.
[Hohl 1999]
Hohl, Fritz (Hrsg.): The Mobile Agent List. Universität Stuttgart, 1999.
URL: http://www.informatik.uni-stuttgart.de/ipvr/vs/projekte/mole/mal/mal.html Abrufdatum:
2003-02-01.
[Holten 1999]
Holten, Roland: Entwicklung von Führungsinformationssystemen. Ein methodenorientierter Ansatz. Deutscher Universiätsverlag, Wiesbaden, 1999.
[Huget 2002a]
Huget, Marc-Philippe: Agent UML Class Diagrams Revisited. Technical Report ULCS-02-013,
Department of Computer Science, University of Liverpool, 2002.
(CiteSeer: http://citeseer.nj.nec.com/article/huget02agent.html).
[Huget 2002b]
Huget, Marc-Philippe: Extending Agent UML Protocol Diagrams. Technical Report ULCS-02014, Department of Computer Science, University of Liverpool, 2002.
(CiteSeer: http://citeseer.nj.nec.com/huget02extending.html).
[Huggins 2003]
Huggins, Jim: Abstract State Machines. A Formal Method for Specification and Verification.
URL: http://www.eecs.umich.edu/gasm/ Abrufdatum: 2003-01-16.
[IBM 1997]
IBM Research: IBM Aglets Software Development Kit. Technical Report Home Page, Tokyo Research Laboratory, 1997.
URL: http://www.ibm.co.jp/trl/aglets/ Abrufdatum: 2003-02-01.
– 205 –
[id Software]
id Software: Homepage. URL: http://www.idsoftware.com/ Abrufdatum: 2003-02-15.
[IKV 1998]
IKV++ Techonologies AG: GrassHopper, an intelligent mobile agent platform written in 100%
pure Java. 1998. URL: http://www.grasshopper.de/ Abrufdatum: 2003-02-01.
[IntelliOne 2001]
IntelliOne Technologies: AgentBuilder, Agent Construction Tools., 2001.
URL: http://www.agentbuilder.com/AgentTools/ Abrufdatum: 2003-02-01.
[JADE]
Java Agent DEvelopment Framework: Projekthomepage.
URL: http://sharon.cselt.it/projects/jade/ Abrufdatum: 2003-02-15.
[Jennings 1999]
Jennings, Nicholas R.: Agent-based Computing: Promise and Perils. Proceedings 16th International Joint Conference on Artificial Intelligence (IJCAI-99), Stockholm, S. 1429-1436, 1999.
[Jennings 2000]
Jennings, Nicholas R.: On Agent-Based Software Engineering. Artificial Intelligence, 117 (2),
S. 277-296, 2000.
[Jennings/Campos, 1997]
Jennings, Nicholas R.; Campos, Jesus R.: Towards a Social Level Characterisation of Socially Responsible Agents. In: IEE Proceedings on Software Engineering, 144 (1), S. 11-25, 1997.
[JFIPA]
Java FIPA: Projekthomepage. URL: http://www.jfipa.org/ Abrufdatum: 2003-02-15.
[Kaelbling 1986]
Kaelbling, Leslie P.: An architecture for intelligent reactive systems. In: Reasoning About Actions
& Plans – Proceedings of the 1986 Workshop. Hrsg.: Michael P. Georgeff, Amy L. Lansky.
Morgan Kaufmann Publishers, San Mateo, S. 395-410, 1986.
[Kalenka 2001]
Kalenka, Susanne: Modelling Social Interaction Attitudes in Multi-Agent Systems. Dissertation,
Department of Electronic Engineering, Queen Mary, University of London, London, 2001.
[Kalenka/Jennings 1995]
Kalenka, Susanne; Jennings, Nicholas R.: On Social Attitudes: A Preliminary Report. In: Proceedings First International Workshop on Decentralised Intelligent Multi-Agent Systems, Krakau,
S. 233-240, 1995.
[Kant 1787]
Kant, Immanuel: Kritik der reinen Vernunft. 2. Auflage, 1787. In: Kants Werke, Akademieausgabe, Band III, de Gruyter, Berlin, 1968.
[Kendall et al. 1997]
Kendall, Elisabeth. A.; Suresh, C. B.; Murali Krishna, P. V.; Pathak, C.V.: The Layered Agent Pattern
Language. In: Pattern Languages of Programming (Plop '97), September 1997.
– 206 –
[Kendall et al. 1998a]
Kendall, Elisabeth A.; Palanivelan, Uma; Kalikivayi, Panvalkar: Capturing and Structuring Goals:
Analysis Patterns. In: European Pattern Languages of Programming, (EuroPlop '98), Juli 1998.
[Kendall et al. 1998b]
Kendall, Elisabeth. A.; Suresh, C. B.; Murali Krishna, P. V.; Pathak, C.V.: An Application Framework
for Intelligent and Mobile Agents. In: Proceedings Autonomous Agents '98, Mai 1998.
[Kendall et al. 1999]
Kendall, Elisabeth. A.; Suresh, C. B.; Murali Krishna, P. V.; Pathak, C.V.: A Framework for Agent Systems. In: Implementing Applications Frameworks: Object Oriented Frameworks at Work. Hrsg.:
Mohamed Fayad, Douglas C. Schmidt, Ralph Johnson. Wiley & Sons, New York, 1999.
[Kitano et al. 1997]
Kitano, Hiroaki; et al.: RoboCup: A Challenge Problem for AI. AI Magazine, 18 (1), S. 73-85,
1997. (Vgl. auch: URL: http://www.robocup.org).
[Kripke 1963]
Kripke, Saul: Semantical analysis of modal logic. In: Zeitschrift für Mathematische Logik und
Grundlagen der Mathematik, 9, S. 67-96, 1963.
[KSE]
The Knowledge Sharing Effort (KSE): Offizielle Homepage.
URL: http://www.cs.umbc.edu/kse/ Abrufdatum: 2003-02-15.
[KSE 1993]
The Knowledge Sharing Effort (KSE): KQML Knowledge Query and Manipulation Language
Specification Document. 1993.
URL: http://www.cs.umbc.edu/kqml/kqmlspec.ps Abrufdatum: 2003-02-15.
[KSE 1995]
The Knowledge Sharing Effort (KSE): KIF Knowledge Interchange Format Specification Document. 1995. URL: http://logic.stanford.edu/kif/specification.html Abrufdatum: 2003-02-15.
[Kuhn 1996]
Kuhn, Thomas S. : The Structure of Scientific Revolutions. 3. Auflage, The University of Chicago
Press, Chicago, 1996.
[Labrou 2001]
Labrou, Yannis: Standardizing agent communication. In: Lecture Notes in Computer Science,
2086, S. 74-97, 2001.
[Labrou et al. 1999]
Labrou, Yannis; Finin, Tim; Peng, Yun: Agent communication languages: the current landscape.
In: IEEE Intelligent Systems, 14 (2), S. 45-52, 1999.
[Labrou/Finin 1997a]
Labrou, Yannis; Finin, Tim: A Proposal for a new KQML Specification. TR CS-97-03, Computer
Science and Electrical Engineering Department, University of Maryland, Baltimore, 1997.
– 207 –
[Labrou/Finin 1997b]
Labrou, Yannis; Finin, Tim: Comments on the specification for FIPA '97 Agent Communication
Language. URL: http://www.cs.umbc.edu/kqml/papers/fipa/comments.shtml Abrufdatum: 200302-05.
[Lawton 1996]
Lawton, George: Agents to roam the internet. In: SunWorld Online 10 (10), 1996.
URL: http://sunsite.uakom.sk/sunworldonline/swol-10-1996/swol-10-agent.html Abrufdatum:
2003-01-12.
[Lind 1998]
Lind, Jürgen: The EMS Model. Forschungsbericht TM-98-09 des Deutschen Forschungszentrums
für Künstliche Intelligenz, 1998.
(CiteSeer: http://citeseer.nj.nec.com/lind01specifying.html).
[Lind 2000]
Lind, Jürgen: Issues in Agent-Oriented Software Engineering. In: Proceedings of the First International Workshop on Agent-Oriented Software Engineering (AOSE2000), 2000.
[Lind 2001]
Lind, Jürgen: Specifying Agent Interaction Protocols with Standard UML. In: Proceedings Agent
Oriented Software Engineering (AOSE) 2001, S. 136-147, 2001.
(CiteSeer: http://citeseer.nj.nec.com/lind01specifying.html).
[Lingnau et al. 1995]
Lingnau, A.; Drobnik, O.; Domel, P.: An HTTP-based infrastructure for mobile agents. In: Proceedings WWW J. (Fourth International WWW Conference), Dezember 1995.
[Lionhead]
Lionhead Studios: Black & White Homepage.
URL: http://www2.bwgame.com/ Abrufdatum: 2003-02-15.
[Loebner 2001]
Loebner, Hugh G.: The Loebner Prize. Offizielle Homepage, 2001.
URL: http://www.loebner.net/Prizef/loebner-prize.html Abrufdatum: 2003-02-15.
[Maes 1994]
Maes, Pattie: Agents that reduce work and information overload. Communications of the ACM,
37 (7), S. 31-40, 1994.
[Maes 1995]
Maes, Pattie: Artificial Life Meets Entertainment: Life like Autonomous Agents. Communications
of the ACM, 38 (11), S. 108-114, 1995.
[McCarthy 1979]
McCarthy, John: Ascribing mental qualities to machines. In: Philosophical Perspectives in Artificial Intelligence. Hrsg.: Martin Ringle. Harvester Press, Brighton, 1979.
[Meyer 1997]
Meyer, Bertrand: Object-oriented Software Construction. 2. Auflage, Prentice-Hall, New York,
1997.
– 208 –
[Meyers 1987]
o. V.: Buridans Esel. In: Meyers Grosses Taschenlexikon. Hrsg.: Werner Digel, Gerhard Kwiatkowski. 2. Auflage, BI-Tachenbuchverlag, Mannheim et al., S. 158, 1987.
[Microsoft 1997]
Microsoft Corporation: New Features for the Microsoft Office 97 Product Family.
URL: http://support.microsoft.com/default.aspx?id=/support/office/content/office97/features.asp
Abrufdatum: 2003-02-05.
[Microsoft 2001]
Microsoft Corporation: Microsoft Clippy.
URL: http://www.microsoft.com/Office/clippy/ Abrufdatum: 2003-02-05.
[Microsoft 2002]
Microsoft Research: AsmL for Microsoft .NET. Version 2.1.4, 22. Oktober 2002.
URL: http://research.microsoft.com/fse/AsmL/download.aspx Abrufdatum: 2003-01-02.
[Microsoft 2003a]
Microsoft Research: AsmL for Microsoft .NET. Version 2.1.5.2, 13. Januar 2002.
URL: http://research.microsoft.com/fse/AsmL/download.aspx Abrufdatum: 2003-01-14.
[Microsoft 2003b]
Microsoft Research: AsmL for Microsoft .NET. Version 2.1.5.6, 28. Februar 2003.
URL: http://research.microsoft.com/fse/AsmL/download.aspx Abrufdatum: 2003-03-01.
[Microsoft 2003c]
Microsoft Research: Foundations of Software Engineering. Offizielle Homepage, 2003.
URL: http://research.microsoft.com/fse/ Abrufdatum: 2003-03-05.
[Microsoft 2003d]
Microsoft Research: AsmL. Offizielle Homepage, 2003.
URL: http://research.microsoft.com/fse/AsmL/ Abrufdatum: 2003-03-05.
[Microsoft 2003e]
Microsoft Corporation: Microsoft .NET Framework. Offizielle Homepage,
URL: http://msdn.microsoft.com/netframework/ Abrufdatum: 2003-03-05.
2003.
[Microsoft 2003f]
Microsoft Corporation: Microsoft Visual C# .NET. Offizielle
URL: http://msdn.microsoft.com/vcsharp/ Abrufdatum: 2003-03-05.
2003.
Homepage,
[Minsky 1968]
Minsky, Marvin L. (Hrsg.): Semantic Information Processing. MIT Press, Cambridge,1968.
[Modeled Computation 2001]
Modeled Computation LLC: Executable Specifications: Creating Testable, Enforceable Designs.
Whitepaper, 9. Februar 2001. URL: http://research.microsoft.com/fse/ESpecTesting.doc
Abrufdatum: 2003-01-15.
[Modeled Computation 2002]
Modeled Computation LLC: AsmL: The Abstract State Machine Language. Sprachreferenz,
7. Oktober 2002. URL: http://research.microsoft.com/fse/AsmL/doc/AsmL2_Reference.doc
Abrufdatum: 2003-01-02.
– 209 –
[Moore et al. 2003]
Moore, David et al.: The Spread of the Sapphire/Slammer Worm. Cooperative Association for
Internet Data Analysis (CAIDA), 4. Februar 2003.
URL: http://www.caida.org/outreach/papers/2003/sapphire/ Abrufdatum: 2003-02-18.
[Murphy/Picco 2002]
Murphy, Amy L.; Picco, Gian Pietro: Reliable Communication for Highly Mobile Agents.
In: Autonomous Agents and Multi-Agent Systems, 5, S. 81-100, 2002.
[Newell1982]
Newell, Adrian: The Knowledge Level. Artificial Intelligence 18, S. 87-127, 1982.
[Odell 1999]
Odell, James: Objects and agents: How do they differ? Working Paper Version 2.2, 1999.
URL: http://www.jamesodell.com/Agents_and_Objects.pdf Abrufdatum: 2003-01-12.
[Odell et al. 2000]
Odell, James; Parunak, H. Van Dyke; Bauer, Bernhard: Extending UML for Agents. In: Proceedings
of the Agent-Oriented Information Systems Workshop at the 17th National Conference on Artificial Intelligence, 2000.
(CiteSeer: http://citeseer.nj.nec.com/odell00extending.html).
[Odell et al. 2002]
Odell, James; Parunak, H. Van Dyke; Fleischer, Mitch; Breuckner, Sven: Modeling Agents and their
Environment. In: Proceedings AOSE Workshop at AAMAS 2002, Springer, Berlin, 2002.
[OMG]
Object Management Group: Offizielle Homepage.
URL: http://www.omg.org Abrufdatum: 2003-02-15.
[OMG 1998]
GMD FOCUS; IBM Corporation: Mobile Agent System Interoperability Facilities Specification.
Joint Submission, 1997. Hrsg.: OMG Revision Task Force, 1998.
URL: http://cgi.omg.org/cgi-bin/doc?orbos/98-03-09.pdf. Abrufdatum: 2003-02-15.
[OMG 2002]
Object Management Group: Common Object Request Broker Architecture: Core Specification.
Hrsg.: CORBA Core Revision Task Force. Version 3.0.2, 6. Dezember 2002.
URL: http://www.omg.org/cgi-bin/doc?formal/02-12-06.pdf. Abrufdatum: 2003-03-01.
[Ovum 1994]
Ovum Report: Intelligent agents: the new revolution in software, 1994.
[Page et al. 1998]
Page, Lawrence; Brin, Sergey; Motwani, Rajeev; Winograd, Terry: The PageRank citation ranking:
Bringing order to the Web. Stanford Digital Library Technologies Project, 1998.
(CiteSeer: http://citeseer.nj.nec.com/page98pagerank.html).
[Parsons et al. 2002]
Parsons, Simon; Jennings, Nicholas R.; Sabater, Hordi; Sierra, Carles: Agent specification using multi-context systems. In: Foundations and Applications of Multi-Agent Systems: UKMAS 19962000. Hrsg.: Mark d’Inverno et al. Springer, Berlin, S. 205-226, 2002.
– 210 –
[Parunak 2000]
Parunak, H. Van Dyke: A Practitioners' Review of Industrial Agent Applications. In: Autonomous
Agents and Multi-Agent Systems, 3, S. 389-407, 2000.
[Prasse/Rittgen 1998]
Prasse, Michael; Rittgen, Peter: Bemerkungen zu Peter Wegners Ausführungen über Interaktion
und Berechenbarkeit. In: Informatik Spektrum, 21 (3), S. 141 – 146, 1998.
[PopTop 2003]
PopTop Software: Tropico. URL: http://www.poptop.com/Tropico.htm Abrufdatum: 2003-02-20.
[Rao/Georgeff 1991]
Rao, Anand S. ; Georgeff, Michael P.: Modeling rational agents within a BDI-architecture. In: Proceedings of Knowledge Representation and Reasoning (KR&R-91). Hrsg.: Richard Fikes, Erik
Sandewall. Morgan Kaufmann Publishers, San Mateo, S. 473-484, 1991.
[Repenning 1993]
Repenning, Alexander: Agentsheets: A tool for building domain-oriented dynamic, visual environments. Technical Report CU-CS-693-93, Department of Computer Science, University of
Colorado at Boulder, 1993.
[RFC Editor]
o.V.: Request for Comments Editor. URL: http://www.rfc-editor.org Abrufdatum: 2003-02-15.
[Rosenschein/Genesereth 1985]
Rosenschein, Jeffrey S. ; Genesereth, Michael R.: Deals among rational agents. In: Proceedings of
the Ninth International Joint Conference on Artificial Intelligence (IJCAI-85), Los Angeles,
S. 91–99, 1985.
[Russell/Norvig 1995]
Russell, Stuart J.; Norvig, Peter: Artificial Intelligence: A Modern Approach. Prentice Hall, Englewood Cliffs, 1995.
[Schneider/Voß 2001]
Schneider, Bernd; Voß, Andreas: KI in der betrieblichen Anwendung: Einleitung. Lehrstuhl für
Wirtschaftsinformatik
und
Interorganisationssysteme,
Universität
Münster,
2001.
URL: http://www-wi.uni-muenster.de/wi/lehre/wbs/ws01-02/kiba-kapitel1.pdf Abrufdatum:
2003-02-05.
[Schütte 1998]
Schütte, Reinhard: Grundsätze ordnungsmäßiger Referenzmodellierung. Konstruktion konfigurations- und anmpassungsorientierter Modelle. neue betriebswirtschaftliche forschung (nbf),
Wiesbaden, 1998.
[Searle 1980]
Searle, John R.: Minds, Brains, and Programs. In: The Behavioral And Brain Sciences, 3, S. 417424, 1980.
[Searle 1990]
Searle, John R.: Is the Brain a Digital Computer? APA Proceedings, 64 (3), S. 21-37, 1990.
– 211 –
[Shieber 1994]
Shieber, Stuart M.: Lessons from a Restricted Turing Test. Communications of the ACM, 37 (6),
S. 70-78, 1994.
[Shoham 1990]
Shoham, Yoav: Agent-oriented programming. Technical Report STAN–CS–1335–90, Computer
Science Department, Stanford University, Stanford, 1990.
[Shoham 1993]
Shoham, Yoav: Agent-oriented programming. In: Artificial Intelligence, 60 (1), S. 51-92, 1993.
[Shortliffe 1976]
Shortliffe, Edward H.: Computer-Based Medical Consultation: MYCIN. Elsevier Science, Amsterdam, 1976.
[Silva 1999]
Silva, Alberto R.: AgentSpace Overview. INESC & IST Technical University of Lisbon, 1999.
URL: http://berlin.inesc.pt/agentspace/main-eng.html Abrufdatum: 2003-02-15.
[Silva et al. 2001]
Silva, Alberto R.; Romão, Artur; Deugo, Dwight; Da Silva, Miguel M.: Towards a Reference Model
for Surveying Mobile Agent Systems. In: Autonomous Agents and Multi-Agent Systems, 4,
S. 187–231, 2001.
[Singh 1998a]
Singh, Munidar P.: Agent communication languages: Rethinking the principles. In: IEEE Computer, 31 (12), S. 40-47, 1998.
[Singh 1998b]
Singh, Munidar P.: The Intentions of Teams: Team Structure, Endodeixis, and Exodeixis. In: Proceedings 13th European Conference on Artificial Intelligence. Hrsg.: Henri Prade. John Wiley
and Sons, Chichester, S. 303-307, 1998.
(CiteSeer: http;//citeseer.nj.nec.com/singh98intention.html).
[Slaney/Thiébaux 2001]
Slaney, John; Thiébaux, Sylvie: Blocks World revisited. In: Artificial Intelligence 125, S. 119-153,
2001.
[Smith et al. 1994]
Smith, David C., Cypher, Allen; Spohrer, Jim: (1994), KidSim: Programming Agents Without a
Programming Language. Communications of the ACM, 37 (7), S. 55-67, 1994.
[Strahringer 1996]
Strahringer, Susanne: Metamodellierung als Instrument des Methodenvergleichs - Eine Evaluierung am Beispiel objektorientierter Analysemethoden. Berichte aus der Betriebswirtschaft, Shaker, Aachen, 1996.
[Song et al. 1996]
Song, Hongjun; Franklin, Stan; Negatu, Aregahegn: SUMPY: A fuzzy software agent. In: Proceedings of the ISCA Conference on Intelligent Systems, Reno, S. 124-129, 1996.
– 212 –
[Stärk et al. 2001]
Stärk, Robert F.; Schmid, Joachim; Börger, Egon: Java and the Java virtual machine: definition,
verification, validation. Springer, Berlin et al., 2001.
[Strategor 1997]
Département Stratégie et Politique d’Entreprise du Groupe HEC: Strategor. Politique Générale de
l’Entreprise. 3. Auflage, Dunod, Paris, 1997.
[Steele 1990]
Steele, Guy L.: Common Lisp the Language, 2nd edition. Digital Press, Woburn, 1990.
[Stroustrup 2000]
Stroustrup, Bjarne: The C++ Programming Language, Special Edition. 3. Auflage, AddisonWesley, Reading, 2000.
[Sundsted 1998a]
Sundsted, Todd: An introduction to agents. In: JavaWorld, 3 (6), 1998. URL:
http://www.javaworld.com/javaworld/jw-06-1998/jw-06-howto.html Abrufdatum: 2003-01-12.
[Sundsted 1998b]
Sundsted, Todd: Agents on the move. In: JavaWorld, 3 (7), 1998. URL:
http://www.javaworld.com/javaworld/jw-07-1998/jw-07-howto.html Abrufdatum: 2003-01-12.
[Sun 2001]
Sun Microsystems: Java Remote Method Invocation Specification. Revision 1.8, 2001. URL:
http://java.sun.com/j2se/1.4/docs/guide/rmi/spec/rmiTOC.html Abrufdatum: 2003-03-01.
[Sunflowers 2003]
Sunflowers GmbH: Anno 1503. URL: http://www.anno1503.com Abrufdatum: 2003-02-20.
[Sycara 1998]
Sycara, Katia P.: Multiagent Systems. AI Magazine 19 (2), S. 79-92, 1998.
[Symantec 2003]
Symantec
Security
Response:
W32.Opaserv.Worm.
22.
Januar
2003.
URL:
http://securityresponse.symantec.com/avcenter/venc/data/w32.opaserv.worm.html Abrufdatum:
2003-02-18.
[TAHD 2000]
o.V.: Positivism. In: The American Heritage Dictionary of the English Language, 4. Auflage,
Houghton Mifflin, Boston, 2000.
[Teubner 1999]
Teubner, Rolf Alexander: Organisations- und Informationssystemgestaltung. Theoretische Grundlagen und integrierte Methoden. Gabler, Wiesbaden, 1999.
[Tveit 2001]
Tveit, Amund: A survey of Agent-Oriented Software Engineering. Report, Norwegian University
of Science and Technology, Mai 2000.
[Viroli/Omicini 2002a]
Viroli, Mirko; Omicini, Andrea: A Specification Language for Agents (sic) Observable Behaviour.
In: Proceedings International Conference on Artificial Intelligence (IC-AI'02). Hrsg.: Hamid R.
Arabnia, Youngsong Mun. CSREA Press, Las Vegas, S. 321-327, 2002.
– 213 –
[Viroli/Omicini 2002b]
Viroli, Mirko; Omicini, Andrea: Towards an Alternative Semantics for FIPA ACL. In: Proceedings
Cybernetics and Systems (EMCSR) 2002. Hrsg.: Robert Trappl. Austrian Society for Cybernetic
Studies, Wien, S. 689-694, 2002.
[Wallace 2001]
Wallace, Richard S. (Hrsg.): ALICE A. I. Foundation. Offizielle Homepage, 2001.
URL: http://www.alicebot.org/ Abrufdatum: 2003-02-15.
[Webster 2002a]
o.V.: Agent. In: Merriam-Webster Online Dictionary, Merriam-Webster, Inc., 2002.
URL: http://www.m-w.com/ Abrufdatum: 2003-02-05.
[Webster 2002b]
o.V.: Paradigm. In: Merriam-Webster Online Dictionary, Merriam-Webster, Inc., 2002.
URL: http://www.m-w.com/ Abrufdatum: 2003-02-05.
[Wegner 1997]
Wegner, Peter: Why interaction is more powerful than algorithms. Communications of the ACM,
40 (5), S. 80-91, 1997.
[Weiß 1989]
Weiß, Johannes (Hrsg.): Max Weber heute. Suhrkamp, Frankfurt am Main, 1989.
[West/Levy 1977]
West, Jerome D.; Levy, Ferdinand K.: Management Guide to PERT/CPM. Prentice Hall, Englewood Cliffs, 1977.
[White 1994]
White, J.: Telescript technology: The foundation for the electronic marketplace. Technical report,
General Magic, Inc., 1994.
[Williams/Kindel 1994]
Williams, Sara; Kindel, Charlie: The Component Object Model: A Technical Overview. Microsoft
Corporation, Oktober 1994. URL: http://msdn.microsoft.com/library/default.asp?url=/library/enus/dncomg/html/msdn_comppr.asp Abrufdatum: 2003-03-01.
[Winograd 1972]
Winograd, Terry: Understanding Natural Language. Academic Press, New York, 1972.
[Wolfram 1983]
Wolfram, Stephen: Cellular Automata. Los Alamos Science, 9, S. 2-21, Herbst 1983.
[Wood/Deloach 2001]
Wood, Mark F.; DeLoach, Scott A.: An overview of the multiagent systems engineering methodology. In: Agent-Oriented Software Engineering. Hrsg.: Paolo Ciancarini, Michael Wooldridge.
Springer, Berlin, S. 207-222, 2001.
[Wooldridge 1992]
Wooldridge, Michael: The Logical Modelling of Computational Multi-Agent Systems. Dissertation, Department of Computation, UMIST, Manchester, 1992.
– 214 –
[Wooldridge 1997a]
Wooldridge, Michael: Agent-based Software Engineering. In: IEE Proceedings on Software Engineering, 144 (1), S. 26-37, Februar 1997.
[Wooldridge 1997b]
Michael Wooldridge: Agents as a Rorschach Test: A Response to Franklin and Graesser.
In: Proceedings of the Third International Workshop on Agent Theories, Architectures, and
Languages. Hrsg.: Jörg P. Müller, Michael Wooldridge, Nicholas R. Jennings. S. 47-48, Springer, Berlin, 1997.
[Wooldridge 1998]
Wooldridge, Michael: Verifiable Semantics for Agent Communication Languages. In: Proceedings
of the Third International Conference on Multi-Agent Systems (ICMAS 98). Hrsg.: Yves Demazeau. IEEE Press, Juli 1998.
[Wooldridge et al. 2000]
Wooldridge, Michael; Jennings, Nicholas R.; Kinny, David: The Gaia Methodology for AgentOriented Analysis and Design. In: Autonomous Agents and Multi-Agent Systems, 3, S. 285-312,
2000.
[Wooldridge/Jennings 1995]
Wooldridge, Michael; Jennings, Nicholas R.: Intelligent agents: Theory and practice.
In: Knowledge Engineering Review, 10 (2), S. 115-152, 1995.
[Wooldridge/Jennings 1998]
Wooldridge, Michael; Jennings, Nicholas R.: Pitfalls of agent-oriented development.
In: Proceedings of the Second International Conference on Autonomous Agents (Agents ‘98).
Hrsg.: Katia P. Sycara, Michael Wooldridge. Minneapolis/St. Paul, MN, S. 385-391, Mai 1998.
[Wortmann 2002]
Wortmann, Felix: Konzeption und Implementierung einer Informationsklassifikationskomponente
auf der Basis von Neuronalen Netzen im Rahmen des PI-Agent Projektes. Diplomarbeit am
Lehrstuhl für Wirtschaftsinformatik und Informationsmangament, Universität Münster, Münster,
Januar 2002. (Vgl. auch: URL: http://www.pi-agent.com).
[W3C 2000]
World Wide Web Consortium: W3C Intellectual Rights Notice and Legal Disclaimers. Juni 2000.
URL: http://www.w3.org/Consortium/Legal/ipr-notice-20000612 Abrufdatum: 2003-02-15.
– 215 –
Abschließende Erklärung
Ich versichere hiermit, daß ich meine Masterarbeit Entwicklung eines Metamodells zur
Agentenorientierten Softwareentwicklung selbständig und ohne fremde Hilfe angefertigt
habe, und daß ich alle von anderen Autoren wörtlich übernommenen Stellen wie auch
die sich an die Gedankengänge anderer Autoren eng anlegenden Ausführungen meiner
Arbeit besonders gekennzeichnet und die Quellen zitiert habe.
Münster, den 20. März 2003
Florian Klein

Documentos relacionados