of Bath

Final year and MSc projects
Department of Computer Science

Current project proposals

This first list outlines potential complete projects for final year BSc students, MSc (Computer science, Multimedia) students as well as possible starting points for PhD work.

Projects are added, starting at the top, as and when I think of them.


Web services offer an effective mechanism for delivering complex computational services to clients while avoiding the need to install large software systems on the client's system. This has the twin advantages of reducing access overheads for potential clients, while at the same time avoiding the need to develop sophisticated configuration mechanisms to take account of a variety of deployment platforms. Furthermore, control of the software remains in the hands of the web service deployer. Answer set solving is a computationally demanding application that may well be inappropriate to run on a desktop computer. The purpose of this project is to deploy generic answer set solvers as well as some sample answer set applications as web services and to investigate how to describe these services using the web service description language (WSDL) and how to describe their functionality using appropriate semantic web technologies.

A joint project with Marina De Vos.


The objective of distributed answer set solving - for the purpose of this project - is not so much parallelism - although that is a corollary - but geographical location of the computation. Answer set solving is a computationally demanding application but also one that offers significant scope for parallel execution. Although the analogy should not be interpreted too strictly, the effective purpose of this project is to build something not unlike SETI@home for the solution of answer set problems. Ideally, there would also be a web service interface for the submission and monitoring of jobs.

A joint project with Marina De Vos.


When agents seek to cooperate with one another, or just wish to delegate part of a task that is either too much for them or outside their domain of expertise, it is necessary to identify which agents have the appropriate skills to take on the task - whether they agree to do so is a different matter. Thus, agents will advertise their capabilities in some suitable machine processable language, typically KIF or OWL. The purpose of this project is to adapt the matchmaking/brokerage architecture developed as part of the GENSS and KNOOGLE projects for use by agents in order that they may identify both services to invoke and agents with which to cooperate, even to the extent of forming coalitions (using the algorithms described by Shehory and Kraus) and to evaluate the effectiveness of the groupings thus formed. Software platform should probably be either JADE or Agentscape. The matchmaking/brokerage tools from GENSS/KNOOGLE will be supplied and supported during the project.


Debugging agent applications is quite painful at the language level: the programmer really wants to see what interactions are taking place and even information about the internal state of an agent. The sniffer tool in Jade has proven an effective model for observing agent communications. The objective of this project is to build a browser interface that connects to multiple instances of the agentscape agent platform to display similar information to Jade's sniffer. It would also be useful if it could support the injection of messages into a platform to enable observation of the functional behaviour of agents. A further development could be the means to inspect parts of the internal state of an agent.


Quite simply, the implementation of the Agentscape agent platform for a handheld, probably an HP iPAQ. Interesting issues (not all of which necessarily need be addressed) will include the migration of agents to and from the PDA, the dynamic reconfiguration of the security domain as the PDA roams from one access point to another and interaction with web services via the built in web service gateway.

This is a joint project with Benno Overeinder (Free University, Amsterdam).


In an earlier study, Graham Room (Social and Policy Sciences Dept, Bath) with Nick Britton (Mathematical Sciences) used differential equations to model the effect of education policy. The aim of this project is to repeat the exercise using agent-based modelling. There would be two sets of actors: head teachers, who would choose to select pupils either (a) on a social class-blind basis, or (b) giving absolute priority to any middle class pupils who applied; middle class and working class parents, each preferring to place their child in a school with a high proportion on middle class pupils, but with the working class parents having a less marked preference than the middle class parents. These coefficients of preference could be modified in the model and the consequences inspected.

This is a joint project with Graham Room (Social and Policy Department)


The trading agent competition is currently implemented as a client written in Java and a server written in SICSTUS Prolog with a RMI derived communication model. The task of this project is to develop a new, but functionally equivalent client and server in which the server is a web service and the client interacts with it via SOAP asynchronous messaging. Ideally, the client should operate with the JADE or Agentscape agent platforms.


