Micro-Agents Revisited: a Modern Reimplementation of the Micro-Agent Layer of the Otago Agent Platform (OPAL)

Total Page:16

File Type:pdf, Size:1020Kb

Micro-Agents Revisited: a Modern Reimplementation of the Micro-Agent Layer of the Otago Agent Platform (OPAL) Fachbereich 4: Institut fur¨ Wirtschafts- und Verwaltungsinformatik Micro-agents revisited: A Modern Reimplementation of the Micro-agent Layer of the Otago Agent Platform (OPAL) Masterarbeit zur Erlangung des Grades eines Master of Science im Studiengang Wirtschaftsinformatik vorgelegt von Christopher Frantz Betreuer: Prof. Dr. Martin K. Purvis, University of Otago Prof. Dr. Klaus G. Troitzsch, Institut fur¨ Wirtschafts- und Verwaltungsinformatik, Fachbereich Informatik Dr. Mariusz Nowostawski, University of Otago Erstgutachter: Prof. Dr. Martin K. Purvis, University of Otago Zweitgutachter: Prof. Dr. Klaus G. Troitzsch, Institut fur¨ Wirtschafts- und Verwaltungsinformatik, Fachbereich Informatik Koblenz, im November 2010 ERKLARUNG¨ Ich versichere, dass ich die vorliegende Arbeit selbst¨andig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe. Mit der Einstellung dieser Arbeit in die Bibliothek bin ich einverstanden. Der Ver¨offentlichung dieser Arbeit im Internet stimme ich zu. Ort, Datum Unterschrift II Abstract Multi-agent systems are a mature approach to model complex software systems by means of Agent-Oriented Software Engineering (AOSE). However, their appli- cation is not widely accepted in mainstream software engineering. Parallel to this the interdisciplinary field of Agent-based Social Simulation (ABSS) finds increasing recognition beyond the purely academic realm which starts to draw attention from the mainstream of agent researchers. This work analyzes factors to improve the uptake of AOSE as well as character- istics which separate the two fields AOSE and ABSS to understand their gap. Based on the efficiency-oriented micro-agent concept of the Otago Agent Platform (OPAL) we have constructed a new modern and self-contained micro-agent plat- form called µ2. The design takes technological trends into account and integrates representative technologies, such as the functionally-inspired JVM language Clo- jure (with its Transactional Memory), asynchronous message passing frameworks and the mobile application platform Android. The mobile version of the platform shows an innovative approach to allow direct in- teraction between Android application components and micro-agents by mapping their related internal communication mechanisms. This empowers micro-agents to exploit virtually any capability of mobile devices for intelligent agent-based appli- cations, robotics or simply act as a distributed middleware. Additionally, relevant platform components for the support of social simulations are identified and partially implemented. To show the usability of the platform for simulation purposes an interaction-centric scenario representing group shaping processes in a multi-cultural context is provided. The scenario is based on Hofste- de's concept of 'Cultural Dimensions'. It does not only confirm the applicability of the platform for simulations but also reveals interesting patterns for culturally augmented in- and out-group agents. This explorative research advocates the potential of micro-agents as a powerful general system modelling mechanism while bridging the convergence between mo- bile and desktop systems. The results stimulate future work on the micro-agent concept itself, the suggested platform and the deeper exploration of mechanisms for seemless interaction of micro-agents with mobile environments. Last but not least the further elaboration of the simulation model as well as its use to augment intelligent agents with cultural aspects offer promising perspectives for future re- search. III Zusammenfassung Die Verwendung von Multi-Agenten-Systemen in Verbindung mit Agenten-orien- tiertem Software Engineering stellt mittlerweile einen ausgereiften Ansatz zur Modellierung komplexer Systeme dar. Allerdings finden Multi-Agenten-Systeme im weiteren Feld der Softwareentwicklung bisher nur schwachen Anklang. Im Kontrast dazu erregt die Anerkennung des interdisziplin¨arenFeldes der sozial- wissenschaftlichen Simulation ¨uber akademische Grenzen hinaus zunehmend die Aufmerksamkeit des 'Mainstream' der Agentenforscher. Dies nimmt sich diese Ar- beit zum Anlass, die Verwendung von Multi-Agenten-Systemen im weiteren Feld der Software-Entwicklung voranzutreiben und gleichzeitig die unterschiedlichen Schwerpunkte von sozialwissenschaftlicher Simulation und Multi-Agenten-Syste- men zu analysieren. Im Zuge dessen bietet sich die Reimplementierung des effizienz- orientierten Micro-Agenten-Konzepts, welches den Kern der Otago Agent Platform (OPAL) bildet, an. Ergebnis ist eine eigenst¨andigeMicro-Agenten-Plattform, µ2, die zahlreiche konzeptionelle wie technische Innovationen bietet. Dazu geh¨oren die Integration der funktional orientierten Programmiersprache Clojure sowie die Implementation asynchroner Nachrichten¨ubermittlung. Als weiterer Aspekt wird die zunehmend popul¨aremobile Anwendungsplattform Android ber¨ucksichtigt. Uber¨ die reine Portierung der Agentenplattform hinaus weist Android Merkmale von Multi-Agenten-Systemen auf. Die Verbindung der Kommunikationsmecha- nismen von Android und Micro-Agenten-Plattform erweitert das Funktionsspek- trum auf beiden Seiten: Micro-Agenten k¨onnenunmittelbar auf beliebige Android- Funktionalit¨atzugreifen, w¨ahrendAndroid die Micro-Agenten-Plattform als netz- werkweite Kommunikationsmiddleware verwenden kann. Potentiale dieser symbi- otischen Beziehung erstrecken sich dar¨uber hinaus in die Bereiche der Entwicklung 'intelligenter' mobiler Anwendungen sowie Robotik. Weiteres Ziel der Arbeit ist die Bereitstellung von Erweiterungen der Plattform, die eine Verwendung im Kontext sozialwissenschaftlicher Simulation erm¨oglichen. Das aus Softwareentwicklungssicht schwache, jedoch aus Simulationssicht relativ m¨achtige Micro-Agenten-Konzept zeigt seine Qualit¨atenim Kontext kommunika- tionsintensiver Szenarien. Um dies zu realisieren, wird ein Simulationszenario basierend auf Hofstede's Cultural Dimensions konstruiert, welches die Gruppen- bildung interkultureller Individuen simuliert. Neben dem Nachweis der Anwend- barkeit der Plattform f¨urSimulationsszenarien zeigen sich interessante Muster in und außerhalb der gebildeten Gruppen. IV Insgesamt zeigt diese explorative Arbeit ein breites Potential zur Verwendung von Agenten- respektive Micro-Agenten-Prinzipien auf. Dies reicht von Agenten- orientierter Modellierung bis zum Potential, die Konvergenz mobiler und sta- tion¨arerAnwendungen voranzutreiben. Dar¨uber hinaus bieten sich weitere Verbes- serungspotentiale am Micro-Agenten-Konzept sowie der Plattform selbst, ebenso wie eine intensivere Untersuchung der direkten Interaktion von Micro-Agenten mit mobilen Umgebungen an. Unabh¨angigdavon bietet das entwickelte Simu- lationsmodell einen Ansatz f¨urdie Verwendung kultureller Aspekte im Kontext intelligenter Agenten. V Acknowledgements I want to express my deepest gratitude to my supervisors Professor Dr. Martin K. Purvis and Professor Dr. Klaus G. Troitzsch whose joint supervision effort and tireless support made this thesis 'at the antipodes' possible. I also want to express my deepest gratitude to my supervisor Dr. Mariusz Nowos- tawski whose feedback was crucial for the outcome of the work. VI Table of Contents Abstract III ZusammenfassungIV AcknowledgementsVI Table of ContentsX List of FiguresX List of Tables XII List of Listings XIV Abbreviations XIV 1 Introduction1 1.1 Background and Motivation......................1 1.2 Outline of the thesis..........................4 2 Terminological and Conceptual Foundations6 2.1 The Agent concept...........................6 2.1.1 Definitions and Notions....................6 2.1.2 Agent Architectures...................... 13 2.1.3 The Need for Dynamic Notions................ 17 2.2 Multi-Agent Systems.......................... 22 2.2.1 System-theoretical Foundations................ 22 2.2.2 Multi-Agent Systems...................... 26 2.2.3 Standard Specifications for MAS............... 32 3 Research fields in Agent-based Computing 37 3.1 Agent-Oriented Software Engineering................. 37 3.1.1 History and Principles of AOSE................ 37 3.1.2 Comparing Agents and Objects................ 41 3.1.3 Criticism............................. 45 VII 3.2 Agent-based Social Simulation..................... 47 3.2.1 Heritage of Social Simulation................. 47 3.2.2 Methodological Aspects.................... 49 3.2.3 On the Gap between MAS for AOSE and ABSS....... 52 3.2.4 Problems in Social Simulation................. 61 4 Concurrency models of relevant Technologies 63 4.1 Concurrency............................... 63 4.1.1 On Concurrent Computing and its Relevance......... 63 4.1.2 Concurrency Handling Mechanisms.............. 65 4.2 Technologies in the Intersection of AOSE and Concurrent Computing 70 4.2.1 Clojure............................. 70 4.2.2 Android............................. 72 4.3 Java-based Asynchronous Message Passing Frameworks....... 75 5 Reimplementation of the Micro-agent concept 79 5.1 Existing Micro-agent Framework and Requirements for a Successor 79 5.1.1 The existing concept and implementation........... 79 5.1.2 Limitations and Requirements for the Successor....... 86 5.2 Design and Implementation of the Micro-agent Platform µ2 ..... 91 5.2.1 Design.............................. 91 5.2.2 Implementation......................... 97 5.3 Additional Platform Extensions.................... 108 5.3.1 Clojure as Agent/Environment Implementation Language.. 108 5.3.2 Fair Scheduler.......................... 110 5.4 Micro-agents on Android (MOA)..................
Recommended publications
  • Java (Programming Langua a (Programming Language)
    Java (programming language) From Wikipedia, the free encyclopedialopedia "Java language" redirects here. For the natural language from the Indonesian island of Java, see Javanese language. Not to be confused with JavaScript. Java multi-paradigm: object-oriented, structured, imperative, Paradigm(s) functional, generic, reflective, concurrent James Gosling and Designed by Sun Microsystems Developer Oracle Corporation Appeared in 1995[1] Java Standard Edition 8 Update Stable release 5 (1.8.0_5) / April 15, 2014; 2 months ago Static, strong, safe, nominative, Typing discipline manifest Major OpenJDK, many others implementations Dialects Generic Java, Pizza Ada 83, C++, C#,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula- Influenced by 3,[5] Oberon,[6] Objective-C,[7] UCSD Pascal,[8][9] Smalltalk Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Influenced Groovy, J#, JavaScript, Kotlin, PHP, Python, Scala, Seed7, Vala Implementation C and C++ language OS Cross-platform (multi-platform) GNU General Public License, License Java CommuniCommunity Process Filename .java , .class, .jar extension(s) Website For Java Developers Java Programming at Wikibooks Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few impimplementation dependencies as possible.ble. It is intended to let application developers "write once, run ananywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to rurun on another. Java applications ns are typically compiled to bytecode (class file) that can run on anany Java virtual machine (JVM)) regardless of computer architecture. Java is, as of 2014, one of tthe most popular programming ng languages in use, particularly for client-server web applications, witwith a reported 9 million developers.[10][11] Java was originallyy developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems'Micros Java platform.
    [Show full text]
  • Not-Dead-Yet--Java-On-Desktop.Pdf
    NOT DEAD YET Java on Desktop About me… Gerrit Grunwald 2012… The desktop is dead… …the future of applications… …is the Web ! 8 years later… My application folder… My applications folder (future) My applications folder (reality) ??? Seems desktop is not dead ! But what about Java ? Available Toolkits AWT Abstract Window Toolkit Abstract Window Toolkit Since 1995 Cross Platform Platform dependent Bound to native controls Interface to native controls SWT Standard Window Toolkit Standard Window Toolkit Based on IBM Smalltalk from 1993 Cross Platform Platform dependent Wrapper around native controls Java Swing Successor to AWT Java Swing Since Java 1.2 (1998) Cross Platform Platform independent Introduced Look and Feels Emulates the appearance of native controls Java FX Script Intended successor to Swing Java FX Script Since Java 1.6 (2008) Cross Platform Platform independent No Java Syntax Declarative way to describe UI's (based on F3 from Chris Oliver) Java FX Successor to Swing Java FX Since Java 7 (2011) Cross Platform Platform independent Port from JavaFX Script to Java Not part of the Java SE distribution since Java 11 Most of these are still in use… Is Java FX dead ? Is Java FX dead ? Open Sourced as OpenJFX (openjfx.io) Driven by the community Can run on mobile using Gluon technology (gluonhq.com) Can run on web using JPro technology (jpro.one) Actively developed and is getting new features too Where does Java on Desktop suck ? Lack of 3rd party controls Swing had great support over years, JavaFX lacks behind Missing features… e.g.
    [Show full text]
  • The Machine That Builds Itself: How the Strengths of Lisp Family
    Khomtchouk et al. OPINION NOTE The Machine that Builds Itself: How the Strengths of Lisp Family Languages Facilitate Building Complex and Flexible Bioinformatic Models Bohdan B. Khomtchouk1*, Edmund Weitz2 and Claes Wahlestedt1 *Correspondence: [email protected] Abstract 1Center for Therapeutic Innovation and Department of We address the need for expanding the presence of the Lisp family of Psychiatry and Behavioral programming languages in bioinformatics and computational biology research. Sciences, University of Miami Languages of this family, like Common Lisp, Scheme, or Clojure, facilitate the Miller School of Medicine, 1120 NW 14th ST, Miami, FL, USA creation of powerful and flexible software models that are required for complex 33136 and rapidly evolving domains like biology. We will point out several important key Full list of author information is features that distinguish languages of the Lisp family from other programming available at the end of the article languages and we will explain how these features can aid researchers in becoming more productive and creating better code. We will also show how these features make these languages ideal tools for artificial intelligence and machine learning applications. We will specifically stress the advantages of domain-specific languages (DSL): languages which are specialized to a particular area and thus not only facilitate easier research problem formulation, but also aid in the establishment of standards and best programming practices as applied to the specific research field at hand. DSLs are particularly easy to build in Common Lisp, the most comprehensive Lisp dialect, which is commonly referred to as the “programmable programming language.” We are convinced that Lisp grants programmers unprecedented power to build increasingly sophisticated artificial intelligence systems that may ultimately transform machine learning and AI research in bioinformatics and computational biology.
    [Show full text]
  • BAAC: a Prolog System for Action Description and Agents Coordination∗
    BAAC: A Prolog System for Action Description and Agents Coordination∗ Agostino Dovier1, Andrea Formisano2, and Enrico Pontelli3 1 Univ. di Udine, Dip. di Matematica e Informatica. [email protected] 2 Univ. di Perugia, Dip. di Matematica e Informatica. [email protected] 3 New Mexico State University, Dept. Computer Science. [email protected] Abstract The paper presents a system for knowledge representation and coordination, where autonomous agents reason and act in a shared environment. Agents autonomously pursue individual goals, but can interact through a shared knowledge repository. In their interactions, agents deal with problems of synchronization and concurrency, and have to realize coordination by developing proper strategies in order to ensure a consistent global execution of their autonomously derived plans. This kind of knowledge is modeled using an extension of the action description language B. A distributed planning problem is formalized by providing a number of declarative specifications of the portion of the problem pertaining a single agent. Each of these specifications is executable by a stand-alone CLP-based planner. The coordination platform, implemented in Prolog, is easily modifiable and extensible. New user-defined interaction protocols can be integrated. 1998 ACM Subject Classification I.2.3 Deduction and Theorem Proving, I.2.11 Distributed Artificial Intelligence Keywords and phrases Knowledge Representation, Multi-Agent Systems, Planning, CLP Digital Object Identifier 10.4230/LIPIcs.ICLP.2011.187 1 Introduction Representing and reasoning in multi-agent domains are two of the most active research areas in multi-agent system (MAS) research. The literature in this area is extensive, and it provides a plethora of logics for representing and reasoning about various aspects of MAS, e.g., [13, 9, 17, 15, 7].
    [Show full text]
  • Scala Tutorial
    Scala Tutorial SCALA TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Scala Tutorial Scala is a modern multi-paradigm programming language designed to express common programming patterns in a concise, elegant, and type-safe way. Scala has been created by Martin Odersky and he released the first version in 2003. Scala smoothly integrates features of object-oriented and functional languages. This tutorial gives a great understanding on Scala. Audience This tutorial has been prepared for the beginners to help them understand programming Language Scala in simple and easy steps. After completing this tutorial, you will find yourself at a moderate level of expertise in using Scala from where you can take yourself to next levels. Prerequisites Scala Programming is based on Java, so if you are aware of Java syntax, then it's pretty easy to learn Scala. Further if you do not have expertise in Java but you know any other programming language like C, C++ or Python, then it will also help in grasping Scala concepts very quickly. Copyright & Disclaimer Notice All the content and graphics on this tutorial are the property of tutorialspoint.com. Any content from tutorialspoint.com or this tutorial may not be redistributed or reproduced in any way, shape, or form without the written permission of tutorialspoint.com. Failure to do so is a violation of copyright laws. This tutorial may contain inaccuracies or errors and tutorialspoint provides no guarantee regarding the accuracy of the site or its contents including this tutorial. If you discover that the tutorialspoint.com site or this tutorial content contains some errors, please contact us at [email protected] TUTORIALS POINT Simply Easy Learning Table of Content Scala Tutorial ..........................................................................
    [Show full text]
  • Observation-Based Model for BDI-Agents∗
    Observation-based Model for BDI-Agents∗ Kaile Su1,2, Abdul Sattar1, Kewen Wang1, Xiangyu Luo2, Guido Governatori3, Vineet Padmanabhan3 1Institute for Integrated and Intelligent Systems, Griffith University, Brisbane, Australia 2Department of Computer Science, Sun Yat-sen University, Guangzhou, P.R.China 3School of ITEE, The University of Queensland, Brisbane, Australia {k.su, a.sattar, k.wang}@griffith.edu.au; xiang yu [email protected]; {guido,vnair}@itee.uq.edu.au Abstract the states of computer processes, to S5 epistemic logic. The salient point of the interpreted system model is that we can We present a new computational model of BDI-agents, called get an interpreted system from a computer program, and for- the observation-based BDI-model. The key point of this BDI- model is to express agents’ beliefs, desires and intentions as mulas in epistemic logic that are valid with respect to the in- a set of runs (computing paths), which is exactly a system in terpreted system can be understood as properties of program the interpreted system model, a well-known agent model due computations. In this sense, the interpreted system model is to Halpern and his colleagues. Our BDI-model is computa- computationally grounded (Wooldridge 2000). Thus, it is in- tionally grounded in that we are able to associate the BDI- teresting to extend the interpreted system model to capture agent model with a computer program, and formulas, involv- an agent’s belief, desire and intention as well. ing agents’ beliefs, desires (goals) and intentions, can be un- The aim of this paper is to present a computationally derstood as properties of program computations.
    [Show full text]
  • An Evaluation of Go and Clojure
    An evaluation of Go and Clojure A thesis submitted in partial satisfaction of the requirements for the degree Bachelors of Science in Computer Science Fall 2010 Robert Stimpfling Department of Computer Science University of Colorado, Boulder Advisor: Kenneth M. Anderson, PhD Department of Computer Science University of Colorado, Boulder 1. Introduction Concurrent programming languages are not new, but they have been getting a lot of attention more recently due to their potential with multiple processors. Processors have gone from growing exponentially in terms of speed, to growing in terms of quantity. This means processes that are completely serial in execution will soon be seeing a plateau in performance gains since they can only rely on one processor. A popular approach to using these extra processors is to make programs multi-threaded. The threads can execute in parallel and use shared memory to speed up execution times. These multithreaded processes can significantly speed up performance, as long as the number of dependencies remains low. Amdahl‘s law states that these performance gains can only be relative to the amount of processing that can be parallelized [1]. However, the performance gains are significant enough to be looked into. These gains not only come from the processing being divvied up into sections that run in parallel, but from the inherent gains from sharing memory and data structures. Passing new threads a copy of a data structure can be demanding on the processor because it requires the processor to delve into memory and make an exact copy in a new location in memory. Indeed some studies have shown that the problem with optimizing concurrent threads is not in utilizing the processors optimally, but in the need for technical improvements in memory performance [2].
    [Show full text]
  • JAPL: the JADE Agent Programming Language
    272 JOURNAL OF EMERGING TECHNOLOGIES IN WEB INTELLIGENCE, VOL. 5, NO. 3, AUGUST 2013 JAPL: the JADE Agent Programming Language Mohamed BAHAJ, Abdellatif SOKLABI FSTS/ Department of Mathematics and Computer Science, University Hassan I Settat, Morocco [email protected] [email protected] Abstract— This article describes JADE Agent Programming particular, we highlight knowledge representation. The Language (JAPL) that allows fast and efficient following section contains the programming treatment implementation of intelligent behaviors into mobile agents, agent’s behaviours. The sixth section finalizes this part based on three logical, FIPA speech acts, and a part of with a focus on the service concept, and the last section complex procedural script for actions. It integrates the we wrap up with some conclusions. ontologies and defines communication services. Rather than rely on a library of plans, JAPL allows agents to plan from II. JADE AGENT PROGRAMMING LANGUAGE first principles. It also describes how to program the multiple OVERVIEW: JADE behaviors using JAPL instructions and how to JAPL is the extension of ADL (Action Description compile JAPL to JAVA classes. Language) [18] on the mobile agents of JADE. ADL Keywords— Mobile agents, JADE, Agent programming allows the use of quantifiers and conditional expressions language, agents communication, MAS in the description of operators to describe classical planning. In ADL, the focus of the quantifiers is over I. INTRODUCTION: finite domains and disjunction that are not allowed in the JADE (Java Agent Development Environment) is the expression of effects, because it would bring non- system for mobile agents, most used in the world. It is deterministic actions.
    [Show full text]
  • Clojure, Given the Pun on Closure, Representing Anything Specific
    dynamic, functional programming for the JVM “It (the logo) was designed by my brother, Tom Hickey. “It I wanted to involve c (c#), l (lisp) and j (java). I don't think we ever really discussed the colors Once I came up with Clojure, given the pun on closure, representing anything specific. I always vaguely the available domains and vast emptiness of the thought of them as earth and sky.” - Rich Hickey googlespace, it was an easy decision..” - Rich Hickey Mark Volkmann [email protected] Functional Programming (FP) In the spirit of saying OO is is ... encapsulation, inheritance and polymorphism ... • Pure Functions • produce results that only depend on inputs, not any global state • do not have side effects such as Real applications need some changing global state, file I/O or database updates side effects, but they should be clearly identified and isolated. • First Class Functions • can be held in variables • can be passed to and returned from other functions • Higher Order Functions • functions that do one or both of these: • accept other functions as arguments and execute them zero or more times • return another function 2 ... FP is ... Closures • main use is to pass • special functions that retain access to variables a block of code that were in their scope when the closure was created to a function • Partial Application • ability to create new functions from existing ones that take fewer arguments • Currying • transforming a function of n arguments into a chain of n one argument functions • Continuations ability to save execution state and return to it later think browser • back button 3 ..
    [Show full text]
  • Acting Within BDI Agent Architecture –
    Automated Planning and Acting – Acting within BDI Agent Architecture – O. Boissier IMT Mines Saint-Etienne, France Défi IA — Spring 2021 Acting I How to perform chosen actions I Acting6=Execution ActorAgent Deliberation components I Agent is situated in a dynamic Objectives Planning unpredictable environment QueriesDeliberation Other Plans actorsagents I Adapt actions to current Actingcomponents Messages context I React to events Commands Percepts I Relies on ExecutionExecution platformplatform I Operational models of actions Actuations Signals I Observations of current state External World I Acting6=Planning 2 Outline Agent Oriented Programming BDI Architecture Agent Oriented Programming with Jason Comparison with other paradigms Conclusions and wrap-up 3 Agent Oriented Programming Features I Reacting to events × long-term goals I Course of actions depends on circumstance I Plan failure (dynamic environments) I Social ability ; see course on Integrating and engineering intelligent systems I Combination of theoretical and practical reasoning I Theoretical reasoning is directed towards beliefs, knowledge ; see course on Knowledge representation and reasoning I Practical reasoning is directed towards actions ; this course 4 Agent Oriented Programming Fundamentals I Use of mentalistic notions and a societal view of computation [Shoham, 1993] I Heavily influenced by the BDI architecture and reactive planning systems [Bratman et al., 1988] 5 Literature Agent Oriented Programming Books: [Bordini et al., 2005], [Bordini et al., 2009] Proceedings: ProMAS, DALT, LADS, EMAS, AGERE, ... Surveys: [Bordini et al., 2006], [Fisher et al., 2007] ... Languages of historical importance: Agent0 [Shoham, 1993], AgentSpeak(L) [Rao, 1996], MetateM [Fisher, 2005], 3APL [Hindriks et al., 1997], Golog [Giacomo et al., 2000] Other prominent languages: Jason [Bordini et al., 2007a], Jadex [Pokahr et al., 2005], 2APL [Dastani, 2008], GOAL [Hindriks, 2009], JACK [Winikoff, 2005], JIAC, AgentFactory But many other languages and platforms..
    [Show full text]
  • Scala for the Impatient
    Scala for the Impatient Copyright © Cay S. Horstmann 2012. All Rights Reserved. The evolution of Java and C++ has slowed down considerably, and programmers who are eager to use more modern language features are looking elsewhere. Scala is an attractive choice; in fact, I think it is by far the most attractive choice for programmers who want to move beyond Java or C++. Scala has a concise syntax that is refreshing after the Java boilerplate. It runs on the Java virtual machine, providing access to a huge set of libraries and tools. It embraces the functional programming style without abandoning object-orientation, giving you an incremental learning path to a new paradigm. The Scala interpreter lets you run quick experiments, which makes learning Scala very enjoyable. And, last but not least, Scala is statically typed, enabling the compiler to find errors, so that you don't waste time finding them later in running programs (or worse, don't find them). I wrote this book for impatient readers who want to start programming with Scala right away. I assume you know Java, C#, or C++, and I won't bore you with explaining variables, loops, or classes. I won't exhaustively list all features of the language, I won't lecture you about the superiority of one paradigm over another, and I won't make you suffer through long and contrived examples. Instead, you will get the information that you need in compact chunks that you can read and review as needed. Scala is a big language, but you can use it effectively without knowing all of its details intimately.
    [Show full text]
  • Proceedings of the 8Th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (Ed.) Sponsors
    Proceedings of the 8th European Lisp Symposium Goldsmiths, University of London, April 20-21, 2015 Julian Padget (ed.) Sponsors We gratefully acknowledge the support given to the 8th European Lisp Symposium by the following sponsors: WWWLISPWORKSCOM i Organization Programme Committee Julian Padget – University of Bath, UK (chair) Giuseppe Attardi — University of Pisa, Italy Sacha Chua — Toronto, Canada Stephen Eglen — University of Cambridge, UK Marc Feeley — University of Montreal, Canada Matthew Flatt — University of Utah, USA Rainer Joswig — Hamburg, Germany Nick Levine — RavenPack, Spain Henry Lieberman — MIT, USA Christian Queinnec — University Pierre et Marie Curie, Paris 6, France Robert Strandh — University of Bordeaux, France Edmund Weitz — University of Applied Sciences, Hamburg, Germany Local Organization Christophe Rhodes – Goldsmiths, University of London, UK (chair) Richard Lewis – Goldsmiths, University of London, UK Shivi Hotwani – Goldsmiths, University of London, UK Didier Verna – EPITA Research and Development Laboratory, France ii Contents Acknowledgments i Messages from the chairs v Invited contributions Quicklisp: On Beyond Beta 2 Zach Beane µKanren: Running the Little Things Backwards 3 Bodil Stokke Escaping the Heap 4 Ahmon Dancy Unwanted Memory Retention 5 Martin Cracauer Peer-reviewed papers Efficient Applicative Programming Environments for Computer Vision Applications 7 Benjamin Seppke and Leonie Dreschler-Fischer Keyboard? How quaint. Visual Dataflow Implemented in Lisp 15 Donald Fisk P2R: Implementation of
    [Show full text]