A Survey of Agent Platforms

From computer games to human societies, many natural and artificial phenomena can be represented as multi-agent systems. Over time, these systems have been proven a really powerful tool for modelling and understanding phenomena in fields, such as economics and trading, health care, urban planning and social sciences. However, although, intelligent agents have been around for years, their actual implementation is still in its early stages. Since the late nineties many agent platforms have been developed. Some of them have already been abandoned whereas others continue releasing new versions. On the other hand, the agent-oriented research community is still providing more and more new platforms. This vast amount of platform options leads to a high degree of heterogeneity. Hence, a common problem is how people interested in using multi-agent systems should choose which platform to use in order to benefit from agent technology. This decision was usually left to word of mouth, past experiences or platform publicity, lately however people depend on solid survey articles. To date, in most cases multiagent system surveys describe only the basic characteristics of a few representatives without even providing any classification of the systems themselves. This article presents a comparative up-to-date review of the most promising existing agent platforms that can be used. It is based on universal comparison and evaluation criteria, proposing classifications for helping readers to understand which agent platforms broadly exhibit similar properties and in which situations which choices should be made.

Multi-agent systems can be used to investigate phenomena or solve problems that are difficult or impossible for humans to study and solve. Actually, they can be used in numerous research areas, from computer games and informatics to economics and social sciences (Schurr et al. 2005;Sun & Naveh 2004;Kaminka 2004;Kubera et al. 2010). Many natural and artificial phenomena can be and in some cases they are represented by multi-agent systems. Hence over time, multi-agent systems have been proven a really powerful tool for modelling and understanding phenomena in fields, such as economics and trading, health care, urban planning and social sciences. Besides, a multi-agent system can be represented as a society, similar to a human society, consisting of entities with characteristics similar to humans, for instance in terms of autonomy and intelligence.
1.2 However, although, intelligent agents have been around for years, their actual implementation is still in its early stages. To this end, the research community has developed a variety of agent platforms in the last two decades; either general purpose or oriented to a specific domain of use. Some of them have already been abandoned whereas others continue releasing new versions. At the same time, the agent-oriented research community is still providing more and more new platforms. All these platforms are as diverse as the community of people who use them. With so many of them available, the choice of which one is best suited for each case was usually left to word of mouth, past experiences or platform publicity. However lately, people interested in using multi-agent systems in order to benefit from agent technology depend increasingly on solid survey articles.

1.3
To date, in most cases multi-agent system surveys describe only some basic characteristics of a few representatives using a variety of criteria, which usually are different from survey to survey (e.g. Gupta & Kansal 2011;Bordini et al. 2006;Nguyen et al. 2002;Nikolai & Madey 2009). Moreover, in most cases surveys so far do not provide case classification, in other words the representatives are just described without indicating relations among them. This article presents a comparative up-to-date review of the existing agent platforms. Our intention was to include and examine the entire continuum of agent platforms that are available today. For this purpose we omitted platforms that can no longer be used and we focused on platforms that are still available even if their development progress is stopped. Hence, we ended up in twenty four agent platforms.
1.4 Moreover, this article in order to provide a thorough and comparable description of each agent platform proposes a list of solid universal criteria, which could be used in future work in the field. Additionally, it proposes a number of classifications for helping readers to understand which agent platforms broadly exhibit similar properties and in which situations which choices should be made. For this purpose, we studied as much information as possible for each platform, such as published papers, manual, wikis, websites and forums. Moreover, since each platform is designed for different purposes and domains, we obtained an instance of each platform, installed it and tried to use it following its tutorials and examples, rather than an identical use case that could be proven unfair, in order to study how easy it is to learn and use it. Based on the above research and personal experience, we were finally able to evaluate and compare the platforms. The rest of the article is organized as follows: The next section presents the evaluation criteria in detail. The third section presents a comparative review of agent platforms, also detailing their aspects, while the fourth proposes a number of potential classifications for these agent platforms. Finally, the final section presents the conclusion remarks of the article.
Comparison and Evaluation Criteria 2.1 The high heterogeneity and the vast amount of the available agent platforms is a fact. Hence, choosing the right or most suitable platform for a given problem is still a challenge for the developer. The lack of concrete standardized criteria is an open issue in agent-oriented research that tends to acquire just individual solutions. However, having universal criteria for platform evaluation and comparison has significant advantages. Not only the outcomes of different surveys will be comparable but also comparisons and evaluations during a time interval will reveal the progress that has been or has been not achieved even if the surveys are conducted by different researchers.

