Internalising Interaction Protocols As First-Class Programming Elements in Multi Agent Systems
Total Page:16
File Type:pdf, Size:1020Kb
Internalising Interaction Protocols as First-Class Programming Elements in Multi Agent Systems by David J. Lillis, B.A., H.Dip., M.Sc. The thesis is submitted to University College Dublin for the degree of Doctor of Philosophy in the College of Science October 2012 arXiv:1711.02634v1 [cs.MA] 7 Nov 2017 School of Computer Science and Informatics Mr. John Dunnion (Head of School) Under the supervision of Dr. Rem W. Collier Mr. John Dunnion CONTENTS Abstract xi Acknowledgements xiv List of Publications xvi 1 Introduction 1 1.1 The Position of Multi Agent Systems . 2 1.2 Conversation Management for Multi Agent Systems . 4 1.3 Motivations . 5 1.4 Core Contributions . 7 1.5 Thesis Outline . 8 I Background 11 2 Agent Oriented Programming 12 2.1 Introduction . 12 2.2 What is an “agent”? . 13 2.2.1 Autonomy . 14 2.2.2 Social Ability/Interoperability . 14 2.2.3 Perception and Environment . 15 2.2.4 Proactivity and Reactivity . 15 2.2.5 Benevolence . 15 2.2.6 Mobility . 16 2.2.7 Other Properties . 16 2.2.8 Adopting a Definition . 17 2.3 Agent Oriented Programming . 18 2.4 AOP Frameworks and Languages . 19 2.4.1 AgentSpeak(L) and Jason . 23 2.4.2 Agent Factory . 25 2.4.3 GOAL . 28 2.4.4 JADE and Jadex . 30 2.4.5 2APL . 34 2.5 Summary . 38 i 3 Agent Communication 39 3.1 Introduction . 39 3.2 Standalone Agent Communication . 39 3.2.1 Speech Act Theory . 40 3.2.2 Criticisms of ACLs . 45 3.2.3 Social Semantics . 46 3.3 Conversation Models . 47 3.3.1 Finite State Machines . 48 3.3.2 Coloured Petri Nets . 56 3.3.3 Agent UML . 57 3.3.4 Dooley Graphs . 58 3.3.5 Global Session Types . 59 3.3.6 State Charts . 60 3.3.7 Commitment Machines . 61 3.3.8 Interaction based on Expectations . 62 3.3.9 Mental Models . 63 3.4 Implementations . 64 3.4.1 FIPA ACL . 64 3.4.2 KQML . 65 3.4.3 Custom . 65 3.5 Summary . 66 4 FIPA Communication Standards 67 4.1 Introduction . 67 4.2 FIPA ACL Message Structure . 68 4.3 FIPA ACL Standard Performatives . 69 4.4 FIPA Interaction Protocol Specifications . 74 4.4.1 Common Elements . 74 4.4.2 Bipartite Protocols . 75 4.4.3 Group Protocols . 78 4.4.4 Macro Protocols . 80 4.4.5 Experimental Standards . 81 4.4.6 Others . 82 4.4.7 Problems with FIPA Interaction Protocols . 83 4.5 Summary . 84 II ACRE: Agent Conversation Reasoning Engine 85 5 Introduction to ACRE 86 5.1 Introduction . 86 5.2 Aims and Features . 87 5.3 Definitions . 89 5.4 Interaction Protocols as Finite State Machines . 90 5.4.1 States . 91 5.4.2 Transitions . 91 5.5 Content Language . 92 ii 5.5.1 Mutable and Immutable Context for Variables . 93 5.5.2 Anonymous Variable . 94 5.6 Conversation Handling . 94 5.6.1 Identifying Candidate Conversations . 97 5.6.2 Identifying Candidates for New Conversations . 99 5.6.3 Advancing the Conversation . 99 5.7 Limitations . 101 5.7.1 Ordering of Actions . 101 5.7.2 Synchronisation . 102 5.7.3 Two Participants in Each Conversation . 105 5.7.4 Counting Iterations . 106 5.8 ACRE Protocol Examples . 106 5.8.1 Basic Variable Use: The Request/Response Protocol . 106 5.8.2 Anonymous Variables: The Status Report Protocol . 109 5.8.3 Rebinding Variables: Process Documents Example . 113 5.9 Exceptions to Interaction Protocol Flow . 121 5.9.1 Intentional Termination . 121 5.9.2 Timeouts . 122 5.9.3 Inadvertent Termination . 123 5.10 Comparison with Related Systems . 124 5.10.1 Other Finite State Machine Representations . 124 5.10.2 Global Session Types . 126 5.10.3 Coloured Petri Nets . 127 5.10.4 Approaches based on Semantics . 127 5.11 Summary . 128 6 ACRE Formal Model 129 6.1 Introduction . 129 6.2 Assumptions of the Model . 129 6.3 Notation . 130 6.3.1 Use of Ellipses . 131 6.4 Language . 132 6.4.1 Grounded Language . 132 6.5 Entities . 133 6.5.1 Bindings . 133 6.5.2 Performative . 134 6.5.3 Message . 135 6.5.4 State . 135 6.5.5 Transition . 136 6.5.6 Protocol . 137 6.5.7 Conversation . 138 6.5.8 Event . 138 6.5.9 Conversation Manager . 139 6.6 Predicates . 140 6.6.1 Matching . 140 6.6.2 Triggers . 142 6.6.3 Initiates . 143 iii 6.6.4 Advances . 144 6.7 Functions . 145 6.7.1 Head . 145 6.7.2 Tail . 145 6.7.3 Append . 146 6.7.4 New Conversation . 146 6.7.5 Combine . 147 6.7.6 Generating Bindings . 147 6.7.7 Applying Bindings . 150 6.7.8 Advance . 152 6.8 Operational Semantics . 153 6.8.1 Start . 154 6.8.2 Initialise . 155 6.8.3 Match . 155 6.8.4 Fail . 156 6.8.5 New . 157 6.8.6 Update . 158 6.8.7 Done . 160 6.9 Example . 160 6.9.1 Modelling . 160 6.9.2 Start . 162 6.9.3 First Iteration . ..