Norm-aware and Norm-oriented Programming
Résumé
Handbook of Normative Multiagent Systems, chapter 8
Multiagent systems involve different abstractions. At the individual level, agents are situated in an environment, in which they act. Quoting [Weyns
et al., 2007] “the environment is a first-class abstraction that provides the surrounding conditions for agents to exist and that mediates both the interaction among agents and the access to resources.” At the system level, it is widely recognized that further abstractions become handy, like organizations and interactions [Demazeau, 1995], aimed at enabling a meaningful and fruitful coordination of the autonomous and heterogeneous agents in the system. Thus, agents are not only situated in a physical environment, they are also situated in a social environment [Lindblom and Ziemke, 2003] where they have relationships with other agents and are subject to the regulations of the society they belong to. Lopez and Scott [Lopez and Scott, 2000] identified two components in social situatedness. On the one hand, an institutional component where the “... social structure is seen as comprising those cultural or normative patterns that define the expectations agents hold about each other’s behavior and that organize their enduring relations with each other.” On the other hand, a relational component where social structure amounts to “the relationships themselves, understood as patterns of causal interconnection and interdependence among agents and their actions, as well as the positions that they occupy.” Norms, and normative reasoning, are at the basis of both components of social situatedness. Then, at the system level, norms produce obligations that drive the agents’ behavior, while at the agent level, commitments oblige agents towards each other. Only a few proposals in the literature tackle in an integrated way agents, environment, and norms. In order to explain the value of considering computational systems as based on these three abstractions, this chapter positions such kind of systems in the landscape of modularization of software, ranging from functional decomposition to business artifacts, using as a touchstone Meyer’s forces of computation [Meyer, 1997]. Then, it introduces some state-of-theart tools that integrate agents, environment, and norms. Such tools show the versatility of norms as programming components that can be used to specify how agents are coordinated at a system level, how they act on the environment, how the environment impacts on the normative state, and how agents can autonomously and directly create a coordination of their activities on an agent-to-agent basis.