Agent programming languages: programming with mental models

Intelligent Agents are personal assistants which can provide proactive support to users by executing routine activities like searching on the Internet, the scheduling of meetings, etc. The concept of an Intelligent Agent has its roots in Artificial Intelligence and provides a basis for the construction of a new programming paradigm. A programm is being viewed within this paradigma as a pro-active agent that has specific knowledge to achieve its tasks, is goal-directed, is able to construct appropriate plans and possesses the capabilities to execute those plans. Unfortunately, the construction and the design of Intelligent Agents is ad-hoc and proceeds without a proper theoretical basis. In this thesis, a more structured approach is proposed that provides a programming framework to develop agents. More specific, we design two programming languages that are specifically targeted at the construction of intelligent agents. The basic agent concepts like knowledge, goals, plans and capabilities provide the basis for the language 3APL. One of the unique features of 3APL agents is that they are able to modify and revise their plan. 3APL agents thus are able to modify themselves and can be viewed as self-modifying programs. The noition of a goal in 3APL has an operationel meaning and is very similar to a plan or procedure that the agent knows how to execute. In the agent language called GOAL (goal-oriented agent language), a more descriptive notion of a goal is incorporated. A goal in this second agent language denotes the state of affairs that the agent wants to achieve. The power of both of the agent langauges developed in the thesis consists in the fact that the basic programming concepts are natural and intuitive, and therefore provide a basis to bridge the gap between our common-sense way of thinking and the way in which software engineers develop programs.