Agent Programming in 3APL

被引:199
作者
Hindriks K.V. [1 ]
De Boer F.S. [1 ]
Van Der Hoek W. [1 ]
Meyer J.-J.Ch. [1 ]
机构
[1] University Utrecht, Department of Computer Science, P.O. Box 80.089
关键词
Agent-oriented programming; Comparison of agent programming languages; Control structure; Formal semantics; Intelligent agent; Meta transition system; Practical reasoning rule; Selection mechanism;
D O I
10.1023/A:1010084620690
中图分类号
学科分类号
摘要
An intriguing and relatively new metaphor in the programming community is that of an intelligent agent. The idea is to view programs as intelligent agents acting on our behalf. By using the metaphor of intelligent agents the programmer views programs as entities which have a mental state consisting of beliefs and goals. The computational behaviour of an agent is explained in terms of the decisions the agent makes on the basis of its mental state. It is assumed that this way of looking at programs may enhance the design and development of complex computational systems. To support this new style of programming, we propose the agent programming language 3APL. 3APL has a clear and formally defined semantics. The operational semantics of the language is defined by means of transition systems. 3APL is a combination of imperative and logic programming. From imperative programming the language inherits the full range of regular programming constructs, including recursive procedures, and a notion of state-based computation. States of agents, however, are belief or knowledge bases, which are different from the usual variable assignments of imperative programming. From logic programming, the language inherits the proof as computation model as a basic means of computation for querying the belief base of an agent. These features are well-understood and provide a solid basis for a structured agent programming language. Moreover, on top of that 3APL agents use so-called practical reasoning rules which extend the familiar recursive rules of imperative programming in several ways. Practical reasoning rules can be used to monitor and revise the goals of an agent, and provide an agent with reflective capabilities. Applying the metaphor of intelligent agents means taking a design stance. From this perspective, a program is taken as an entity with a mental state, which acts pro-actively and reactively, and has reflective capabilities. We illustrate how the metaphor of intelligent agents is supported by the programming language. We also discuss the design of control structures for rule-based agent languages. A control structure provides a solution to the problem of which goals and which rules an agent should select. We provide a concrete and intuitive ordering on the practical reasoning rules on which such a selection mechanism can be based. The ordering is based on the metaphor of intelligent agents. Furthermore, we provide a language with a formal semantics for programming control structures. The main idea is not to integrate this language into the agent language itself, but to provide the facilities for programming control structures at a meta level. The operational semantics is accordingly specified at the meta level, by means of a meta transition system.
引用
收藏
页码:357 / 401
页数:44
相关论文
共 27 条
  • [1] Bratman, M.E., (1987) Intentions, Plans, and Practical Reasoning, , Harvard University Press: Cambridge, MA
  • [2] Cohen, P.R., Levesque, H.J., Intention is choice with commitment (1990) Artificial Intelligence, 42, pp. 213-261
  • [3] Dunin-Keplicz, B., Treur, J., Compositional formal specification of multi-agent systems (1995) Intelligent Agents (LNAI 890), pp. 102-117. , M. J. Wooldridge and N. R. Jennings (eds), Springer-Verlag: Berlin
  • [4] Fikes, R.E., Nilson, N.J., STRIPS: A new approach to the application of theorem proving to problem solving (1971) Artificial Intelligence, 2 (3-4), pp. 189-208
  • [5] Fisher, M., A survey of concurrent metateM - The language and its applications (1994) Proceedings of First International Conference on Temporal Logic (LNCS 827), pp. 480-505. , Springer-Verlag: Berlin
  • [6] De Giacomo, G., Lespérance, Y., Levesque, H.J., Reasoning about concurrent execution, prioritized interrupts, and exogenous actions in the situation calculus (1997) Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, pp. 1221-1226. , M. E. Pollack (ed.), Morgan Kaufman: Los Altos, CA
  • [7] De Giacomo, G., Levesque, H.J., (1998) An Incremental Interpreter for High-level Programs with Sensing, , Department of Computer Science, University of Toronto, Technical Report
  • [8] Hindriks, K.V., De Boer, F.S., Van Der Hoek, W., Meyer, J.-J.Ch., A formal embedding of AgentSpeak(L) in 3APL (1998) Advanced Topics in Artificial Intelligence (LNAI 1502), pp. 155-166. , G. Antoniou and J. Slaney (eds.), Springer-Verlag: Berlin
  • [9] Hindriks, K.V., De Boer, E.S., Van Der Hoek, W., Meyer, J.-J.Ch., Failure, monitoring and recovery in the agent language 3APL (1998) AAAI 1998 Fall Symposium on Cognitive Robotics, pp. 68-75. , G. de Giacomo (ed.)
  • [10] Hindriks, K.V., De Boer, F.S., Van Der Hoek, W., Meyer, J.-J.Ch., Formal semantics for an abstract agent programming language (1998) Intelligent Agents IV (LNAI 1365), pp. 215-229. , M. P. Singh, A. S. Rao and M. J. Wooldridge (eds.), Springer-Verlag: Berlin