2.2
In order to present the platforms in a uniform way that facilitates comparison among them and drawing of significant conclusions, we studied past relevant surveys in order to elicit the most used criteria even if they are not explicitly mentioned as such (e.g. Gupta & Kansal 2011;Bordini et al. 2006;Nguyen et al. 2002;Nikolai & Madey 2009). Additionally, we extensively studied the research disciplines proposed in Braubach et al. (2008) where the authors propose a generic universal criteria catalog for heterogeneous agent development artifacts based on existing standards such as ISO 9126 and ISO 9241 (ISO/IEC 9126-1:2001;ISO9241-110:2006). Based on the above, in this article we present a concrete guideline proposal for comparing and evaluating agent platforms which is directly related to the scope of platform operation and the quality of each platform's provided aspect. This guideline proposal is composed of five discrete criteria categories, namely platform properties, usability, operating ability, pragmatics and security management. Each of these categories has a number of subcriteria that indicate a detailed analysis of each agent platform.

2.3
Platform properties refer to the primary concepts of the platform, describing its basic characteristics that are necessary for a potential user/developer in order to understand the scope and the domain of the platform. Usability refers to the suitability of the platform for the construction of agent applications. Operating ability refers to all these aspects that are taken into account during execution. In other words, operating ability indicates the quality of the platform. Pragmatics refers to external factors that are neither related to the construction nor to the operation of the platform. More specific, pragmatics indicates whether the platform can be used in practice or not. Finally, security management refers to security issues, indicating if the platform is considered safe or not. Table 1 presents the criteria categories along with their subcriteria. The platform properties and the pragmatics are quite understandable and so there is no need for further explanations. The usability criteria group is also easily understood. Simplicity indicates how simple and understandable the underlying platform's mechanisms are and how easy it is for a developer to use that platform. Learnability refers to whether the platform's mechanisms are familiar to the developer community or not. It is obvious that familiar mechanisms need less or no effort to learn and use while unfamiliar mechanisms could be time and effort consuming. Scalability refers to a potential critical issue; whether the platform can handle varying problem sizes or not. Standard compatibilities, next, are some of the most important features in an agent platform. Standard compliance is an indicator of the platform's flexibility; the more standards a platform adopts the more likely it is to cooperate with other applications. Communication is also important since it refers to the type of intra-and/or inter-platform messaging.

2.5
Operating ability criteria group, on the other hand, refers to more specialized issues. Performance is about how efficient is the platform with respect to space and time operations. In this context, we studied how fast the agent communication is and the running speed of the platform itself. Values ranges from average meaning tolerable but not really fast to high meaning excellent platform performance. Stability is about how stable is the platform in case of long term execution whereas robustness is about how tolerant it is in case of breakdowns. In this study, it is a value representing a percentage (based on all available data) of platform crashes, ranging again from average to high (many crashes). Next, programming languages and operating systems indicate the languages and the systems that are used in or by the platform, respectively. Finally, security management is an important aspect in multi-agent systems. The classic case of end-to-end security refers to those protocols and mechanisms that protect access to the platform while fairness refers to those special mechanisms that guarantee equal treatment. Additionally, platform security requires more mechanisms in order to ensure platform security and smooth operation. In this study, platform secure ranges from weak to good, high and strong (in this order) indicating the amount of security mechanisms that are available in the platform.