Aim is to demonstrate, through a comparative study, using simulation, different qualities of two opposing views of software development. First, requirements are negotiated once in the early stage of a software development project and then fixed until delivery of the software ("waterfall software development"). Second, requirements are emergent and renegotiated on a time-fixed basis, e.g., every week "agile software development"). The outcome, or performance measure, could be user satisfaction with the software and possibly software adoption (i.e., is the software used?). The relationships between the developers and the users would need to be expressed and this might be done in social capital terms, e.g., friendships, trust, knowledge sharing. We would want to ask questions of the simulation such as: what patterns emerge in situations where agile software development in used and there is little or no social capital?

This is a joint project with Richard Vidgen (School of Management).

Past project proposals

The following proposals are, in principle, no longer available, but remain listed for the sake of history. In exceptional circumstances it may be feasible/desirable to revisit a past project when new technology or a new approach offer a different perspective.


There are several possible projects under this topic heading, including:
  1. The development of an analogue of the MONET/GENSS mathematical web services architecture targetted at music, including an ontology for music services, a music service description language, a music service problem language and the deployment of a range of simple music web services. See and for more background information.
  2. Construction of a signal processing workbench using the Triana web services toolkit, including the development and deployment of new services for access through Triana.
  3. Performance via PDA, where each PDA represents a synthetic instrument and the location of the PDA determines its position in the audio mix. Thus, as the instrument is played by the person using the PDA and as the PDA moves in the auditorium, so the mix changes to give the right sound at the right location. Tracking of the performance to permit subsequent playback and the creation of sonic installations for audience exploration.
  4. A web client supporting the automatic classification and construction of genre playlists from available audio files, so that the user may select a few example pieces and then request "more of the same" or "not like this" or "distant genres" or "change the mood from A to B".
  5. A performance environment in which the synthetic instruments are located in space and the player(s) interact with them by moving through regions identified with the instrument, leading to signals being fed into the audio mix in response to the players' movements.
These projects are typically joint with John Fitch.


The delivery platform for several projects under this heading is either a PDA or a lap-top with bluetooth (for GPS receiver) and wireless ether connections. Possible projects include:
  1. Turning images into navigable maps. The task here is to take a scanned image, representing a map of the area of interest and make it usable by a route planner by creating metadata such as where there are barriers or links (for example) between regions. It will also be necessary to provide a mechanism to calibrate the image against actual position. Zooming and panning of the map image are also necessary functions. Zooming may require the storage of image data at different resolutions. Demonstration of simple route planning.
  2. A map event editor. The task here is allow the user to script events associated with regions. The events could take a variety of forms, but some examples are text pop-ups or sound sequences. Issues include: what to do when the tracking device repeatedly moves in and out of a region and what region shapes are practical.
  3. Synthesis of location sensor information. The task here is to investigate the effectiveness of using wireless access points (indoors) for position computation (by triangulation) and to synthesize that information with GPS data at transition points to outdoors.


Conventional directory structures represent a very weak form of file metadata, but force the user to classify a file under a single category. Likewise filename extensions. Typically, this is inadequate, and users forget where files are, or think they are under one directory when they are elsewhere and subsequently resort to directory tree searches to find the file by name or by (string) content. Some filing systems permit symbolic links so that a single file may appear to be present in more than one directory at a time, but maintenance of such links is extremely tiresome. By using classification techniques and semantic web technology virtual directories identified by concepts can be created and populated with the relevant files for the user to browse on a by-need basis. As new files are created they may be classified and subsequently "found" in the right place. Ideally, this would be implemented as a new kind of user-defined file system type in Linux, but this is not essential.


A recent project has demonstrated a proof-of-concept set of mail message processing tools permitting query by concept and automatic clustering of messages by concept. Possible follow-on projects include:
  1. Development of the proof-of-concept and its integration into the Sqirrel mail webmail system.
  2. Using user-created metadata as cues, inferring additional metadata, involving the user in the metadata cycle.


