HOME

TheInfoList



OR:

GOAL is an agent
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
for programming cognitive agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides the basic building blocks to design and implement cognitive agents by programming constructs that allow and facilitate the manipulation of an agent's beliefs and goals and to structure its
decision-making In psychology, decision-making (also spelled decision making and decisionmaking) is regarded as the cognitive process resulting in the selection of a belief or a course of action among several possible alternative options. It could be either rati ...
. The language provides an intuitive programming framework based on
common sense ''Common Sense'' is a 47-page pamphlet written by Thomas Paine in 1775–1776 advocating independence from Great Britain to people in the Thirteen Colonies. Writing in clear and persuasive prose, Paine collected various moral and political argu ...
or
practical reasoning In philosophy, practical reason is the use of reason to decide how to act. It contrasts with theoretical reason, often called speculative reason, the use of reason to decide what to follow. For example, agents use practical reason to decide wheth ...
.


Overview

The main features of GOAL include: * Declarative beliefs: Agents use 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. This ''knowledge representation language'' is not fixed by GOAL but, in principle, may be varied according to the needs of the programmer. * Declarative 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. * Blind commitment strategy: 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. Cognitive 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. * Rule-based action selection: Agents use so-called ''action rules'' to select actions, given their beliefs and goals. Such rules may ''underspecify'' the choice of action in the sense that multiple actions may be performed at any time given the action rules of the agent. In that case, a GOAL agent will select an arbitrary enabled action for execution. * Policy-based intention modules: Agents may focus their attention and put all their efforts on achieving a subset of their goals, using a subset of their actions, using only knowledge relevant to achieving those goals. GOAL provides modules to structure action rules and knowledge dedicated to achieving specific goals. Informally, modules can be viewed as policy-based intentions in the sense of
Michael Bratman Michael E. Bratman (born July 25, 1945) is an American philosopher who is Durfee Professor in the School of Humanities & Sciences and Professor of Philosophy at Stanford University. Education and career Bratman graduated from Haverford Colle ...
. * 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. * Testing: You can also write tests for GOAL.


GOAL agent program

