We have released a new version of GOAL that is based more explicitly on the notion of a module and the concept that an agent is a set of modules. The syntax of the language has been redesigned to reflect this. The programming guide for the language has been rewritten as well.
Additional features added to the platform include a testing framework and the choice between using Prolog or OWL for knowledge representation.
The Eclipse plugin provides an integrated environment for programming GOAL 2.0 agents. See http://goalhub.github.io/eclipse/.
We have migrated the Environment Interface Standard (EIS) from sourceforge to GitHub and have started to migrate our own EIS-enabled environments to eishub on GitHub as well to make them more accessible. We have also started a similar effort for GOAL, where some initial effort to start using goalhub have been made as well. More to come soon, have a look!
We have given a tutorial on agent programming at EASSS 2014 in Crete! Follow the link http://ii.tudelft.nl/trac/goal/wiki/Education/EASSS2014 to download the presentation on GOAL and the exercise and software that we used.
A new Q&A site for GOAL has been created where questions can be posted related to programming in GOAL, writing agent programs, using development tools, debugging agents, environments that agents are connected with, etc. The benefit of using a Q&A site is that everyone can benefit from sharing the answers provided!
We have just released a major update of the GOAL Plug-in for Eclipse. This update now provides a fully integrated code writing and debugging environment in Eclipse for GOAL. A main feature of the debugging perspective is that it also provides code stepping for agent programs.
The plug-in is made available for Eclipse Kepler. Check out the instructions for installing the plug-in. A Quick Start Guide is available which briefly explains debugging agent programs in Eclipse and the main new features, including:
- code-stepping with display of rule condition and precondition evaluation
- breakpoints for (conditionally) breaking on a rule in a program
- introspector for inspecting beliefs, goals, percepts, and mails of an agent
- evaluation for displaying evaluation of current rule condition or action precondition
- interactive console for querying an agent's mental state
- history logs that display complete history of an agent's run
- Download GOAL software and documentation
- The GOAL Agent Programming Language
- Questions & Answers related to GOAL
- Education and Tutorials
- Developers Pages
The GOAL Agent Programming Language
GOAL is an agent programming language for programming rational agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides the basic building blocks to design and implement rational 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.
The main features of GOAL are:
- Programming with mental states: Different from most other programming languages, GOAL supports programming at the knowledge level. Programming an agent means to program with the mental state of that agent. A mental state consists of 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 in the literature, is the default strategy used by GOAL agents. Agents are assumed to not have goals that they believe are already 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 action rules to select actions, given their beliefs and goals. The type of decision making supported in GOAL is directly based on human common sense decision making, which also decide and explain their choice of action using beliefs and goals.
- Abstract Actions, Learning, and Planning: The decision making rules can be grouped together in modules which can be viewed as abstract actions. This allows 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 underspecified which means that the choice of action does not pinpoint a single action but allows for multiple options that can be performed. This underspecification can be exploited by a learning mechanism that optimizes the behaviour of a GOAL agent. Action 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 may 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.
Other Agent Programming Languages and Platforms
There are many other agent programming languages. More information on some of these languages can be found here.
For the previous version(s) of GOAL ('SimpleIDE'), see 'Old Releases'.
You can keep us up to date of your needs, let us know if you have any questions, and help us to improve the GOAL platform.
If you want to report a problem, please mail us the version of GOAL you are using, the mas and agent files, console info [always check the console tabs!], and any other information about the problem you encountered. Also have a look at the 'Frequently Asked Questions'.
For any questions, suggestions, or requests, contact us at: firstname.lastname@example.org.
Join the GOAL Project
If you want to register as a user and get access to other content, then use the register button at the top of this page or send a mail.