Describing Agent Societies: A Declarative Semantics Maksim Tsvetovat May 24, 2008 Abstract Agent-based approaches provide an invaluable tool for building decentralized, dis- tributed architectures and tying together sets of disparate software tools and architec- tures. However, while the agents themselves have been gaining complexity, and agent specification languages have been gaining expressive power, little thought has been given to the complexity of agent societies, and languages for describing such societies. In this paper, I propose a declarative language designed specifically for describing in an expressive way a variety of social interactions. I attempt to avoid the fallacies of ar- tificial restriction, and similarly confounding under-specification of the design domain, yet constructing a rigorous, machine-interpretable semantics. It is my hope that introduction of such semantic will lead to a constructive dia- logue between communities of agent-based social modeling and agent-based software design, and lead to a greater integration of agent development toolkits and agent-based modeling tookits. 1 Motivation Agent-based approaches provide an invaluable tool for building decentralized, distributed architectures and tying together sets of disparate software tools and architectures. However, while the agents themselves have been gaining complexity, and agent specification languages have been gaining expressive power, little thought has been given to the complexity of agent societies, and languages for describing such societies. There are two fundamental approaches in design of multi-agent systems. In one approach, collaborative agents of heterogeneous functionalities coexist in a world where cooperation is expected, communication protocols are well-defined and interactions are largely scripted by the developers. In the second approach, large numbers of agents perform similar functions (e.g. price negotiations), abide by a small number of standard negotiation protocols (e.g. auctions) and interactions are strategic. Both of these approaches are characteristic for engineered agent-based systems. By engi- neered systems I mean systems that are designed, as a whole, to perform a particular task or set of tasks, or to provide an infrastructure for human users of the system to perform their tasks. In engineered systems, efficiency and performance of the tasks are paramount, thus 1