A new language, ALICA (“a language for interactive cooperative agents”), is featured in this book, based on the author’s doctoral dissertation. The language is designed for teams of agents that operate in a dynamic environment, such as robots operating in RoboCup.
ALICA belongs to the class of belief-desire-intention (BDI) languages. It is a logic-based specification language designed to support plan-based teamwork by multiple agents. ALICA does not include operations such as sensing and actuation, relying on other components to provide an interface with sensors and actuators.
The author describes the syntactic elements and the semantics of ALICA in detail. Low-level actions are represented as behaviors, which are considered atomic entities in ALICA.
The main element is a plan, which is a hierarchical structure of finite state machines. Each state in a state machine represents a specific activity that needs to be done by one or more agents. The edges connecting states represent transitions between those states; they have rules that specify the conditions under which the transition will occur. When an agent enters a state, it has to decide which task to take. This is done using the role the agent has, which depends on its capabilities and specifies its preferences.
Each plan has a utility function, which is a weighted sum of several functions, depending on the plan. Utility functions are used to choose a plan and allocate agents to the tasks in the plan. ALICA maintains a clean separation between the plans and the agents that execute them. It supports autonomy, since the agents decide on task allocation, and strong and weak synchronization and collaboration of agents via dynamic task allocation.
There is an open-source implementation of ALICA based on ROS, a robotic operating system that includes a graphical tool for users to build the models and generate the corresponding code.
Even though the book refers to the language as ALICA, the author makes a distinction between that term and propositional ALICA (pALICA), which supports parameters for behaviors and plans and hence can be used for more complex problems, such as constraint satisfaction and constraint optimization.
The book includes two case studies: one on exploration, and the other involving a RoboCup search and rescue simulation. The case studies are described at a relatively high level, discussing the modeling of the problem and showing some performance measures. A complete example of a simple program would have helped the reader by grounding the concepts in something more precise and detailed.
Since ALICA is based on formal logic, it remains to be seen whether researchers in other groups will accept it. The author claims a one-to-one correspondence of the concepts used in this specification and those used for the implementation, and states that this will make it easier to verify that the implementation satisfies the specifications. While this will help, will it be sufficient to make the language acceptable to a broader community? The answer will depend on many other factors, such as ease of use and robustness of the implementation, and not only on the expressive power and elegance of the language. In any case, the work is a step toward bringing concepts from modern programming languages into the practice of robot programming.