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
- Extensive documentation
- Teaching materials available for (under)graduate level (BSc, MSc)