Chris Simpkins
Research Scientist, PhD Student

Home

Curriculum Vitae

Research

Publications

Presentations

Coursework

Useful Info

AFABL: A Language and Tools for Agent Modeling

My Ph.D. focuses on developing a language and tools for agent modeling. Agent modeling languages are not new; my contribution will be to bring the power of advanced agent modeling to people who are not experts in computer science or artificial intelligence, and to simplify the task for those who are. Like most science, this effort does not begin from nothing. Fortunately, there are towering shoulders on which to stand: Michael Mateas's ABL agent programming language, and Charles Isbell's A2BL machine learning extensions. We will begin from ABL and A2BL in designing our new language and tools, which we call AFABL, for "A Friendly Adaptive Behavior Language."

The Current State of the Art: ABL

ABL represents the cutting edge of agent modeling languages. ABL supports sequential and parallel behaviors in a reactive planning framework. Connected to a game or simulation engine, it supports multi-agent play with collaborative and adversarial interactions within a distributed decision-making framework. ABL supports action and goal conflicts as well as the representation of team intentionality that can be used for modeling and reasoning. ABL gives behaviors reflective access to the current state, supporting meta- behaviors that modify other behaviors. Meta-behaviors are useful for modeling intermixed chains of communication that arise in group decision-making and adversarial reasoning. From the foundation of these ABL features, there are many possible directions for AFABL.

Usability

Because "behavior" is a part of the ABL acronym, one might believe that ABL is designed for experts in human behavior, such as psychologists or sociologists. While ABL can support the needs of such designers, ABL is a complex language that exposes many technical details to agent authors, making it suitable mainly for programming experts. So far, mainly senior undergraduate and graduate students in computer science have been productive with ABL. Thus, bringing the power of ABL to non-programming experts is a major research challenge that requires that we answer difficult questions:

  • What kinds of abstractions and language features are required by behavior experts such as psychologists to effectively encode their domain knowledge in AFABL?
  • Can such non-programmer-oriented language features subsume the advanced features that lead to ABL's complexity without losing the power they bring to ABL?
  • Noting Alan Perlis's epigram -- ''a programming language is low level when its programs require attention to the irrelevant'' -- what is irrelevant when modeling intelligent agents?
  • Is it desirable to have both programmer-oriented, and domain expert-oriented language features in AFABL so that an agent author can choose to ''get down and dirty'' at times and maintain a higher level of abstraction at other times?
  • Is it realistic to expect psychologists or sociologists to adopt a form of computer programming as a basic part of their methodological tool kit? How should we go about making that happen?

Adaptability

One of the promises of machine learning is that it allows designers to specify problems in broad strokes while allowing a machine to do further parameter fine-tuning. Typically, one thinks of building a system or agent for some specific task and then providing it some kind of feedback, allowing it to learn. In this case, the agent is the point of the exercise. A2BL embeds this notion within a programming language itself by extending ABL with adaptive behaviors. The power of such a merger of machine learning and a programming language is that it allows for what has become known as partial programming; that is, it allows a designer to specify what he knows how to express exactly and leave the system to learn how to do the rest. Building or extending a programming language so that it has learning as a primitive operator invites many interesting research questions:

  • What does the availability of language-level learning primitives mean for building adaptive and interactive agents?
  • What implications does such an idea have for a compiler or interpreter?
  • How does this affect the programmer in organizing and thinking about problems?
  • How does such a language support modularity and reuse?

Software Engineering

At the end of the day, a AFABL agent is a kind of computer program running in a run-time environment. Whatever language features AFABL supports, computer programs (or computational agent models) will need to be written and debugged. Given the complexity of individual agents and our desire to support real world-scale multi-agent system modeling, the task of writing AFABL agents and multi-agent systems is likely to be a significant effort, akin to that of a large software engineering project. It is likely, therefore, that the field of software engineering will have much to offer us in the design of AFABL. Several research questions need to be addressed:

  • Are there effective visual metaphors for agent behavior that would enable the effective use of a visual programming environment for AFABL?
  • What does it mean to "debug" an intelligent agent or multi-agent system?
  • Can some of the mechanisms for structuring large software systems be transferred effectively to an agent-authoring domain? What new kinds of structuring mechanisms need to be invented?
  • Can AFABL's language, compiler, and run-time environment be designed in such a way that the agent author need not be concerned with efficiency or optimization? If not, are we resigned to requiring expert programmers to author intelligent agents?