2.6
However, classic security issues are not enough for the agent community, an aspect that gains more and more attention by the research community is the trust management in the multi-agent systems. Trust models help agents to decide who to trust, encouraging trustworthy behavior and deterring dishonest participation by providing the mean through which reputation and ultimately trust among the community can be quantified (Resnick et al. 2000). In other words, in is not only important to have a secure agent platform but it is required the community acting in that platform to be able to use trust mechanisms. To date, only the EMERALD platform has adopted such mechanisms that support a variety of logics and languages. Hence, we do not include trust management as a separate criterion, although it is important, since it is not supported by the platforms yet except EMERALD.

2.7
Moreover, this article goes one step further. Web is moving towards a true global village, connecting people and knowledge. Eventually, the idea of building a network of content stored on the web making it possible for machines to understand meaning of data and to satisfy requests from people by using it, will came true to its full potential. The semantic wave embraces four stages of internet growth (Mills 2009). The first, Web of Shared Information (Web 1.0), was about connecting information while the current second, Social Web (Web 2.0), is about connecting people. The third, Semantic Web (Web 3.0), has already started and it is about connecting knowledge while the fourth, Web of Intelligence (Web 4.0), will come later and it is about connecting intelligences in a ubiquitous web where both people and things can reason and communicate together.

2.8
The growing complexity and extent of this knowledge however creates the need for more powerful tools. Hence, the question is if agent platforms are or will be able to deal with that. In other words, the question is if agents build in these platforms will be able to traverse the web and integrate the available knowledge. So far, there is no survey, to the best of our knowledge, that takes into account this issue. To this end, we used all the available data to discover which platforms support technologies, semantic web technologies in particular, that can be used for this purpose. As a result, we present an additional classification subsection, where agent platforms are classified according to the degree of their support in semantic web technologies. Agent Platforms Overview 3.1 This article, as already mentioned, is intended to examine the agent platforms that are available today. Hence, this section presents the platforms that are still available even if their development progress is stopped. An interesting question raises here; why platforms that are no longer developed should be included? The answer is that there are some important and popular agent platforms that are still used by the community though their developers have stopped their maintenance. However, these cases are just a minority. Almost all the presented platforms are active with stable releases. In this context, we have chosen twenty four cases including pure agent platforms, agent frameworks and agent-based simulators because all of them are or will be able to act like agent platforms. Hence, next, each of them is presented in alphabetic order while pivot tables complete the overview at the end of the section.

3.2
First of all, we present the Agent Factory Framework (Russell et al. 2011), an open source collection of tools, platforms, and languages that support the development and deployment of multi-agent systems. The framework is broadly split into two parts: support for deploying agents on laptops, desktops, and servers; and support for deploying agents on constrained devices such as mobile phones and sensors. The former support is realized through Agent Factory Standard Edition (AFSE), and the latter support is realized through Agent Factory Micro Edition (AFME), a light weight agent platform that has been designed to work with J2ME-CDLC MIDP2.0. Currently, Agent Factory is used in a number of projects including mobile computing, robotics and other, e.g. the MiRA-Mixed Reality Agents project (Holz et al. 2011).
3.3 AgentBuilder (Acronymics Inc. 2004) is another case of traditional agent platform that can be used in numerous simulation cases. It is a KQML-compliant integrated tool suite for constructing intelligent software agents, allowing software developers with no background in intelligent systems or intelligent agent technologies to quickly and easily build intelligent agent-based applications. KQML is a language and protocol for communication among software agents and knowledge-based systems (Finin et al. 1994). AgentBuilder is quite simple and easy to use even for unfamiliar users is its main advantage. AgentBuilder is an agent platform based on the notions of mental states, which comply with the agent language Agent-0 proposed by Shoham.

