GOAL agent programming language

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 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. The language provides an intuitive programming framework based on common sense or practical reasoning.

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.
  • 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

border=0
An example blocks world problem
Another Example: A GOAL Multi-Agent Elevator Controller[1]

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 language such as Prolog, Answer set programming, SQL (or Datalog), or the Planning Domain Definition Language, 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: <agentname> {
  <sections>
}

The GOAL agent code used to illustrate the structure of a GOAL agent is an agent that is able to solve Blocks world 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{
  block(a), block(b), block(c), block(d), block(e), block(f), block(g).
  clear(table).
  clear(X) :- block(X), not(on(Y,X)).
  tower([X]) :- on(X,table).
  tower([X,Y|T]) :- on(X,Y), tower([Y|T]).
}

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{
  on(a,b), on(b,c), on(c,table), on(d,e), on(e,table), on(f,g), on(g,table).
}

All known blocks also are present in the goals section which specifies a goal configuration which reuses all blocks.

goals{
  on(a,e), on(b,table), on(c,table), on(d,c), on(e,b), on(f,d), on(g,table).
}

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([a,e,b]) is a primitive goal and we write goal(tower([a,e,b]) to denote this. Initially, tower([a,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([a,e,b]). It is also useful to be able to express that a goal has been achieved. goal-a(tower([e,b]) is used to express, for example, that the tower [e,b] 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{
  program{
    if a-goal(tower([X,Y|T])), bel(tower([Y|T])) then move(X,Y).
    if a-goal(tower([X|T])) then move(X,table).
  }
}

Actions, such as the move action used above, are specified using a STRIPS-style specification of preconditions and postconditions. A precondition specifies when the action can be performed (is enabled). A postcondition 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))).
  }
}

The GOAL agent programming language is related to but different from other agent programming languages such as AGENT0, AgentSpeak, 2APL, Golog, JACK Intelligent Agents, 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 and the reasoning capabilities required by cognitive agents.

See also

References

  1. ^ The elevator simulator is originally written by Chris Dailey and Neil McKellar and is available in its original form via http://sourceforge.net/projects/elevatorsim.
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.

Read other articles:

