views:

27

answers:

2

I want to create different kinds of processes in which agents interact with each other. I want to describe (define, formalize) processes of interaction between agents using a special language. In other words, I want to provide an environment where agents can interact with each other in a certain way and I want to describe the way of interaction using a programming language which is suited for that. Is there such a language?

To be more specific and less abstract, we can think of agents as users of a web site. The web site evolves depending on action of users (users have a certain freedom to act). What user can do and what happens as a result of their action should be described by the language.

+1  A: 

Usually the set of possible actions is fixed through the methods in an interface. Do you mean that at different times, depending on the previous actions, only some of the actions should be enabled (like having to log in before doing anything else)?

In that case, you could model it as components (user and systems), talking to each other, and model the interaction through a state machine or a sequence chart. If this is what you want, then an actual implementation could be just as easy as encoding the state machine into e.g. Java.

Or you might want to look at workflow frameworks. But I think you need to clarify your requirements a bit more.

Or do you mean that even new actions can be introduced by the user?

ShiDoiSi
What I had in mind does not allow users to introduce new actions. User are faced with a certain set of actions. This set depends on actions of the given user as well as actions of other users. So, I think users as well as the "system" should have some attributes which could take some values depending on previous actions of users.
Roman
+1  A: 

Erlang is one obvious answer, see papers such as this 2004 paper or the Wikibooks article on Autonomous Agents.

If you are happy working in a .Net environment, especially .Net 4, then take a serious look at Windows Workflow Foundation. There's an interesting paper on scaling and performance characteristics from the previous generation (2006).

Andy Dent