3.4
AgentScape (Oey et al. 2010) agent platform, on the other hand, has been designed to support the design and deployment of large-scale, heterogeneous, secure, distributed agent systems. Within AgentScape, agents are active entities that reside within locations, communicate with each other and access services. The AgentScape approach to management is targeted to scalability and autonomicity. The above allows AgentScape to be a promising agent platform for studies including large-scale distribution and heterogeneity.
3.5 AGLOBE (Sislak et al. 2006) is an agent platform designed for testing experimental scenarios featuring agents' position and communication inaccessibility, but it can be also used without these extended functions. The platform provides functions for the residing agents, such as communication infrastructure, store, directory services, migration function, deploy service, etc. Communication in AGLOBE is very fast and the platform is relatively lightweight. AGLOBE platform is not yet fully compliant with the Foundation for Intelligent Physical Agents' (FIPA) specifications, e.g. it does not support inter-platform communication (communication with other agent platforms is not supported yet). This interoperability is not necessary when developing closed systems, where no communication outside these systems is required (e.g. agent-based simulations). AGLOBE is sponsored by US Air Force and it is suitable for real-world simulations including both static (e.g. towns, ports, etc.) and mobile units (e.g. vehicles). In such case the platform can be started in extended version with Geographical Information System (GIS) services and Environment Simulator (ES) agent.

3.6
AnyLogic (Borshchev 2013) is a multi-method simulation platform that supports not only agent-based general purpose simulations but also it supports system dynamics and process-centric (discrete event) modeling. The flexibility of its modeling language enables the user to capture the complexity and heterogeneity of business, economic and social systems to any desired level of detail. AnyLogic's graphical interface, tools, and library objects allow quick modeling of diverse areas such as manufacturing and logistics, business processes, human resources, consumer and patient behavior. Additionally, the objectoriented model design paradigm supported by AnyLogic provides for modular, hierarchical, and incremental construction of large models. It is probably one the best solutions for simulation if there is no extensive coding background to start with.

Cormas (Le Page & Bousquet 2007
) is a simulation platform based on the VisualWorks programming environment which allows the development of applications in the Smalltalk object oriented language. Cormas pre-defined entities are Smalltalk generic classes from which, by specialization and refining, users can create specific entities for their own model. It facilitates the construction of agent-based models and the design, monitoring and analyzing of agent-based simulation scenarios. Cormas was primarily oriented towards the representation of interactions between stakeholders about the use of natural renewable resources. Cormas is very popular and it provides some interesting features for real life applications.

3.8
Cougaar (Helsinger & Wright 2005) follows a Cognitive Agent Architecture and is a DARPA-funded open-source agent platform that offers special support for logistics problems. The platform is not FIPA-compliant. It facilitates the development of agent based applications that are complex, large scale and distributed. Cougaar's cognitive architecture is another promising feature since the majority of the available platforms does not handle with such issues despite the fact that they are important for simulating human thinking and acting.
3.9 CybelePro (CybelePro 2006) provides its users with a robust high-performance infrastructure for rapid development and deployment of large-scale, high performance agent-based systems. CybelePro is the commercial release of Intelligent Automation Inc. Cybele agent infrastructure has been used extensively by the government, industry and academia for applications such as military logistics, modeling, simulation and control of air and ground transportation, communication networks and a development of open systems.
3.10 EMERALD (Kravari et al. 2010) is a quite new implementation framework for interoperable reasoning among agents in the Semantic Web, by using third-party trusted reasoning services. The advantage is that every agent can exchange its position justification arguments with any other agent, without the need for all agents to conform to the same kind of rule paradigm or logic. It is built on top of JADE (presented below) and it is fully FIPA-compliant. Moreover, EMERALD was involved in cross-community interoperations such as in Kravari et al. (2012). It supports a variety of logics and languages such as Java, JESS, XML, RDF, RuleML and Prolog. Additionally, EMERALD is the only agent platform that supports trust and reputation mechanisms in order to support trustworthiness and efficient decision making in the multi-agent system. It has been used so far in studying how agents act on behalf of their users in cases such as trading.
3.11 GAMA (Grignard et al. 2013) is a simulation platform, which aims at providing field experts, modelers, and computer scientists with a complete modeling and simulation development environment for building spatially explicit multi-agent simulations. It provides capabilities concerning the tight combination of 3D visualization, GIS data management, and multi-level modeling. G A M A supports capabilities for building large models written in the GAML agent-oriented language, with an optional graphical modeling tool to support rapid design and prototyping. Users are also able to instantiate agents from GIS data, databases or files and executing large-scale simulations (up to millions of agents) and design rich user interfaces that support deep inspections on agents, user-controlled actions and panels, and multiple multi-layer 2D/3D displays and aspects.