The project is to create a sieving service for use in a factorisation algorithm. This sieving service will look for smooth numbers over intervals in Z. The implementation must be done using the programming language Aldor (see Output should be in XML (OpenMath - Special note will be taken if log-based techniques are used as opposed to trial division, and if the Gnu Multi-Precision library is used for all arithmetic. Co-supervised by Bill Naylor (research officer on the GENSS project).


Description:Web services are often quite specialized so that in order to achieve a user's objective, several web services must be orchestrated to form a data-flow graph and results merged or replicated along the way. This means we need some way of storing intermediate results (since streaming would not be viable) until the receiving web service is available, but also because it allows observation of what is being computed. Other scenarios are very long computations, whose partial results could be queried as they are produced, or computations that checkpoint themselves at regular intervals or computations that produce very large datasets of which only some elements are of interest. The objective of this project is to research and evaluate existing P2P filing systems and then to develop a web service interface to one or more (as determined from the requirements) for trialling with the MONET mathematical web services project including the generation of provenance metadata for tracing the source of a dataset.

Pre-requisite knowledge:Some understanding of some (or all!) of web services, WSDL, SOAP, HTTP and the principles of P2P systems is desirable.

Indicative reading:WSDL, SOAP documents at W3C; information on P2P systems where you can find them (on the web), e.g. Eternity, Publius, LOCKSS, HiveCache, Mnet, Freenet, Intermezzo, DSpace, Legion Filing System, Storage Resource Broker, BitTorrent, Code, opencola, swarmcast, name but a few!


Description:Last year, Tristan Stevens developed a mixed mode tree/free-text editor for XML documents which supported document validation using the Oracle schema validation API. The interface used the classical MVC pattern to provide constrained views on the tree representing the document and to restrict what could be input depending on the document schema. The objective of this project is to generalize the user interface to support the construction of documents that describe diagrams, by permitting the user to place and link icons, while still taking advantage of the validation mechanism to ensure that only schema-correct diagrams can be constructed. The particular application objective is to permit the diagrammatic construction of electronic organizations for agent based interaction.

Pre-requisite knowledge:The Oracle API and the software to be extended are all in Java. Understanding of MVC pattern would be helpful as would some familiarity with XML and XML schemas.

Indicative reading:Tristan Stevens dissertation from 2002-2003, Oracle XML schema validation API


Description:Web services are often quite specialized so that in order to achieve a user's objective, several web services must be orchestrated to form a data-flow graph and results merged or replicated along the way. A classical AI approach to planning involves the use of a plan library (effectively a set of templates) and a matching/decomposition mechanism to build a plan for the given goal, by combining elements of the plan library. i/o-plan is a sophisticated planning system available either as a simpler embeddable component (i-plan) or a web service (o-plan) providing generic planning functions: the user supplies the plan elements and the plan operators to make it domain specific. The objective of this project is to develop a plan library targetted at the synthesis of plans composing mathematical services for the MONET project.

Pre-requisite knowledge:Some understanding of some (or all!) of web services, WSDL and SOAP is desirable.

Indicative reading:Russell and Norvig, Artificial Intelligence (textbook) for planning background. Or anything about STRIPS (Nilsson) and or i/o-plan (Tate).


Description:Designing the organization of a website and specifically the navigation between pages can be a delicate task, the results of which may potentially contain mistakes which could compromise the site's integrity. The use of institutional specifications for building electronic organizations for agent interaction is gaining acceptance as a means both to simplify construction and to enable the verification of properties and adherence to (security) policies. The objective of this project is to use the institutional specification formalism developed here to develop software to generate web sites and to prototype some demonstrator sites.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description: On the surface, this is a fairly conventional internet brokerage architecture, but there is a very significant issue related to reputation, which must be addressed. Objective would be to develop a framework to bring together customers with texts to be translated and potential translators, with the aim of providing suitable guarantees about fairness and and quality to both parties. It would also be desirable to support the construction of translation teams for large tasks or tasks requiring complementary skills.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174. Material on negotiation and case-based reasoning.


Description: The Tuning project is a high-profile EU-funded activity examining issues in the harmonization of higher education structures in Europe. The objectives are to lay the foundations for qualifications to be recognized Europe-wide and to enable institutional transfer of students through an extension of the ECTS system currently used to support temporary study periods in the framework of the Socrates program. It is the extension of the ECTS system that is relevant to this project in that ECTS is in the process of being developed from a rather simplistic credit + mark + ranking measure, designed for the purpose of enabling the integration of the performance of one year's study abroad into the program of the home institution, into a much more sophisticated multi-dimensional model capturing, amongst other things, qualities of the institution granting the credit, the program in which the credit was earned, the level of the unit and learning outcomes.

The aim of this project is to build an agent based system to help students in identifying potential places for future study and receiving institutions in assessing applicants. Thus, the technical issues include: (i) the construction of a (distributed) classification system capable of identifying which institutional profiles have a good match with that of the student in order to help the student make plausible choices (ii) a complementary mechanism for admissions offices in receiving institutions to assess the suitability of applicants, mediated by reputation models (iii) evaluation of the criteria being developed for the extended ECTS model, and their utility and applicability in practice.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description: Last year, Tom Hibbert designed and constructed a website and database to support community trading of skills and services using mutual credit - a so-called Local Exchange and Trading System (LETS), where skills and services are traded for a local, complementary currency, or for a combination of complementary and fiat currency. The objective of this project is to build on that framework to incorporate agents, acting as representatives of participants in the scheme, which will interact to advertise and to identify trading opportunities on behalf of a person and furthermore to collaborate in the building of teams to tackle jobs requiring complementary skills or that are larger than one person. An important element of this project too, will be the implementation of a model of trust and mechanisms for its maintenance.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description: self explanatory? Agent-based modelling of experiments (safe-ish) and agent-based control of experiments (not so safe).

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description: The Java Virtual Machine (JVM) instruction set subjectively appears relatively inefficient at encoding Java programs compactly because there are lots of simple instructions which do very little. If the instructions encapsulated more complex operations, the result should be that a) programs would be smaller b) they would run faster. The reason for the second observation is that lots of small instructions means the JVM spends a greater proportion of its time on work to decide which instruction to execute compared to work done for the program being executed. The objective of this project is to apply either statistical or evolutionary computing techniques to analyse and improve the Java instruction set in order to produce more compact and more efficient programs suitable for the limited memory resources found in mobile devices like telephones, PDAs and embedded systems.

