MODELING OF SOCIAL SYSTEMS WITH INGENIAS

Juan Pavón, Candelaria Sansores, Jorge Gómez-Sanz Universidad Complutense Madrid Facultad de Informática, Ciudad Universitaria s/n Madrid 28040, Spain E-mail: [email protected],[email protected], [email protected]

KEYWORDS Also, the supported agent model is richer, both at micro Agent based simulation, Agent based modeling, social (agent) and macro (organization) levels, than in the agent simulation, agent development tools, model transformation, based simulation toolkits. Furthermore, agent modeling model driven development, INGENIAS Development Kit. concepts are closer to the abstractions that a sociologist or economist could use to model social systems. For these ABSTRACT reasons, we consider that these languages should be considered for modeling social systems rather than plain Most agent based simulation toolkits are based on the program code. programming language and this makes their use difficult for social scientists, who are not usually skilled in computer If we use such kind of modeling languages, in order to programming. However, agent modeling concepts are not far perform the simulation we need either to execute the from those which could be used for social modeling. This specification or transform it to some powerful simulation assumption is considered to propose the use of an agent- toolkit that could perform it. The execution means animating oriented language for the specification of social simulation the specification, and being able to observe the execution to models, and transforming (automatically) these models to get some information on how the system evolves over time. code for some agent-based simulation toolkit. This is made This is not normally supported by agent-oriented software with the INGENIAS Development Kit (IDK), a set of tools engineering tools. But agent-based simulation toolkits do this that provides a customizable model editor and modules for very well. So we are considering the automatic generation of automatic code generation. code for such platforms by applying transformations from the more abstract agent models. This idea of transformation is in line with model driven development (MDD) practices.

INTRODUCTION With this perspective, we have been working in the modeling of complex social systems using an agent-oriented There are good toolkits for agent based simulation (ABS). development methodology, INGENIAS (Pavón et. al 2005). However, for many potential users of ABS, such as This methodology is supported by a set of tools, the sociologists or economists, it is still very difficult to specify INGENIAS Development Kit (IDK, available at models with such tools. This is mainly because this task ingenias.sourceforge.net), which facilitates the edition of requires writing code in some, usually object-oriented, models and the definition of transformations for automatic programming language. There are some attempts to facilitate code generation. The foundation of INGENIAS is the the specification with graphical tools and a set of predefined definition of multi-agent system (MAS) meta-models, which behaviours. For instance, Sesam (www.simsesam.de/) can be customized to particular application domains. This is provides a graphical interface to specify agent behaviours as interesting if we need to extend the existing notation to cope a kind of state machines. And some rapid application with new issues that may be required for the simulation of a development environments, for instance using the Python social system. language in RePast Py (repast.sourceforge.net/repastpy/). But these are only applicable to simple models. Another issue is In this paper we present how INGENIAS that the agent models initially supported by the different can be used to specify social systems and how toolkits are rather simple, mostly reactive agents, whose transformations can be built towards one of the most well- behaviour is specified programmatically. An exception to known agent based simulation toolkits, RePast this is SMDL (sdml.cfpm.org), which provides a declarative (repast.sourceforge.net). In the next section we discuss about modeling language (although the learning curve seems to be what elements and concepts should be considered in a not short). language for modeling of social systems. This is followed by a section where the INGENIAS modeling language is On the other hand, there are many proposals of rich agent reviewed to see how it supports the requirements for social modeling languages in the agent-oriented software systems modeling, and how it can be extended. Then, a engineering domain. These languages are usually higher section describes how to make the transformation from level, based on some graphical notation, and, in some cases, INGENIAS social system specifications to RePast models. easily customizable. Their capabilities make them more These models can be used for simulations on the RePast suitable for depicting models than programming languages. framework. This has been already experimented for RePast and Mason (Sansores and Pavón 2005), in order to see the individuals or groups. Social interactions form the basis of consequences of using different agent based simulation social relation, a multitude of social interactions regulated toolkits. The conclusions summarizes some of these results by social norms, between two or more people, with each and discusses the limitations and prospective of this having a social position and performing a social role. approach. Table 1 summarizes this classification and illustrates the concepts required to define the elements of our language. MODELING SOCIAL SYSTEMS Table 1: Concepts for Modeling Social Systems Computational simulation of social phenomena implies building computer programs that model the evolution of Social Actions Description social processes. This involves the modeling of individuals Communication Aimed at giving beliefs to the and groups, and the processes of social interaction. The addressee characteristics of social phenomena, like emotions, social Rational Planned action, taken after pressure, etc. are difficult to be approached; therefore they considering costs and consequences can be modeled at some reasonable level of abstraction just Instrumental Action that is taken because it leads to for specific purposes. a valued goal, but with no thought of its consequences and often without We are specifically interested in modeling human behavior consideration of the appropriateness and individual decision making in society. This requires the of the means chosen to achieve it ability to represent social interactions which give rise to the Emotional Action that is taken due to one’s emergence of sociality like cooperation, competitions, emotions, to express personal feelings groups, organization, etc. Therefore, the level of abstraction Traditional Action that is carried out due to of the language we will be using is the individual’s social traditions, because they are always action and mind (Castelfranchi, 1998). carried out in such situation