INGENIAS Development Kit (Gómez-Sanz & Pavón 2004
) is a tool for developing Multi-Agent Systems that supports the INGENIAS methodology. INGENIAS promotes a model driven approach based on the use of INGENME (INGENIAS Meta-Editor), a tool for producing self-contained visual editors for languages defined using an XML file. INGENME is used to produce a visual editor for Multi-Agent Systems where the systems' specifications are processed to produce programming code, html documents, or other required products. INGENIAS addresses roundtrip engineering issues as well, by a concrete folder structure and a code-to-specification information migration tool.
3.13 JACK (Winikoff 2005) is a mature, cross-platform environment for building, running and integrating commercial-grade multi-agent systems. It is built on a sound logical foundation: BDI (Beliefs/Desires/Intentions). BDI is an intuitive and powerful abstraction that allows developers to manage the complexity of the problem. It is entirely written in Java. JACK is highly portable and runs on anything from smartphones to high-end, multi-CPU servers. Its Java foundation means that JACK can run with multiple threads across multiple CPUs, has platform-independent GUIs, and is easily integrated with third-party libraries. JACK is the leading edge commercial BDI-agent toolkit that uses an intuitive language that extends the Java programming language with certain agent specific keywords. It is the first platform with support for capabilities and generic team structures, but does not yet support the FIPA-specifications.
3.14 JADE (Bellifemine et al. 2003) is a framework fully implemented in Java. It simplifies the implementation of multi-agent systems through a middle-ware that claims to comply with the FIPA specifications. The agent platform can be distributed across machines (which do not even need to share the same OS) and the configuration can be controlled via a remote GUI. The configuration can be even changed at run-time by moving agents from one machine to another one, as and when required. JADE is completely implemented in the Java language and the minimal system requirement is version 1.2 of JAVA (the run time environment or the JDK), hence it can be adapted to be used on devices with limited resources such as mobile phones. JADE is industry-driven and currently it is the most popular FIPA-compliant agent platform in academic and industrial community. LGPL license, and is continuously evolving. Jadex has been put into practice in the context of several research, teaching, and industrial application scenarios some of which are described in its website. It has been used to build applications in different domains such as simulation, scheduling, and mobile computing. For example, Jadex was used to develop a multi-agent application for negotiation of treatment schedules in hospitals (Braubach et al. 2014). In the latest version, the programming model of Jadex is based on the notion of active components that are conceptually based on SCA (service component architecture). This allows for designing an application as hierarchical decomposition of components interacting via services and thus helps making complexity controllable. Active components extend SCA in several directions as it is intended to work in concurrent and dynamic distributed systems.
3.16 JAMES II (Java Framework for Modeling & Simulation) (Himmelspach & Uhrmacher 2007) is a pure Java framework, with no external dependencies, for modeling and simulation. It is based on a plug-in architecture, shortly named "plug'n simulate", built for maximum flexibility. The architecture allows any modeling and simulation technique to be integrated into the framework via plug-ins. Moreover, it provides a solid foundation of abstractions, algorithms, workflows and tools, focusing on efficiency. In this context, JAMES II provides hundreds of plug-ins, allowing automatic selection from the available list of alternative plug-ins. Yet, it does not enforce any reuse of its parts but allows its users to choose which functionality they want to apply. Additionally, JAMES II allows full control over experiment types and parameters, such as parameter scans, optimization, computation end policies and number of replications. So far, JAMES II has already been used in various application areas, from small notebook-based to large cluster-based experiments.
3.17 Although JAS, the Java Agent-Based Simulation Library (Sonnessa 2004) is not a pure agent platform, it acts as such. JAS is a simulation toolkit specifically designed for agent-based simulation modeling. JAS is a Java clone of the Swarm library originally developed by researchers at the Santa Fe Institute. The core of the JAS toolkit is its simulation engine based on the standard discrete event simulation paradigm, which allows time to be managed with high precision and from a multi-scale perspective. Many features of JAS are based on open source third party libraries. The core of the JAS toolkit is represented by the simulation engine. It is based on the standard discrete-event simulation paradigm, which allows managing the time with high precision and multi-scale perspective. Thanks to its discrete-event engine, JAS represents a good compromise in simulating both discrete and continues agent-based models. This makes JAS a generic discrete-event simulation toolkit, also useful to realize process workflow simulation models.
3.18 Jason (Bordini et al. 2007) is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language, and is implemented in Java. It implements the operational semantics of that language, and provides a platform for the development of multi-agent systems, with many user-customizable features. Using SACI, a multi-agent system can be distributed over a network effortlessly. Some of the features available in Jason are: speechact based inter-agent communication, annotations on plan labels, fully customizable (in Java) selection functions, trust functions, and overall agent architecture, straightforward extensibility by means of user-defined internal actions, a clear notion of a multi-agent environment, which is implemented in Java (this can be a simulation of a real environment).
3.19 JIAC, the Java-based Intelligent Agent Componentware (Hirsch et al. 2009) is a Java-based agent architecture and framework that eases the development and the operation of large-scale, distributed applications and services. The framework supports the design, implementation, and deployment of software agent systems. The entire software development process, from conception to deployment of full software systems, is supported by JIAC. It also allows for the possibility of reusing applications and services, and even modifying them during runtime. The focal points of JIAC are distribution, scalability, adaptability and autonomy.
3.20 MaDKit, the Multiagent Development Kit (Gutknecht & Ferber 2000) is an open source modular and scalable multiagent platform written in Java and built upon the AGR (Agent/Group/Role) organizational model. MaDKit agents play roles in groups and thus create artificial societies. It provides general agent facilities, such as lifecycle management, message passing and distribution, and allows high heterogeneity in agent architectures and communication languages, and various customizations.
3.21 NetLogo (Tisue & Wilensky 2004) is a multi-agent programmable modeling environment. It is designed, in the spirit of the Logo programming language, to be "low threshold and no ceiling". NetLogo enables exploration of emergent phenomena; it comes with an extensive models library including models in a variety of domains, such as economics, biology, physics, chemistry, psychology and system dynamics. It can be used both by teachers in the education community and domain experts without a programming background to model related phenomena. Beyond exploration, NetLogo allows authoring of new models and modification of existing models. It also powers HubNet, a technology that uses NetLogo to run participatory simulations in the classroom. For instance, in a participatory simulation, a whole group of users takes part in enacting the behavior of a system, e.g. acting as a separate, independent agent. NetLogo is very popular in the education and research community.
3.22 MASON (Luke et al. 2005) is a fast, easily extendable, discrete event multi-agent simulation toolkit in Java acting as a simulation agent platform. It was designed to serve as the basis for a wide range of multi-agent simulation tasks ranging from swarm robotics to machine learning to social complexity environments. MASON carefully delineates between model and visualisation, allowing models to be dynamically detached from or attached to visualisers and enabling check pointing.