Siraja jambul-emas Regulus regulus Rekaman Status konservasiRisiko rendahIUCN22734997 TaksonomiKerajaanAnimaliaFilumChordataKelasAvesOrdoPasseriformesFamiliRegulidaeGenusRegulusSpesiesRegulus regulus Linnaeus, 1758 Tata namaSinonim takson Motacilla regulus Linnaeus, 1758 Regulus cristatus Distribusi       Breeding summer visitor        Resident year-round        Winter visitor(ranges are approximate...

 

Ōtsuki 大月町Kota kecil BenderaLambangLokasi Ōtsuki di Prefektur KōchiNegara JepangWilayahShikokuPrefektur KōchiDistrikHataPemerintahan • Wali kotaJun'ichi OkadaLuas • Total103 km2 (40 sq mi)Populasi (Oktober 1, 2015) • Total5.095 • Kepadatan49,47/km2 (12,810/sq mi)Zona waktuUTC+09:00 (JST)Kode pos788-0302Simbol  • PohonQuercus phillyraeoides • BungaCrinum asiaticum •&...

 

Jiang TingtingJiang Tingting dan Jiang Wenwen pada 2013Informasi pribadiLahir25 September 1986 (1986-09-25) (usia 37)Chengdu, Sichuan, Tiongkok OlahragaNegara TiongkokOlahragaRenang indah Dalam nama Tionghoa ini, nama keluarganya adalah Jiang. Jiang Tingting (Hanzi sederhana: 蒋婷婷; Hanzi tradisional: 蔣婷婷; Pinyin: Jiǎng Tíngtíng; lahir 25 September 1986 di Chengdu, Sichuan) adalah seorang perenang pindah asal Tiongkok. Ia berkompetisi pada Olimpiade 2008 dal...

Jembatan Mỹ ThuậnKoordinat10°16′40″N 105°54′35″E / 10.277646°N 105.909845°E / 10.277646; 105.909845Moda transportasikendaraan bermotorMelintasiSungai Mekong (lengan utara)Lokalbetween Tiền Giang and Vĩnh Long, Việt NamNama resmiCầu Mỹ ThuậnKarakteristikDesainjembatan kabel-tetapPanjang total1,535 mLebar23.66 mBentang terpanjang350 mJarak dari permukaan air37.5SejarahDibuka21 Mei 2000Lokasi Jembatan Mỹ Thuận (bahasa Vietnam: Cầu Mỹ...

 

Piala FA ThailandPenyelenggaraFATMulai digelar1980; 44 tahun lalu (1980)WilayahThailandJumlah tim736 (2016–17)Piala domestikPiala Championship ThailandPiala internasionalLiga Champions AFCJuara bertahanBuriram United (5 gelar)Tim tersuksesBuriram United, Rajpracha (5 gelar)Televisi penyiarTrueVisionsSitus webFA Cup Piala FA Thailand 2022–23 Piala FA Thailand (Thai: ไทยเอฟเอคัพ), dikenal secara resmi sebagai Piala Asosiasi Sepak Bola Thailand, adalah kompetisi pi...

 

Bahasa Batak PakpakBPS: 0017 1 Bahasa Batak Dairi Dituturkan diIndonesiaWilayah Sumatera Utara AcehEtnisBatak PakpakBatak DairiPenutur600.000 (2015)[1] Rumpun bahasa Austronesia Melayu-Polinesia Sumatra Barat Laut–Kepulauan PenghalangSumatra Barat Laut Varietas bahasa Batak Batak Utara Bahasa Batak Pakpak Sistem penulisanBatak, LatinKode bahasaISO 639-3btdBPS (2010)0017 1QIDQ2891045 Status konservasi C10Kategori 10Kategori ini menunjukkan bahwa bahasa telah punah...

Coordinate: 52°53′N 11°58′E / 52.883333°N 11.966667°E52.883333; 11.966667 Disambiguazione – Se stai cercando altri significati, vedi Havel (disambigua). Questa voce o sezione sull'argomento fiumi della Germania non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. HavelStato Germania Länder Meclemburgo-Pomerania Anteriore...

 

У этого термина существуют и другие значения, см. Горностай (значения). Горностай Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:Челюстнороты...

 

Brazilian cable television network This article is about the Brazilian sports network. For the similarly named and themed network in Portugal, see Sport TV. This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (February 2021) (Learn how and when to remove this message) Television channel SporTVLogo used since November 2021CountryB...

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

 

English actress (born 1968) Sophie OkonedoCBEOkonedo in 2008Born (1968-08-11) 11 August 1968 (age 55)London, EnglandAlma materRoyal Academy of Dramatic ArtOccupation(s)Actress and narratorYears active1991–presentSpouseJamie ChalmersChildren1 Sophie Okonedo CBE (born 11 August 1968) is a British actress. The recipient of a Tony Award, she has been nominated for an Academy Award, three BAFTA TV Awards, an Emmy Award, two Laurence Olivier Awards, and a Golden Globe Award. She wa...

 

1993 Hong Kong filmCrazy LoveDirected byRoman CheungWritten byRoman CheungVincent KokStarringLoletta LeeRelease date 17 March 1993 (1993-03-17) (Hong Kong) [1]Running time77 minutesCountryHong KongLanguageCantonese[1] Crazy Love (蜜桃成熟時) is a 1993 Hong Kong film directed by Roman Cheung. Plot A young, rich, free-thinking girl named Jane (played by Loletta Lee) visits Hong Kong instead of the study trip to the United Kingdom she tricked her parents ...

Weight used on a fishing line Three types of small lead sinkers Method feeder, a special type of sinker that holds groundbait A fishing sinker or plummet is a weight used in conjunction with a fishing lure or hook to increase its rate of sink, anchoring ability, and/or casting distance. Fishing sinkers may be as small as 1 gram (0.035 oz) for applications in shallow water, and even smaller for fly fishing applications, or as large as several pounds (>1 kg) or considerably more for dee...

 

Gergely PongrátzGergely Pongrátz sedang berbicara di Gang Corvin pada tahun 2004.Lahir(1932-02-18)18 Februari 1932Szamosújvár, Hungaria (kini Gherla, Rumania)Meninggal18 Mei 2005(2005-05-18) (umur 73)Kiskunmajsa, HungariaKebangsaanHungaria Gergely Pongrátz (Gherla, 18 Februari 1932 – Kiskunmajsa, 18 Mei 2005) adalah orang yang dikenal sebagai veteran Revolusi Hungaria 1956. Ia memimpin sekelompok pejuang kemerdekaan dalam Pertempuran Gang Corvin (Corvin Köz) dari tanggal 1 hingg...

 

Étienville L’église Saint-Georges. Blason Administration Pays France Région Normandie Département Manche Arrondissement Cherbourg Intercommunalité Communauté de communes de la Baie du Cotentin Maire Mandat Matthieu Giovannone 2020-2026 Code postal 50360 Code commune 50177 Démographie Gentilé Étienvillais Populationmunicipale 384 hab. (2021 ) Densité 52 hab./km2 Géographie Coordonnées 49° 22′ 41″ nord, 1° 26′ 09″ ouest Altitude M...

Bruno BruinsBruins pada tahun 2018 Menteri KesehatanMasa jabatan26 Oktober 2017 – 19 Maret 2020Perdana MenteriMark RuttePenggantiMartin van RijnSekretaris Negara untuk Pendidikan, Budaya dan SainsMasa jabatan29 Juni 2006 – 22 Februari 2007Menjabat bersama Medy van der Laan (2006)Perdana MenteriJan Peter BalkenendePendahuluMark RuttePenggantiMarja van Bijsterveldt Sharon DijksmaWalikota Leidschendam-VoorburgMasa jabatan22 Februari 2007 – 1 November 2007...

 

The relationship between poverty reduction and differing levels of welfare expense as a percentage of GDP[1] The effects of social welfare on poverty have been the subject of various studies.[1] Studies have shown that in welfare states, poverty decreases after countries adopt welfare programs.[2] Empirical evidence suggests that taxes and transfers considerably reduce poverty in most countries whose welfare states commonly constitute at least a fifth of GDP.[3]...

 

Supreme Court of the United States38°53′26″N 77°00′16″W / 38.89056°N 77.00444°W / 38.89056; -77.00444EstablishedMarch 4, 1789; 235 years ago (1789-03-04)LocationWashington, D.C.Coordinates38°53′26″N 77°00′16″W / 38.89056°N 77.00444°W / 38.89056; -77.00444Composition methodPresidential nomination with Senate confirmationAuthorized byConstitution of the United States, Art. III, § 1Judge term lengthl...

College in Peterborough, Canada For other schools named Fleming College, see Fleming College (disambiguation). Fleming CollegeMottoLet the Deed Shaw/Show[1] (former) Apply Yourself HereTypePublic College of Applied Arts and TechnologyEstablished1967PresidentMaureen AdamsonStudents2020: 4,476 FTEs[2]LocationPeterborough, Ontario, CanadaCampusUrbanColoursBlack   Turquoise   Orange   Red   Blue   Green  AffiliationsACCC, CCAA, Peterborough Centennial...

 

此條目需要补充更多来源。 (2019年9月8日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:上海广播电视台 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。   提示:此条目页的主题不是东方卫视。 上海广播电视台 合署办�...