The language for modeling social systems can be defined on With these concepts we will be able to define a language ontological concepts of the micro-sociology category of the composed of individual types and their attributes as well as sociological perspectives on Society. Under this perspective, the social actions, interactions and relations between a human being is capable of conscious thought and self- individuals and groups. The different instances of an awareness. Human action is not simply a reaction to external individual type will give rise different individuals in a stimuli, but the result of the meanings, theories, motives and society with different roles, i.e. father of a family, mother, interpretations brought into a social situation by the child, etc. It will also be possible to define groups, like individual. families, as aggregates of the individual type.

Accordingly to this, we need to conceptualize an individual The individual attributes may include emotional or character with mental states and not just like a behavioral entity. This attributes. For example, a numeric stress level variable that implies that representations of beliefs and goals of its own determines the agent’s behavior in a given time. There are are not enough and beliefs and goals of the minds of others many possibilities of attributes to define an individual, and are required as well. We agree with Castelfranchi when he depending of their values the individual could perform a states that an individual should be modeled like a goal- variety of predefined actions associated to these values. oriented agent whose actions are internally regulated by goals and whose goals, decisions, and plans are based on Society and the environment it imposes, will include beliefs. Both goals and beliefs are cognitive representations resources which the individual may count on, also the that can be internally generated, manipulated, and subject to individual may have a set of actions to perform on the inferences and reasoning. environment., like the action of using a resource for example.

Another fundamental concept is that of social action. As we INGENIAS MODELING LANGUAGE have mentioned before, an individual performs actions that, depending of the level of awareness, could be simple INGENIAS is a methodology for the development of multi- reactive behavior or social actions. For an action to be agent systems (MAS) that integrates different results in the considered social it needs to be goal-directed to another area. This integration is made by validation of methods and entity in a common shared world and that should be an tools through experimentation in several applications during active, autonomous goal-oriented entity itself, both entities the last years. For this reason, INGENIAS assumes from the interacting and perceiving each other as their similar. In this beginning the need to evolve the modelling language, the sense, we are not considering and action directed to the methods and the tools. And to facilitate this it bases on meta- environment as social, although in certain cases it could be. modelling. The different tools of the INGENIAS For our purpose, directed towards modeling human behavior, Development Kit (IDK), are generated from MAS meta- we propose to use a classification of forms of activity and model specifications. These are specifications of what interpersonal relations in Sociology to model social actions. elements the modelling language has and which constraints Social actions form the basis of social interactions, which is should apply in their use. With this framework, changes in a dynamic changing sequence of social actions between the meta-model specification are quickly reflected in the Both aspects, structural and dynamic, define the macro view tools. This approach facilitates the evolution of INGENIAS of the MAS. This perspective facilitates the management of and its adaptation to specific application domains, as it is the complex systems as it allows to determine the context and subject in this paper for social simulation. norms for the behaviour of agents, similarly to what happens in human organizations. The INGENIAS modelling language is structured in five packages, which represent the viewpoints from which a MAS Agent behaviour is described in the agent viewpoint. It is can be regarded (see Figure 1): Organization, Agent, Goals- determined by the agent mental state, a set of goals and Tasks, Interactions, and Environment. beliefs. Also, an agent has a mental state processor, which allows the agent to decide which task to perform, and a mental state manager to create, modify and delete mental state entities. INGENIAS does not state specifically how to Multi-Agent System define the mental state processor as it considers that there Organization may be many ways to implement it. For instance, it could be a rule based engine, a case based reasoning system, or a Agents Goals-Tasks neural network. It depends on the needs of the application or the mechanism that best fits according to the developer.