SeSAm (Shell for Simulated Agent Systems) (Klugl 2009) is a generic environment for the development and simulation of Multi-
Agent models. Its main focus is to enable scientists to construct models by visual programming, since the agent paradigm is very intuitive, especially when modeling societies. The main entities in a SeSAm model are agents, resources and the world. There are some aspects that allow scaling up for complex multi-agent simulation: user functions, user features and model-specific data types. Simulation runs may be executed for different situations and aggregated into so called experiments. Also model instrumentation for gathering and visualizing simulation data is possible via the so called analysis. Before starting a simulation run, the model is compiled using standard optimization techniques from compiler theory, thus the power of visual programming was combined with fast execution. SeSAm was first a Lisp-based system but since 2000 it is redesigned and implemented in Java.
3.25 Finally, Swarm (Swarmfest 2012) the first re-usable software tool created for agent based modeling and simulation was developed at the Santa Fe Institute in 1994. Swarm was specifically designed for artificial life applications and studies of complexity. It was originally written in Objective-C, and then ported to Java. Swarm was originally developed for multi agent simulation of complex adaptive systems.
3.26 Next, five tables present the values of the described criteria (section 2) for each of the above agent platforms. The basic characteristics of each platform are presented in Table 2. The usability characteristics of each agent platform are presented in Table 3, whereas Table 4 presents the operating characteristics. Pragmatics of each agent platform is presented in Table 5 while, finally, information about the security management in each agent platform is presented in Table 6. The two last columns of that table include also the main publication of each agent platform and a download link for quick reference and space saving purposes.     End-to-end security Fairness Platform security models and only 10% use C. Mention that we used XML in the classification although it is not a pure programming language since it is used in many simulation cases for knowledge representation and communication purposes.

