|
| Final year and MSc projects
|
|---|
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.
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.
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, WebFS...to 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 http://google.groups.com/). 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.
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 www.gipf.com 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:http://www.openmath.org
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 (http://monet.nag.co.uk) 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. http://www.daml.org, http://www.w3c.org and look for web services (e.g. WSDL, WSFL, SOAP). http://www.openmath.org
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 http://www.olivervickers.co.uk/fm2002) and the Protege toolkit (see http://protege.stanford.edu) 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 http://www.cs.bath.ac.uk/~jap/papers.html
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. http://www.globus.org/ogsa/releases/TechPreview/index.htm
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: http://www.iiia.csic.es/~jsabater/SLIE-web/EI.html. Islander : http://www.iiia.csic.es/~sierra/articles/2002/esteva. GTK+ 2.0 - Tutorial and API reference http://www.gtk.org. Dia - Introduction http://www.lysator.liu.se/~alla/dia/ DiaCanvas2 - http://diacanvas.sourceforge.net/
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.