Agents are intentional entities, this means that they act as Interactions Environment they pursue some goals. As they are also social entities, they collaborate to satisfy organizational goals. When designing a MAS, it is possible to start with the identification of

organization (system) goals. These goals can refine into Figure 1: MAS Viewpoints in INGENIAS simpler goals up to a level where it is possible to identify

specific tasks that satisfy them. Another possibility is to The organization of a MAS establishes the framework where identify individual goals fo agents, which could be refined in agents, resources, tasks and goals coexist. It defines a similar way. In both cases, there will be a relationship of structural relationships (groups, hierarchies), social norms goals and tasks, which is described in the goals-tasks (constraints and forms in the behaviour of agents and their viewpoint. interactions), and workflows (how agents collaborate when performing tasks in the organization). As social entities, agents interact. Their interactions can be

produced in several ways, being the most common message Groups may contain agents, roles, resources or applications. passing, which is normally asynchronous, and shared spaces, There may be several ways to structure an organization. For where agents can act (produce modifications) and perceive instance, according to its functional needs. Or at the same (the modifications) as it is the case in shared tuple spaces. time it can be structured by a geographical distribution. An This is described in the interaction viewpoint. In INGENIAS, agent, therefore, can belong to several groups at the same apart of indicating the types of messages and protocols in an time. Assignment of elements to a group obeys some interaction, what is important is to show the intentionality of organizational purpose, i.e., because the grouping facilitates the interaction: which goals are pursued by the parts in the the definition of workflows or because its members have interaction, and how this contributes to their satisfaction. some common characteristics.

Finally, the environment is where agents perceive and act. In general, the concept of role is used to provide more Depending on the application, perception and acting can flexibility in the definition of organizations. A role have very different meanings. The environment consists of a represents functionality or services in an organization set of resources, applications, and other agents. In many structure. Agents play roles in the organization. And several situations, the environment can be specified as a set of agents may play the same role, each one according to its application programming interfaces, which would be the abilities and strategies. classes that wrap it to allow interaction with it.

The functionality of the organization is defined by its For social simulation, agents usually require to consider their purpose and tasks. An organization has one or more goals, location in the environment and the evolution of time. These and depends upon its agents to perform the necessary tasks to two aspects have required a refinement of the environment achieve them. How these tasks are related, and who is viewpoint in INGENIAS. responsible of their execution, is defined in workflows.

