2003/2004 Undergraduate Projects

Dr Joanna Bryson

E-mail: J.J.Bryson@bath.ac.uk

General Interests: Artificial Intelligence, Natural Intelligence, Artificial Life, AI Development Methodologies.

Samples of Specific Interests:  Modular models of animal intelligence, the evolution of social behaviour, intelligent environments, tutoring systems, VR characters, autonomous robots, multi-agent models of political systems.

For 2004/2005, staff were asked to come up with sketchy project ideas very early, to see the ones I submitted see Dr. Barry's Projects Page (now also copied at the bottom of this page.) The domain areas for the two Behavior-Oriented Design projects are not meant to be exclusive. If you'd like to do something else (for example, create an interactive drama in Unreal tournament), that may be fine, just email me. Also, an MSc project this year connected BOD to a MUD. I'd love to see that work extended. The idea there was to build monkeys to run around the MUD, so there's no reason to tackle natural language (much.) In addition there are two projects left from last year. Both of the below are fairly difficult and would require strong programmers. The first requires someone who is very good at GUI design, the second requires someone who is comfortable hacking together many elements for a complex system.

Title:  A GUI  Development Environment for Reactive Plans


Reactive plans are an excellent way to organise the behaviour of complex artificial agents, such as VR characters or simulated animals. A developer provides a concise, robust plan which the agent can then apply in a large number of diverse, dynamic situations. However, visualising, coding and debugging reactive plans can be tricky.

This project extends existing work on Behavior Oriented Design.  Two MSc projects over the summer have already created a GUI for editing plan elements and a new version of the POSH reactive planning system, both written in Python.  Python is a scripting language that is extremely simple to learn for Java or C programmers; it sacrifices a little speed for coding simplicity, e.g. it is not strictly typed. Writing GUIs in python is very quick and intuitive.

The project will require creating an improved view of the complete plan, connecting the plan execution software, connecting the plan execution software to the planner so that execution can be observed in real time.  Additional features should include some of the following:  connecting to an editor (preferably emacs) for editing source code for plan primitives, building demonstration AI characters in a graphical environment, user testing,a well specified API, logging facilities so that behaviour can be re-run out of real-time for debugging and analysis, evaluations and possibly improvements on the POSH plan representation.  The final writeup may be directed toward either industrial or academic standards, depending on the student's career interests.

The POSH planning system, though developed by Dr. Bryson, is being used and evaluated at several other universities.  It is expected that the outcome of this project will be made publicly available from the Bath AI web pages, and will be used by many students and researchers.

Pre-requisite knowledge:

Strong competence in at least one GUI development language, knowledge of HCI, willingness to learn new languages, interest in AI, willingness to read academic papers.

Indicative reading:

Title: Passing the Turing Test in a Games Environment:  Language and Action in UnReal Tournament.


The Turing test is a functionalist solution to the question "How will we know when we have achieved AI?" Alan Turing, (the English mathematician who funded AI and computer science) suggested the answer was simple:  you've achieved it when people can't tell whether they are interacting with a computer or a person.  Obviously this test is harder to pass in some circumstances than others.  This project will look at the domain of language in multi-user gaming.

In a gaming environment, there are many distractions.  Further language is often stereotyped.  Also, most of the things the language will be referring to are specified in the semantics of the game, either objects or actions.  The goal of this project is to create a simple reactive AI agent which gamers have trouble distinguishing from at least some classes (e.g. novices) of other gamers.

The first task will be to collect a large corpus of gaming conversations, possibly including chat-room dialogue.  The next task will to be attempt to categorise sentences into ones that can be responded to simply (e.g. "How are you doing?") and ones that require actions or observations (e.g. "Is there anything over there? " "Go right!")  The third will be to build an agent which can respond appropriately to at least some of the things that are said, or to some events in a gaming environment.

Existing work includes an MSc project this summer which produced an AI agent which operates in Unreal Tournament.  This agent is written in Python which is a good language for doing prototypes and has good regular expression libraries.

Writeup would probably be aimed toward an industrial standard, documenting design decisions, usability and extendability, it must include experimental evidence of the extent to which it passed Turing equivalence.

Pre-requisite knowledge:

Should be a very strong student, happy with both statistics and parsing, not afraid of reading or programming.

Indicative reading:

Daniel Jurafsky and James H. Martin's Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition, Prentice Hall, 2000

Joseph Weizenbaum's ELIZA: Communications of the ACM
 Try also typing M-x doctor in any full version of emacs.

The Behavior-Oriented Design of Modular Agent Intelligence

From Dr. Barry's Page:
A Reactive Project Planner
Reactive planning is the way that intelligent systems can respond to a changing environment with appropriate actions. Project planning is the way managers try to make sure organizations do the same thing. yet tools for project planning is seldom sufficiently reactive to address unexpected opportunities or unforseen problems. For example, a product may be found that eliminates many of the steps previously required by the project (though possibly adding some integration), or a key employee may take another position, forcing massive rescheduling.
The purpose of this project is to create a tool that allows for the rapid sketching of a partially-complete project plan, as well as supporting changes and editing. The idea is to make a tool for dynamic, agile project management, not just for arachaic waterfall approaches. At any stage it should be possible to print a gannt chart. A previous project exists which provides a web interface and preliminary database structures, the goal of this project would be to produce a useable final product.
Shared Bibliography Database with Custom Citation Tags
This project is aimed at making a bibliographical database that can be shared by an entire research group or community. It will be based at least in the first instance entirely on bibtex, a simple ascii-text database. Client-server solutions for such a database already exist, but with the drawback that they force everyone to adopt a single, often obscure, naming convention for their references. This impedes acceptance. This project would store not only the database, but optionally individual user's citation reference tags. The database will serve, search, and index references (bibtex format, in the first instance.) The front end will parse latex documents, construct custom bib files, and possibly correct citation naming errors intelligently. Requires database and some text processing skills. This is good candidate web services application.
The Behavior-Oriented Design of an Artificial Football Team
Behavior-Oriented Design (BOD) is a way of making artificial intelligence based on combining object oriented design and POSH reactive plans. The goal of this project is to write a critical analysis of BOD, improve on the IDE for POSH, and to create a good team for the Robocup Football Simulator League (that's VR, not robots.) This project will be in Java, we have already connected a Java version of POSH plans to the robocup simulator.
The Behavior-Oriented Design of an Unreal Capture-the-Flag Team
Behavior-Oriented Design (BOD) is a way of making artificial intelligence based on combining object oriented design and POSH reactive plans. The goal of this project is to write a critical analysis of BOD, improve on the IDE for POSH, and to create a good team for playing capture the flag in Unreal Tournament. This project will be in Python, we have already connected a Python version of POSH plans to Unreal Tournament, though there may be a newer version.
A Reactive, Behaviour-Based Real-Time AI Musical Accompanist
A reactive system is one that can respond to a changing environment with appropriate actions. Behaviour-Based AI is based on the principal of modularity -- many elements of a system solve small problems in parallel, then somehow these parts are assembled into a complete, coherent behavior. In 1992, I built an AI Reactive Accompanist which some people in the field say is still a leader in its field. However, this system never worked in real time, and never learned basic folk-music patterns so that it could intelligently resolve "obvious" issues, like what chord to play during the last, sustained note of a song. This project would require a good deal of coding and use of the CSOUND system, produced by Prof. Fitch. The original system is in C++, but it does not have to be a constraint on the new system.