Pre-requisite knowledge:Compilation techniques. Byte code interpretation. Java virtual machine.

Indicative reading:Any book on JVM internals.


Description:Variable speed limits are a very crude global control mechanism for easing congestion and reducing the frequency of chaotic stop-start waves on motorways that are operating above their saturation point. Automatic car guidance and control systems on the other hand aim to depend on the introduction of new infrastructure (e.g tracking strips, sensor networks). The objective of this project is to develop asimulation of an agent-based control system that will use off-the shelf technology (GPS and wireless networks) for local control and not require the installation of any new equipment on a motorway, to enable local optimization of speed and proximity.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description:Mail clients are providing increasing functionality for the organization of messages. But it is not clear how much the means for classiyfing messages creates an illusion of control: time is spent deciding where to file a message and subsequently look for it again, yet one single mail box with thousands of messages is problematic to search. A syntactic solution could use a personal Google, but the user would still have to employ the usual tricks to narrow the search space. The objective of this project is to develop a mail client that in addition to using standard data mining keyword analysis schemes also constructs semantic metadata about the content of message which can then be reasoned about thus enabling more powerful searching commands.

Pre-requisite knowledge:Some knowledge of semantic web concepts, ontologies, web services.

Indicative reading:basic data mining techniques. The Chandler project


Joint supervision: Julian Padget and Owen Cliffe