Workflows show the dynamics of the organization. They The temporal perspective deals with the progress of time in define associations among tasks and general information the model when executing the simulation. In this case we about their execution. For each task, a workflow defines are assuming that simulations are time driven rather than which are its results, the agent or role responsible for its event driven as most agent based simulation toolkits work execution and which resources are required. This is useful to with this schema (a reason for this is that an event driven gain knowledge on the relationships between agents through schema would require a central coordinator for events or a tasks, and the assignment and availability of resources in an complex synchronization among agents). This means that organization. there is a need to model constant time steps to simulate the social systems but not for implementing them. A negative cycle perception-reaction of agents along the time. side-effect is that there is absolutely no guarantee that what is being designed corresponds to what is being implemented The spatial perspective describes how agents are situated in and that the computational model is not leveraging the MAS the environment. In general, simulation toolkits provide two paradigm, For this reason, we include a set of social and and three dimensional spaces with diverse configurations. MAS concepts like a computational INGENIAS-SIM model built on top of Repast toolkit facilities, as we will see further These extensions have required modifications in the original on. INGENIAS MAS meta-model and re-generation of the IDK tools. In this way, it has been possible to get a new In the following, we describe how the generic transformation personalized IDK for agent based simulation. process of specifications with INGENIAS is performed, then the correspondence of INGENIAS elements with Repast elements. FROM INGENIAS TO REPAST The IDK supports transformation of specifications with IDK Repast (Recursive Porous Agent Simulation Toolkit) modules. Modules (or plugins) in INGENIAS are programs originally developed by (Collier et. al 2003) is a free open that process specifications and produce some output: source programming framework created by Social Science · Source code. There is an infrastructure that facilitates Research Computing at the University of Chicago for the the transformation of the specification into source development of agent based simulation using Java language. code. This is based on the definition of code It provides a class library for creating, running, displaying, templates for each target platform and information and collecting data from the simulations. A simulation extraction procedures from the current models. usually consists of a collection of agents of any type and a · Reports. Specifications can also be analysed to check, model that sets up and controls the execution of these agents’ for instance, whether they have certain properties or behaviors according to a schedule. The execution of the whether special semantics (defined by the developer) simulation is divided into time steps or "ticks” in which the are being respected, or to collect statistics of usage of agents may play an action. different elements. · Modifications on current specification diagrams. The specification of the agents and the environment in Though this feature is in beta stage, a module could Repast is carried out by a set of variables and methods insert and/or modify entities in the diagrams, or according to the object-oriented paradigm. It does not have insert/delete diagrams. This feature is useful to define intelligent agent concepts nor agent architectures, so an agent personal assistants that interact with the tool. is an object without any restriction in relation to its internal · Other models. As we produce source code, there is no architecture. However, it does provide specific libraries to difference in producing as well other models implement functionalities like neural networks or genetic following different meta-models. algorithms. Also, it provides facilities for easily developing graphical user interfaces, execution, monitoring, and The mapping from INGENIAS models to RePast is presentation of results. The monitoring facilities are capable implemented therefore by an IDK module. The module has to visualize and to modify agent's internal state dynamically to traverse specifications, extract information from as well as model properties at run time. The execution and specifications, and put the extracted information into presentation facilities led to visualize an animated templates of RePast agents. Environment constraints (such as representation of the simulation with a range of two- spatial and temporal aspects) can also map to the main dimension agent environments and visualizations, provides program. tools to record snapshots of the display and social networks support tools as well, also it offers built-in simulation results The IDK module for RePast code generation is developed as logging and graphing tools. an iterative process through several steps. This process can be applied similarly for other agent based simulation toolkits. Social abstractions like social actors, social actions, The basis for code generation is the availability of code organizations, groups, etc, are missing in Repast. These templates for the target platform, RePast in this case. This is abstractions are relevant for our purpose since we intend to usually the most difficult to obtain as it requires a good model social systems in a high level modeling language and knowledge of how to implement agents in the target map these models into Repast computational models, platform. Our experience has shown that this can be accomplishing in this way the code generation task. In a accomplished through an iterative process, in which the model driven development approach, if modeling concepts in developer defines progressively the architecture of the code the platform independent models do not exist in the platform for the target platform and the transformations from specific models, we have two options to solve this issue: one specification to code templates. This process could be is to transform or adequate the high level language concepts sketched in several steps, which have been applied to or design concepts into existing platform specific concepts, develop the module for RePast but could be used for or if they do not exist at all, like in the case of Repast toolkit, modules that generate code for other platforms: we have the second option which is to create them. If we do 1. Small initial prototype. The process starts with a not create them in the specific implementation platform then simple prototype of the simulation model. Initially, we are going to use agents and social concepts for modeling the developer would centre into one or more features is traversed properly and if all templates have been of the specification, easy to implement if possible. filled in as they should. Also, as templates demand For instance, how to make an agent process an event. concrete information, it may be possible that this is As a result, the developer gains knowledge on the not present or that it is not expressed as it should. target platform and has a prototype of an application Therefore, it may turn out that the specification was on the target platform that realizes a small part of the not correct or incomplete. In this sense, any module specification with a selected set of features. can be useful to validate the specification against 2. Marking up the prototype code. Looking at both the some completeness criteria. As a result, several kinds prototype and the specification, it is possible to of problems may appear: with the code generated by identify parts of the prototype that match parts of the the module, with the traversal of the specification, or specification. As a result, the developer identifies with the specification itself. possible mappings from the specification to the 6. Debugging. If something goes wrong, debug the prototype code. This is reflected in a prototype code prototype and go to: marked up with tags. The marked-up pieces of source a. Step 2. If there is new code that was not code are called templates. marked up before. 3. Generating/modifying a module. A module has to b. Step 3. If the failure was in the module and traverse the specification in order to obtain the the data traversal. information required to instantiate and fill in the c. Step 4. If there was a failure in the prototype prototype templates. The IDK provides an API for and could be solved without marking up the traversing specifications and Java packages for code again. building modules. In concrete, the module engineer 7. Refinement and extension. When the module is has to extend the class BasicCodeGeneratorImp for finished, it can translate diagram specifications into the code generation module. Other support classes code or perform verification of some properties. may be created as well. However, the module performs these tasks with a 4. Deploying the module. The resulting Java classes and reduced set of the diagram specification. The next templates of the module are put together into a jar step would be to take the code generated by the file. This jar file is deployed in a specific folder module and extend it so that it can satisfy other parts where the IDK Editor can load it dynamically. of the specification. Therefore, we would go back to 5. Testing the module. Testing is performed from the step 1. IDK Editor. By executing the module over the specification, the developer can check if the diagram