4.3
Hence, whenever the language is criterion for platform selection, the programming language classification presented here could be a useful tool. For instance, if there is a need for a general-purpose, concurrent and object-oriented language with just a few implementation dependencies then platforms using Java should be chosen. On the other hand, if the developing system/simulation should run without external applications (like the Java virtual machine -JVM) then platforms using C/C++ should be chosen. Moreover, C++ was designed for infrastructure programming hence platforms using it are suitable for that kind of studies, In cases where researchers want to describe what the system should accomplish in terms of the problem domain, rather than how to accomplish it as a sequence of the programming language primitives the platforms that support declarative/rule programming languages should be used. The Foundation for Intelligent Physical Agents (FIPA) is an international organization that is dedicated to promoting the industry of intelligent agents by openly developing specifications supporting interoperability among agents and agent-based applications. FIPA-compliance is a reference point for many researchers. Some platforms are fully compliant whereas others adopt only some of the available specifications. For instance, JAS and Agent Factory platforms supports only those specification that refer to the agent lifecycle whereas AGLOBE and Jason support specifications that refer to the communication principles and language, ACL and KQML repsectively. Table 8 presents a FIPA-compliance overview for the above studied agent platforms.

4.5
Compliance with FIPA specifications provides some specific advantages that could be proven useful or even crucial for some cases. For instance, being compliant to FIPA guarantees the system's architecture and performance due to the powerful and welltested protocols that enable agent cooperation and interoperability. Hence, FIPA standards are needed whenever dynamic, flexible and reconfigurable cases are studied. Moreover, FIPA specifications are popular in agent-based research and, thus, there is plenty of knowledge and support in the research community. Yet, it is up to the researches to decide if they need FIPA compliance or not and to what extent for their study. However, some of these platforms can be used for many other domains. The following table (Table 9) presents the various domains and the agent platforms that are specialized or commonly used for them.

4.7
To this end, the following classification indicates which platform could be more suitable for a preferred domain. For instance, if the case is a social study then SeSAm or Repast would be better choices. On the other hand, GIS systems are betters studies using platforms such as AGLOBE, Cougaar or SeSAm. Moreover, there are platforms that can be used in almost every domain like JADE, which is actually the most popular agent platform. However, usually there are more than one choices (platforms) for each domain, hence the final choice depends on a combination of the desirable platforms characterizes. For instance, if there is a need for a general purpose platform that uses C/C++ then MaDKit should be used (combination of Tables 7 and 9 data). Furthermore, as already mentioned, our intention is to study which agent platforms can be used in the Web, hence we tried to figure out which of them support semantic web technologies. The potential of a platform however has nothing to do with its current maturity in semantic web technologies. EMERALD for instance is fully semantic web oriented while Jadex support some of these technologies, e.g. the XML language. Hence, EMERALD can instantly be used in web applications whereas Jadex has first to be more extended. At the same time, there are plenty of the platforms that do not support yet semantic web technologies but their architecture could be easily extended to that direction. Cormas, for instance, is not yet semantic web oriented but an extension of it where semantic web communication languages will be supported would reveal how agents would act under real situations on behalf of their users. Table 10 presents a classification of the above platforms according to the degree (High, Average, Low) of their support in semantic web technologies (see Tables 3 and 4). Platforms with an average degree of support usually have adopted one or more semantic web languages (usually XML), for instance SeSAm supports ontologies (the only one), while those with a low degree have poor or no support at all.