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.
Support for many features, tools, and applications:
Cognitive agents: programming with cognitive states that consist of knowledge, beliefs, and goals and built-in actions for updating these states
Modular programming with support for initialisation, event processing (e.g., percepts and messages), and 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 different kinds of messages
Integrated Artificial Intelligence, with support for e.g. KR Technology (such as Prolog and OWL/SPARQL), reinforcement learning, and planning
IDE fully integrated into Eclipse making common editor features available and debugging using single-step execution, state inspection, and breakpoints
Support for environments using the Environment Interface Standard (EIS), and availability of many environments, including: Blocks World, Wumpus World, Tic Tac Toe, an Elevator Simulator, A Traffic Simulator, Blocks World for Teams (BW4T), Unreal Tournament 3 (UT3), and StarCraft
Teaching materials available for (under)graduate level (BSc, MSc)
Cognitive Technology: Programming at the Knowledge Level
Programming with cognitive states: Different from most other programming languages, GOAL supports programming at the knowledge level. Programming an agent means to program with the cognitive state of that agent, which consists of its declarative knowledge, beliefs and goals.
Agents use a knowledge representation language (a symbolic, logical language) to represent the information they have, and their beliefs or knowledge about the environment they act upon in order to achieve their goals.
Agents may have multiple goals that specify what the agent wants to achieve at some moment in the near or distant future. Declarative goals specify a state of the environment that the agent wants to establish, they do not specify actions or procedures how to achieve such states.
Agents commit to their goals and drop goals only when they have been achieved. This commitment strategy, called a blind commitment strategy, is the default strategy used by GOAL agents. Agents do not have goals that they believe have already been achieved, a constraint which has been built into GOAL agents by dropping a goal when it has been completely achieved.
The type of knowledge representation language is not fixed by GOAL but, in principle, may be varied according to the needs of the programmer.
Programming decision strategies: Programming an agent means to code a strategy or policy for action selection. Agents use decision rules to select actions, based on their beliefs and goals. The type of decision making supported in GOAL is based on human common sense decision making, as humans also decide and explain their choice of action by citing their beliefs and goals.
Modules, Learning, and Planning: Decision rules are grouped together in a module which itself can be viewed as a kind of action that the agent can choose to perform. Modules allow for adding hierarchical structure to an agent program and to encapsulate decision logic in re-usable modules. This way agents can focus their attention and put all their efforts on achieving a subset of their goals, using a subset of their actions, and using only knowledge relevant to achieving those goals. The decision making of an agent can be under-specified, which means that the agent's decision making does not always select a single action but sometimes will yield multiple actions that can be performed. This under-specifies the behavior of the agent, which can be exploited by a learning mechanism that optimizes the behavior of an agent. Decision rules may also be used to guide a planner that uses the action specifications that are part of the agent program to construct a plan of action.
Communication at the knowledge level: Agents communicate with each other to exchange information, and to coordinate their actions. GOAL agents communicate using the knowledge representation language that is also used to represent their beliefs and goals.