Template Data

@repeat id="agents"@ Repeat id=“agents” public class @v@agentid@/v@REPASTAgent var agentid=“ Person” implements Drawable, RunnableAgent { @ v@agentid@/v@REPASTAgent () { Repeat id=“ roles” @repeat id="roles"@ var roleid=“Altruist” rolesList.add(new Role(“@v@roleid@/v@ ”)); Repeat id=“ goals” @/repeat@ var goalid=“ GiveHelp” @repeat id="goals"@ goalsList.add(new Goal(“@v@goalid@/v@ ”)); @/repeat@ } Generated code } @/repeat@ public class PersonREPASTAgent implements Drawable, RunnableAgent { PersonREPASTAgent () { rolesList.add(new Role(“ Altruist”)); goalsList.add(new Goal(“ GiveHelp”)); } }

Figure 2: A simplified example of code generation

In this way, modules produce code using a template based · A model template. This template implements the approach. For RePast, there are several templates: main class which sets up the simulation components, · A RePast agent template. This template implements a like the collection of agents and the scheduler. For prototype of an INGENIAS agent which implements complicated scheduling mechanisms we could have a a drawable Repast interface for being displayed in a separately scheduler template. simulation and a RunnableAgent interface. · An environment template. This template implements representation setup process into coherent groups. It also the spaceless environment for agents without physics provides features for creating and setting up the components references as well as Repast space environment of the simulation, like agents and model’s parameters. The where spatial agents interact. RunnableAgent interface provides a standard access point for · A Role, Goal and Task templates which are usually referencing agents by the model, the run() method of all embedded in the agent template, agents in a simulation is called in each simulation step. The Agent class represents the social actors in a simulation, The way the module works is shown in Figure 2. A developer besides implementing the Repast Drawable interface it must defines a template of a RePast agent (steps 1 and 2) and conforms the RunnableAgent interface implementing the extracts data from the MAS specification (step 3) to generate run() method, where agents sensing, deliberating and acting the code. A RePast agent needs a goal, a role, and a name. cycle activities are called. The agent class also includes As a result, we get a Java Repast agent, which is instantiated sophisticated features like goal-dynamics, roles, actions, from the Repast agent template. tasks and interactions not showed in this figure but included in the computational INGENIAS-SIM model. These elements are configured within a module and deployed in the IDK (step 4), and tested over the specification of a MAS (step 5). As a result of the testing, we would obtain the generated code presented in Figure 2.