A GOAL agent program consists of six different sections, including the ''knowledge'', ''beliefs'', ''goals'', ''action rules'', ''action specifications'', and ''percept rules'', respectively. The knowledge, beliefs and goals are represented in a
knowledge representation Knowledge representation and reasoning (KRR, KR&R, KR²) is the field of artificial intelligence (AI) dedicated to representing information about the world in a form that a computer system can use to solve complex tasks such as diagnosing a medic ...
language such as
Prolog Prolog is a logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
,
Answer set programming Answer set programming (ASP) is a form of declarative programming oriented towards difficult (primarily NP-hard) search problems. It is based on the stable model (answer set) semantics of logic programming. In ASP, search problems are reduced ...
, SQL (or Datalog), or the
Planning Domain Definition Language The Planning Domain Definition Language (PDDL) is an attempt to standardize Artificial Intelligence (AI) planning languages. It was first developed by Drew McDermott and his colleagues in 1998 (inspired by STRIPS and ADL among others) mainly to ...
, for example. Below, we illustrate the components of a GOAL agent program using Prolog. The overall structure of a GOAL agent program looks like:
main:  
The GOAL agent code used to illustrate the structure of a GOAL agent is an agent that is able to solve
Blocks world The blocks world is a planning domain in artificial intelligence. The algorithm is similar to a set of wooden blocks of various shapes and colors sitting on a table. The goal is to build one or more vertical stacks of blocks. Only one block may ...
problems. The beliefs of the agent represent the current state of the Blocks world whereas the goals of the agent represent the goal state. The ''knowledge'' section listed next contains additional conceptual or domain knowledge related to the Blocks world domain. knowledge Note that all the blocks listed in the knowledge section reappear in the ''beliefs'' section again as the position of each block needs to be specified to characterize the complete configuration of blocks.
beliefs
All known blocks also are present in the ''goals'' section which specifies a goal configuration which reuses all blocks.
goals
A GOAL agent may have multiple goals at the same time. These goals may even be conflicting as each of the goals may be realized at different times. For example, an agent might have a goal to watch a movie in the movie theater and to be at home (afterwards). In GOAL, different notions of goal are distinguished. A primitive goal is a statement that follows from the goal base in conjunction with the concepts defined in the knowledge base. For example, tower( ,e,b is a primitive goal and we write goal(tower( ,e,b to denote this. Initially, tower( ,e,b is also an achievement goal since the agent does not believe that a is on top of e, e is on top of b, and b is on the table. Achievement goals are primitive goals that the agent does not believe to be the case and are denoted by a-goal(tower( ,e,b. It is also useful to be able to express that a goal has been achieved. goal-a(tower( ,b is used to express, for example, that the tower ,b/code> has been achieved with block e on top of block b. Both achievement goals as well as the notion of a goal achieved can be defined:
a-goal(formula) ::= goal(formula), not(bel(formula))
goal-a(formula) ::= goal(formula), bel(formula)
There is a significant literature on defining the concept of an achievement goal in the agent literature (see the references). GOAL is a rule-based programming language. Rules are structured into modules. The ''main module'' of a GOAL agent specifies a strategy for selecting actions by means of action rules. The first rule below states that moving block X on top of block Y (or, possibly, the table) is an option if such a move is constructive, i.e. moves the block in position. The second rule states that moving a block X to the table is an option if block X is misplaced.
main module
Actions, such as the move action used above, are specified using a STRIPS-style specification of preconditions and postconditions. A
precondition In computer programming, a precondition is a condition or predicate that must always be true just prior to the execution of some section of code or before an operation in a formal specification. If a precondition is violated, the effect of th ...
specifies when the action can be performed (is enabled). A
postcondition In computer programming, a postcondition is a condition or predicate that must always be true just after the execution of some section of code or after an operation in a formal specification. Postconditions are sometimes tested using assertions ...
specifies what the effects of performing the action are.
actionspec{
  move(X,Y) {
    pre{ clear(X), clear(Y), on(X,Z), not(X=Y) }
    post{ not(on(X,Z)), on(X,Y) }
}
Finally, the ''event module'' consists of rules for processing events such as percepts received from the environment. The rule below specifies that for all percepts received that indicate that block X is on block Y, and X is believed to be on top of Z unequal to Y, the new fact on(X,Y) is to be added to the belief base and the atom on(X,Z) is to be removed.
event module{
  program{
    forall bel( percept(on(X,Y)), on(X,Z), not(Y=Z) ) do insert(on(X,Y), not(on(X,Z))).
  }
}


Related agent programming languages

The GOAL agent programming language is related to but different from other agent programming languages such a
AGENT0
AgentSpeak AgentSpeak is an agent-oriented programming language. It is based on logic programming Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentence ...
, 2APL
Golog
JACK Intelligent Agents JACK Intelligent Agents is a framework in Java for multi-agent system development. JACK Intelligent Agents was built by Agent Oriented Software Pty. Ltd. (AOS) and is a third generation agent platform building on the experiences of the Procedural ...

Jadex
and, for example
Jason
The distinguishing feature of GOAL is the concept of a declarative goal. Goals of a GOAL agent describe ''what'' an agent wants to achieve, not how to achieve it. Different from other languages, GOAL agents are committed to their goals and only remove a goal when it has been ''completely'' achieved. GOAL provides a programming framework with a strong focus on
declarative programming In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow. Many languages that ...
and the
reasoning Reason is the capacity of consciously applying logic by drawing conclusions from new or existing information, with the aim of seeking the truth. It is closely associated with such characteristically human activities as philosophy, science, lang ...
capabilities required by cognitive agents.


See also

*
Agent communication language Agent Communication Language (ACL), proposed by the Foundation for Intelligent Physical Agents (FIPA), is a proposed standard language for agent communications. Knowledge Query and Manipulation Language (KQML) is another proposed standard. Th ...
*
Autonomous agent An autonomous agent is an intelligent agent operating on a user's behalf but without any interference of that user. An intelligent agent, however appears according to an IBM white paper as: Intelligent agents are software entities that carry out ...
*
Cognitive architecture A cognitive architecture refers to both a theory about the structure of the human mind and to a computational instantiation of such a theory used in the fields of artificial intelligence (AI) and computational cognitive science. The formalized mode ...
*
Declarative programming In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow. Many languages that ...
*
Practical reasoning In philosophy, practical reason is the use of reason to decide how to act. It contrasts with theoretical reason, often called speculative reason, the use of reason to decide what to follow. For example, agents use practical reason to decide wheth ...
*
Rational agent A rational agent or rational being is a person or entity that always aims to perform optimal actions based on given premises and information. A rational agent can be anything that makes decisions, typically a person, firm, machine, or software. T ...


References

;Notes Literature on the notion of a goal: * Lars Braubach, Alexander Pokahr, Daniel Moldt and Winfried Lamersdorf (2004). Goal Representation for BDI Agent Systems, in: The Second International Workshop on Programming Multiagent Systems. * Philip R. Cohen and Hector J. Levesque (1990). Intention Is Choice with Commitment. Artificial Intelligence 42, 213–261. * Andreas Herzig and D. Longin (2004). C&l intention revisited. In: Proc. of the 9th Int. Conference Principles of Knowledge Representation and Reasoning (KR’04), 527–535. * Koen V. Hindriks, Frank S. de Boer, Wiebe van der Hoek, John-Jules Ch. Meyer (2000). Agent Programming with Declarative Goals. In: Proc. of the 7th Int. Workshop on Intelligent Agents VII (ATAL’00), pp. 228–243. * Anand S. Rao and Michael P. Georgeff (1993). Intentions and Rational Commitment. Tech. Rep. 8, Australian Artificial Intelligence Institute. * Birna van Riemsdijk, Mehdi Dastani, John-Jules Ch. Meyer (2009). Goals in Conflict: Semantic Foundations of Goals in Agent Programming. International Journal of Autonomous Agents and Multi-Agent Systems.


External links


The GOAL Agent Programming Language home
{{DEFAULTSORT:Goal Agent Programming Language Agent-based programming languages Declarative programming languages Multi-agent systems