Description:Existing platforms for developing software agents (i.e. Jade, FIPAos, Zeus) tend to be highly insular, forcing agents to run 'inside' the platform, typically limiting developers to a single programming language (i.e java) and a single paradigm for specifying agent behavior. Platforms such as these also typically force the developer to familiarise themselves with a large monolithic runtime API for managing agent functionality.

The goal of this project should be to develop and analyse a simple message based interaction layer and library which would allow programs written in one of several common programming languages (i.e. C/C++, Java, Perl, Python, Scheme etc) to interact as agents.

The interaction layer should provide functionality for at least the following:

Additionally you may also wish to consider either extending the platform or implementing agents to support:

Pre-requisite knowledge: Given the requirement for cross-language integration it will probably be necessary to implement the library layer in C or C++ so a knowledge of one of those languages is recommended. Additionally some understanding of one or more of the scripting languages mentioned may be useful.

Indicative reading: "An Introduction to MultiAgent Systems" by Michael Wooldridge (ISBN 0 47149691X), D-Bus, SWIG April and April Agent Platform


Description: (Project proposed by Peter Gradwell: JAP is the nominal supervisor.) Background - I own/run a small ISP "just for fun". One of the things I do is run a usenet server (hosts discussion groups, as archived at news servers typically handle *lots* of traffic, but its very hard to get useful statistics out of it, mainly (a) because of the traffic volume and (b) because news administrators a busy people and never got round to writing a statistics package for it.

Pre-requisite knowledge: See Peter

Indicative reading: See Peter


Description: Taxi services in Bath are mostly coordinated by a small group of intermediator companies (e.g. Abbey, ) which do not actually own any taxis themselves. Instead individuals with a single taxi or employing several people and running several taxis pay a service charge per month to the intermediator for the supply of pick-up information. The customer information is relayed by radio to a text display receiver in each car, which shows the location of the caller and also the number of cars in that sector (Bath is divided up into numerous geographical areas for the purpose of the taxi service: this division in itself is a potential topic for study). The receiver effectively acts as a simple "electronic finger" at an auction. The first driver to accept the call is given the precise address for collection and the details of the destination. If the driver then declines the offer, no further offers will be made/accepted to/from that receiver for a fixed period of time (eg. 40 minutes). Otherwise, the driver accepts the call and is then unavailable until the passenger(s) has/have been delivered. Long distance trips are usually advertised by the same mechanism (even if pre-booked with the intermediator) but only to selected drivers (depending on availability, willingness to undertake, experience) and then only a relatively short time before the actual service is required. The task of this project is to build an agent-based system within the framework of the AGENTCITIES.NET project to handle the core functions of the taxi institution as just described and to specify how this might be delivered through a GPRS mobile system. Consideration of novel value-sharing and charging models is encouraged.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description:Much human activity is governed by norms, which range from the abstract and hopeful (e.g. fairness, honesty, respect for the individual) to explict derogations (e.g. some action is prohibited) and obligations (e.g. taking one action brings with it the obligation to carry out a subsequent action). These norms fall broadly into two categories: legal and social. The objective of this project is to build agents which are capable of negotiating about, and perforce, reason about, the norms that govern their actions, with the purpose of obtaining agreement (a notion that will have to be defined very carefully of itself) for changing the norms. A change which benefits one agent to the cost of all the others is probably going to be rejected, but most cases are unlikely to be as clear cut. A different scenario is a norm change which benefits the environment, but does nothing directly for the agents within that environment (a "tragedy of the commons" situation). Having built a suitable experimental framework, the second part of the project will be to investigate scenarios like those outlined above as well as developing more characteristic situations.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.


Description: The University currently operates a paper-based expenses claim system. The objective of this project is to develop forms which can be filled in via a web browser which will carry out the calculations based on the data provided by the claimant, in particular, with a view to simplifying the handling of claims made for non-UK travel where currency conversion is required. Submission of claims will continue to be on paper because of the need to submit documentary evidence of expenditure, so it will also be necessary to generate a hardcopy, similar to the existing form. Will involve working with XML and PDF.

Pre-requisite knowledge:Programming

Indicative reading:None


Description: Integrate the CSound sound synthesis package with a suitable agent development environment (probably April) and carry out initial experiments into the construction of agent performance (not real-time!). There are several possible projects which could build on the basis of CSound linked to Jade, including: development of a suitable agent communication language for coordination of the performance; development of an interface for human composers to work with one or more synthetic performers.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174.

A GIPF PLAYER (20020514)

Description: Gipf is a two player (antagonistic) strategic board game. It is played on a hexagonal board with edges of length 4. Players add pieces to the board with the intention of forming lines of 4 pieces and hence capturing the opponent's pieces. This is the only move. Game ends when one player can no longer play. Full details are available on and a geniune set including printed rules is in the postgraduate workroom. The challenge is to write a computer program capable of playing Gipf to a high standard. The game may also be analysed with classical game theory to identify the winning positions. Joint supervision: Ben Mankin and Julian Padget.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174. GIPF web site.


Description: Computer systems tend to be built on the assumption that user will interact with them via a screen/keyboard/mouse or more recently via a web-browser. In many settings, and in the absence of widespread internet access, this is unrealistic both technically and socialogically. However, telephones are widely available and although limited, offer the basis for access to and control over services (e.g. 'phone banking). The task of this project is to build a telephone interface for a bed and breakfast reservation system developed in the context of the AGENTCITIES.NET project both for users and suppliers, with the computer system acting as an intermediary. Various off-the-shelf free software components are available and so, in part, the work will comprise in assessing, understanding and linking together existing software as well as writing some original code.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174. GIPF web site.


Description:Car pooling is often put forward as a good way to save resources, but the practice is not so easy. For commuting, it puts considerable constraints on the participants, that work against flexi-time and part-time practices. For longer distance travel, it is a hit-and-miss affair of word-of-mouth or putting an offer on a noticeboard and hoping. Then there is the problem of accounting: for commuting this can be avoided by having rotas so that the participants contribute approximately the same number of driving trips, but for one-off longer distance trips, there is the awkward business of computing some amount based on miles travelled and a mileage cost (these typically vary widely). The objective of this project is to assist in the take-up of long distance car pooling by building a web-based trading platform where providers are recompensed with non-convertible credits and consumers spend such credits to purchase travel. In line with the principles of community currencies, it shall not be necessary to have credits in order to be able to spend them, but the system must provide mechanisms to inhibit exploitation and to model the reputations of both providers and consumers, who will typically be represented by agents within the trading framework. Appropriate technology is probably PHP and MySQL.

Pre-requisite knowledge: Database design, client and server side programming. Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:PHP and MySQL by O'Reilly. Recommended text for CM30174.


Description:Most agent platforms offer an ad-hoc semantics derived purely from the implementation and which frequently breaks down in the presence of non-determinism/concurrent execution, creating significant debugging problems. Some exceptions to this are dMARS and the Jack toolkit, both of which are based on Rao and Georgeff's BDI model. A revision of this model is presented with a formal basis in David Kinny's thesis. The objective of this project is to take his specification to implement the instructions of an agent virtual machine (AVM) and develop a language for writing agent specifications (following Kinny's model) and compile and run them on the AVM. Since the specification is given in terms of a variety of process algebra, a strong candidate implementation language is JOCAML (Join Object CAML).

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174. David Kinny's thesis (available from Julian Padget). JOCAML web site.


Description:Symbolic algebra systems, like other programming language systems, all have their own idiosyncratic input languages. This can be acceptable if the user is happily typing expressions directly into the system and reading the responses, although it does imply a learning curve in moving from one system to another, for example to take advantage of a particular functionality or library. The objective of this project is to develop a uniform interface to a symbolic algebra system, where the user enters expressions via a browser and they are then submitted to a symbolic algebra system server across the net, (probably) using OpenMath as the mathematical content language. Joint supervision: James Davenport, Julian Padget, Marc-Laurent Aird.

Pre-requisite knowledge:Familiarity with client and server side programming (using languages such as Java, Javascript, perl).

Indicative reading:


Description:Writing and editing XML documents is now a painful necessity, but using a conventional character-based editor is generally found to be too awkward, because of the nature of XML tags, for all but small documents. Furthermore, since XML documents are normally written with respect to a DTD, it is desirable to check the document structure for adherence to the specification at creation time, rather than waiting for a parse failure in the XML client (e.g. browser, or software agent). Good tools do exist, but cost money, some not so good free tools are also available. The purpose of this project is to build a tool for the creation and verification of XML documents, but with a very strong emphasis on finding effective ways for the presentation of documents, navigation within them and ease of creation. Joint supervision: Owen Cliffe and Julian Padget.

Pre-requisite knowledge:Java, XML, interface design

Indicative reading:Any book on XML. Look at interfaces of existing software to appreciate problems and possible solutions. Some aspects of the JBuilder interface might be applicable as also might the technique of predictive text input seen in mobile 'phones.


Description:This work is to take place in the context of the EU-funded project MONET ( whose objective is summarized in the title of this project. The actual project is using current industry "standard" mechanisms, such as WSDL, UDDI and SOAP. The objective of this project is to parallel that activity using the richer capabilities of the DARPA Agent Markup Language (for Services), known as DAML-S. The practice of the project is to deliver an agent (probably using JADE or one of the other agent platforms currently in use in the department) which can find, process and invoke (symbolic) mathematics services provided by the MAPLE computer algebra system, where the mathematical content language is OpenMath.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174., and look for web services (e.g. WSDL, WSFL, SOAP).


Description:A formal specification of an agent-based platform for the distribution of tissues and organs has been developed in conjunction with UPC Barcelona and the Hospital Sant Pau in Barcelona. The objective of this project is to use the JADE skeleton components developed by a related project in 2001-2002 (see and the Protege toolkit (see to build agents and the ontology for their communications and then validate it against the requirements.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174.

Indicative reading:Recommended text for CM30174. Relevant papers from


Description:The next stage of the development of the WWW foresees a transformation from a linked collection of documents for human reading to XML structured documents for consumption by software agents. This leads to the establishment of service directories (UDDI), service access descriptions (WSDL) and ontological descriptions of service provisions (DAML and DAML-S), aspects of which are unified in the Open Grid Services Architecture (OGSA). To tie in with the EU-funded MONET (Mathematics On the NET) project, the objective of this project is to develop a symbolic algebra server using the OGSA tools and to evaluate this against the service being developed within the framework of MONET. Supervisors: James Davenport, Julian Padget, Marc-Laurent Aird.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174. Some knowledge of XML and related mark-up languages.

Indicative reading:Recommended text for CM30174.


Description: Multi-agent institutions are an interesting mechanism for specifying certain types of multi-agent system, particularly where a degree of trust between agents is desirable such as in Electronic Commerce. An electronic institution describes the structure and interactions of autonomous agents in a particular situation. Institutional specifications essentially have two tiers, as follows:

At present the language used for specifying electronic institutions is graphical but few good tools exists for actually manipulating these specifications.

The Dia tool is an open source project for creating diagrams such as UML class-diagrams and flow charts. Dia itself is really only a drawing package and does not provide any means for extracting the data structures represented by the diagrams drawn using it. The DiaCanvas widget has been created from dia for the purposes of building diagramming tools.

Using the DiaCanvas2 widget and GTK+2.0.x/Gnome tools specify, design and implement an application that can manipulate the Performative and Dialogical Structure diagrams and read/write model information using an interchangeable file format (that may be designed by the student) Joint supervision: Owen Cliffe and Julian Padget.

Pre-requisite knowledge:Familiarity with agent related concepts and relevant software, such as the content of unit CM30174. Good C programming skills and familiarity with Linux/Unix.

Indicative reading:Recommended text for CM30174. Douglass C. North, "Institutions, Institutional Change and Economic Performance", available from the library. Agents - "MultiAgent Systems, Weiss" Institutions: Islander : GTK+ 2.0 - Tutorial and API reference Dia - Introduction DiaCanvas2 -

These past projects are listed partly for reference, partly for information and partly because they may inspire some new proposal. I am probably not keen on supervising any of these again unless a significant new angle is proposed.


The XML stylesheet transformer language is as powerful, although somewhat more verbose than, traditional programming languages, but with the advantage of built-in web access and support for distributed programming. The purpose of this project is to demonstrate these features through the development and implementation of a simple mobile agent programming language.


The computational grid is a major international project to link together computing resources around the world and to present them to the user as if the components were part of a unified distributed computing system. A very significant issue in the management of such an organization (or perhaps a confederation of organizations) is the selection of appropriate resources and accounting for their use. The objective of this project is to investigate institutional models and norms that might be used to govern such a scenario.


Development of service agents to run in the framework of the Agentcities.NET ( project. Suitable application areas are most likely related to tourism, both as providers of local information and as searchers for information from other agentcities nodes. However, other applications areas are welcome (e.g. a second-hand book market) and may be proposed by candidates wishing to take this project. Will probably involve writing Java and using the JADE agent platform (, although other languages and agent platforms can be discussed. Some possible topics are:


Evaluate some of the advanced programming languages available for secure distributed computation, choose one and implement a prototype of a simple trading platform.


The essence of this project is to take the experience of developing the new version of the FishMarket in Jade and link that to the institution specification language that has also been developed in order to establish a correspondence between specification elements and generic/parameterizable Jade components, so that an institution, the agents to populate it and the ontology of the communication language can be generated automatically.


Develop a web site and database to support the auctioning of second hand books. The system must be Unix based, implying working with packages such as Apache, PHP/PXP and msql and languages such as Perl.


Develop a web site and database to support the trading of goods and services using an invented unit of currency. The system must be Unix based, implying working with packages such as Apache, PHP/PXP and msql and languages such as Perl. The system needs a moderate level of security differentiating at least between user and administrator, although finer levels of detail are conceivable. For the user, it must support at least editing of services offered based on a set of (predefined) categories, payment authorisation, and various search facilities. For the administrator, it must support at least, the creation, modification, suspension and deletion of accounts in addition to the user functions. An initial database will be supplied.


Community currencies are alternative money systems to those issued by central banks and that have become the norm nowadays. They are particularly suited to localization of trading (in contrast to conventional monies which support globalization) and in situation where there is low liquidity either due to poverty, a straightforward lack of physical money, or where conventional money is too volatile (e.g. high inflation). Several different models of community currencies have been developed and the objective of this project is to use the SIMILE visual programming systems to build models of these different approaches and observe the characteristics of each in order to develop guidelines as to which may be suitable in a given scenario. (May be suitable for a single module mathematics project.)


Msql is a popular free lightweight database server. It operates in two modes: one where it is configured through the specification of the tables and the other in which it loads data into the database and process SQL queries on the data stored. The purpose of this project is to develop extensions to the msql system to permit the specification of tables in XML, the loading of XML structured data into those tables and the generation of XML structured data in response to SQL queries.


Develop software for the preparation, organization, management and display of presentation material, with LaTeX as one of the primary formats. Will probably require the use of Perl and XML, maybe Emacs Lisp and perhaps even a simple database.


The Dia diagram editor permits the user-definition of icons, but the mechanism is not well-documented and involves a significant amount of work. The objective of this project is to develop a simple scripting language for Dia, coupled with some generic classes of icons which can be parameterized and instantiated, to permit the rapid development of new icons based on existing behaviours and the simplified development of new behaviours.
Julian Padget,