As we have said before, Repast lacks many concepts necessary to model social actors, although it gives users complete flexibility as to how they specify the properties and behaviors of agents. This flexibility allows Repast to be applied to a wide range of domains. However, it also means the burden of agent design and implementation is passed on to the simulation developer. While this may not be much of a problem where simple agents will suffice, in many applications it is useful to provide agents with more sophisticated capabilities; goal-directed agents that adapt to changing circumstances are desirable in many contexts.

The following figures depict: 1) the Java module developed to provide goal-directed behavior specifically for agents in Repast Simulations, this is, the computational INGENIAS- SIM model, 2) the main Repast elements and their INGENIAS specification elements. The Java module is the basis of Repast templates and relaxes the knowledge required to build agent-based simulations with Repast.

A typical simulation written with Repast will have at least three classes, the agent class, the model class and the space class. The Repast agent class will be largely simulation specific. If the agent is to be displayed, it should implement one of the Drawable interfaces. The Repast model class sets up and controls both the representational (variables like Figure 3: Repast-INGENIAS-SIM model - agent elements initial parameters) and infrastructure (variables such as a schedule) parts of a Repast simulation. All Repast simulation models must implement the SimModel interface. Repast The Repast class space controls the environment in which provides an abstract class SimModelImpl that partially the action takes place, in Repast it is theoretically possible to implements this interface and it is expected that most if not omit the explicit Space object, but this is rarely done. This all models will extend this class. Figure 3 shows these means that agents are always immersed in a space Repast classes in package uchicago.src.sim which represent relationship relative to each other, represented with one of the main elements to be mapped by INGENIAS-SIM the space classes of the package uchicago.src.sim depicted in elements. Figure 4, which also shows the corresponding INGENIAS- SIM elements. Also Figure 3 illustrates INGENIAS-SIM elements in package ingenias.sim.model, in this package the model class We provide a broader view of the environment. Instead of contains all the agents of a simulation and stores them in a stating that the agents are physically in the environment we list, referencing them via the RunnableAgent interface, it also give the possibility to define spaceless agents. In this implements SimModel interface required methods as well as sense, the environment will be notional more than physical. other methods that divide the infrastructure and The space environments we support are more flexible with respect to different representations, achieving this flexibility themselves, in ingenias.sim.model package illustrated in through an EnvironmentInterface interface, which offers a Figure5 we can observe how we achieve this and the standardized access point for all environments INGENIAS-SIM elements and their relationships with the implementations. As illustrated in Figure 4, the package corresponding Repast elements. ingenias.sim.model contains this interface and a concrete Environment class which implements it; the environment In ingenias.sim.model package, the Model class contains an class uses a space Repast object Object2DGrid to implement inner class named ModelRunner which is itself a subclass of the interface, this object represent a two-dimension grid Repast BasicAction class. The ModelRunner can therefore be space although it can be easily replaced by any other Repast scheduled each time step and the implemented execute() spaces. The spaceless environments are supported with the method will be executed each step, is in this method where aid of an environment class not depicted in Figure 4 but we call the run() method of each agent in the simulation, this which provides methods for manipulating the environment is, each agent in agentList list. This means that is the agent’s by the agents, for example to locate other agents, to use a internal structure where we have to include a decision resource, etc. mechanism of which actions to execute in each time step, in contrast to Repast which suggests calling actions in agents accordingly to a predefined listed actions in the model, of course our point of view although is better aligned with the MAS paradigm, it is certainly a more difficult way of timing agents’ actions. In the case of simulations where modelers need to have control over the artificial society to observe what is happening in every moment and what parameters influence the results, it is always possible to combine both scheduling approaches.

Figure 4: Repast-INGENIAS-SIM environment elements

Within a Repast simulation all state changes are the responsibility of a Scheduling mechanism implemented with the Schedule class. The mechanism consists of setting up methods calls on objects to occur at certain times. These method calls must be wrapped by sub-classes of the BasicAction class. A BasicAction consist of some variables used by the scheduler and an abstract execute() method. Any classes that sub-class a BasicAction must implement this method. It is in this method that the actual method call or calls to be scheduled should occur. These two Repast classes represent the main elements of Repast scheduling and can be observed in Figure 5 in package uchicago.src.sim.engine. Figure 5: Repast-INGENIAS-SIM scheduling elements

