GOAL is an agent programming language for programming cognitive agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides the key building blocks for designing and implementing cognitive agents. The language elements and features of GOAL allow and facilitate the manipulation of an agent's beliefs and goals and to structure its decision-making. The language provides an intuitive programming framework based on common sense notions and basic practical reasoning.
•Cognitive agents: programming with mental states that consist of knowledge, beliefs, and goals
•Modular programming with support for initialisation, event processing (e.g., percepts and messages), and main decision making
•Rule-based decision making using if-then and forall-do rules with support for four modes of rule evaluation
•Multi-agent systems that communicate by sending three different kinds of messages
•Built-in actions for updating mental state.