As explained in (Sansores and Pavón 2005) this scheduling Also, we can observe in Figure 5 the Goal class which are mechanism is contrary to some of the ideas that motivated a pursued by an agent and the Role class which may be played multi-agent based approach since creating a list of actions to by the agent. The role also pursues goals. An individual be taken at each time step looks more like a central agent can adapt its capabilities and observe specialization of coordinator approach. For this reason, we do not schedule roles based on a reinforcement mechanism, in this way method calls on agents, rather we schedule the agents changing dynamically roles played. The Task class allows defining a set of tasks to achieve the different Goals an agent is pursuing, thus an agent is related with a set of tasks to México and the project TIN2005-08501-C03-01, funded by perform. A task may be composed of one or more actions the Spanish Council for Science and Technology. defined with the Action class; the deliberating mechanism has to decide what action to execute depending of goal an agent is pursuing in a given time, an example of actions REFERENCES could be sending a message, moving in the environment, or Castelfranchi, C. 1998. “Modelling social action for AI agents.” application domain actions like moving an object for Artificial Intelligence 103 (1-2), 157. example. Collier, N., T. Howe, M. North (2003). Onward and Upward: The Transition to Repast 2.0. In: Proceedings of the First Annual North American Association for Computational Social and CONCLUSIONS Organizational Science Conference. Electronic Proceedings. Pittsburgh, PA USA (June 2003), The use of INGENIAS as shown in this paper facilitates the Pavón, J., Gómez-Sanz, J.J. and Fuentes, R. 2005. “The modelling of agent based social systems and its simulation on INGENIAS Methodology and Tools”. In: Henderson-Sellers, existing agent based simulation toolkits. This allows social B. and Giorgini, P., editors: Agent-Oriented Methodologies. scientists to avoid writing code in a programming language Idea Group Publishing, 236—276 Sansores, C. and Pavón, J. 2005. “Agent-Based Simulation and describing models in a more intuitive language, closer to Replication: A Model Driven Architecture Approach”. In: 4th their problem domain. Mexican International Conference on Artificial Intelligence (MICAI 2005). Lecture Notes in Artificial Intelligence, Vol. Another advantage is the ability to replicate models on 3789. Springer-Verlag, 244-253 different simulation toolkits. As modelling is performed with Sansores, C., Pavón, J. and Gómez-Sanz. 2006. “Visual Modeling a graphical language and then transformed into code, when for Complex Agent-Based Simulation Systems”. In: J.S. this transformation is performed for several simulation Sichman and L. Antunes (Eds.): Int. Workshop on Multi-Agent- environments it will be possible to contrast results. This has Based Simulation 2005, Lecture Notes in Artificial been already explored in other work (Sansores and Pavón Intelligence, Vol. 3891, Springer-Verlag, 174–189 2005) with RePast and Mason, where we have studied the effects of different scheduling strategies in the simulation. BIOGRAPHY An interesting issue of INGENIAS to consider for further work is the ability to extend the INGENIAS MAS meta- The authors of this paper collaborate in the grasia! research model to create domain oriented specification languages. group (http://grasia.fdi.ucm.es). They have a pragmatic view This would facilitate even further the modelling activity of of agent technology, so they focus on software engineering social scientists as they could use concrete domain concepts issues (methods and tools), which are the result of their rather than pure agent concepts from INGENIAS. This work experience in different application domains (information has to be done with domain experts (sociologists) and this is recovery, intelligent interfaces, workflow management a task that we are currently addressing. systems, resource planning and monitoring, ubiquitous computing, and social simulation). The main result of this work is the INGENIAS methodology for the development ACKNOWLEDGEMENTS and deployment of multi-agent systems. INGENIAS provides a framework for research on several areas. Currently, focus is This work has been developed with support of the Consejo given to the study of social properties in multi-agent systems Nacional de Ciencia y Tecnología (CONACYT) from and simulation of complex systems.