Human controlled transport (cars and bikes) and autonomous vehicles will have to co-exist for a long time, but it is interesting to explore the consequences for the road system of a fully or largely autonomous vehicle population.  For example, how much road space is required and what sort of external coordination mechanisms (traffic lights, roundabouts, pedestrian crossing controls, one-way streets) are necessary, if any, and what are the implications for road maintenance and car parks (we’ll need some as holding pens for vehicles not in use – or is on street parking, for proximity to point of use, preferable?)… amongst other things.  How many vehicles are needed for a given density of population, a particular road network and a specified quality of service?  The simulation should build on the SUMO framework, augmented with intelligent agent drivers (probably implemented using the Jason platform).


The ENLITEN project on household energy behaviours and energy consumption reduction has been collecting a range of data (~10 sensors/household) every 5 minutes from ~70 houses in Exeter since September 2014.  These data are stored in a mysql database on the BUCS servers.  ENLITEN, like many other projects, needs to preserve its data for other researchers to access after the project has finished and after all the researchers employed on the project have left.  SQL table descriptions provide a form of documentation, but the semantics of the data are only present in human ascriptions to the names of the fields.  Furthermore, the SQL structure imposes requirements on any potential user to import the data into a compatible SQL database platform.  The aim of this project is to explore how to lift the data to a semantically annotated form by the creation of a semantic layer of open-linked data (OLD) and to develop the tools to migrate SQL/CSV data automatically to semantic OLD along with accompanying semantic metadata, while preserving the underlying data representations.  A benchmark outcome would be the facility to demonstrate SPARQL queries over a semantically annotated interface to samples of ENLITEN data.   The project will be partially supervised in conjunction with Sukumar Natarajan (Architecture) and Cathy Pink (University’s Research Data Scientist).

ENLITEN related projects


ENLITEN stands for ENergy LIteracy Through an Intelligent Home ENergy Advisor. It is a multi-disciplinary collaborative research project between the Universities of Bath and Oxford. The aim of the project is to reduce carbon emissions from energy use within buildings by understanding, incentivising and influencing changes in the habitual behaviours of the buildings’ occupants.

Sensors that monitor temperature, humidity, motion and noise in three rooms have been installed in 70 houses in Exeter. For each household, there are also sensors which measure the energy consumption of three most frequently used appliances and the general energy consumption of the household.

A whole building energy model is being developed by bringing together the building, energy and occupant models. This will underpin the design, development and evaluation of an in-building interactive tool to help the occupants identify and break poor energy habits and form better ones. The tool will provide customised, actionable prompts rather than numerical energy estimates, which are poorly understood by occupants. See for more details.

Original proposals are welcome, but here are some possibilities for undergraduate project related to ENLITEN:

  1. Institutional modelling of domestic energy consumption from the perspective of the social norms underlying energy usage: comprises both comfort-related energy behaviour such as temperature, light and CO2 level and appliances usage norms
  2. Develop a model of interaction between social norms and individual domestic energy usage behaviour; the model will empower virtual agents that can reason about the behaviour of human actors and tailor adequate interventions
  3. Develop a feedback reasoning algorithm for the in-building interactive tool whic will influence occupants behaviour; the feedback may address either energy literacy or energy usage related social norms and practices
  4. Occupant activity inference ontology based on sensor data from the houses; the ontology can then be used to infer high level concepts and occupant behaviour based on low-level sensor data.
  5. Develop a browser prototype of an interface for the in-building interactive tool: identify possible interfaces and test users’ preferences with the help of a survey; this project implies subsequent data collection with real participants (either a sample for a survey or a smaller focus group sample)
  6. Carry out a small-scale version of the ENLITEN project in student housing on campus, using data from the campus metering system, raspberry-pi based environment sensors and appliance monitors. Develop an Android app to display the live data on a phone or tablet. Connect this with the Student Switch-off campaign. DONE BY BEN BIRI FYP 2014-15

Skills very much depend on the project and on individual interests and ambition. General requirements that hold for all projects are basic programming skills and interest in the energy domain.


Policies (and laws) increasingly need be reflected in software systems as systems are increasingly viewed holistically to comprise software and humans. Likewise, compliance needs to be demonstrated through a kind of unit and integration testing that applies to the requirements, not just the design. Hard-coding policy (etc.) into software is undesirable because it means (a) high-level requirements have to be translated into what can be expressed at some low-level in code (b) maintenance is problematic and (c) representations of multiple policies are likely to be distributed across the system, leading to low cohesion and high coupling.

The purpose of this project is to develop and implement the idea of policy as a service by constructing a web service factory that can deploy RESTful services (representing policies) and to develop a validation methodology and supporting software like JUnit/PHPUnit etc.

Essential: strong programming skills in a variety of languages;
Desirable: knowledge of web services and networking;


Distributed intelligent systems (in particular) are characterized by components that have variable length and unpredictable duration reasoning cycles. This makes engineering such systems difficult: has the component failed or is it just taking a long time. It also leads to clogging of the communications infrastructure.

The aim of this project is to research a model-driven engineering approach, founded on an appropriate metamodel to the generation of the supporting framework necessary to enable resilience, monitoring, debugging and runtime redirection of such systems.

A key concept in this project is the notion of (declarative) models@runtime that allow different forms of reasoning (using a range of formalisms) to maintain the integrity and identify appropriate adaptations of the (running) system.

Needs strong programming skills and willingness to dig into Eclipse internals.


Formal specifications are fine for specialists with a background in (computational) logic, although they will still overlook the consequences of a specification without the support of exhaustive analysis tools.

How can the specification and analysis of a regulatory framework be expressed, understood and maintained by a domain-specialist rather than a computer scientist?

What representations might be acceptable?  Do they need to be domain-specific?  How many fundamentally different representations might there be?  What are their characteristics?  Graphical? Textual? Something else?  How amenable are these forms to editing, distribution, accessibility?  Are they mutually interoperable?  Can one be translated to another and retain meaning.

What concepts need to be represented?  Permission, power, prohibition, obligation, conventional generation, consequence relations, normative states?  Or is that looking at the problem from the wrong end?



Human society is organized by conventions, policies and laws, which expressed in natural language often imperfectly capture the intent of the originator, typically because they are a failed result of an attempt to abstract and generalize from specific cases that illustrate circumstances it is wished to enable or proscribe. And this is the product when we – humans – have some comprehension of the nature of the subjects of these governance statements. Consider how much worse we could get it wrong trying to write policies and laws to govern autonomous software components that even the developers, let alone law-makers, only partly understand.

Given that what we are good at doing is describing a scenario in terms of actions taken and whether the outcome is right or wrong, the objective here is to explore how this skill can be used in conjunction with inductive logic programming (a form of machine learning) to synthesize policies from positive and negative examples. In outline, the aim of the project is the specification of use cases by by direct manipulation of graphical objects to:

  1. construct formal specifications of policy
  2. carry out automatic conflict detection and repair and
  3. generate the equivalent of unit tests for policy models.



Software systems are supposed to help support human activities, but all too frequently they are a source of frustration. One source of that frustration is that the design is not fully faithful to the requirements, but once translated, the requirements also become transformed (and mis-represented) as hard-coded decisions within the program. This makes change difficult (the translation and transformation processes need to be repeated) and costly (typically requires programmer who knows how the rest of the system works).

One way to mitigate this problem is to use a formal representation of the requirements that is comprehensible both to human and to program in the form of data to be interpreted. Consequently, requirements change can be reflected in the modification of this formal representation leading to modified behaviour of the system.

Authoring such formal specification however, takes us back to the need for skilled and expensive personnel. Hence we get to the aim of this project which is to evaluate available tools to extract policy specifications from textual specifications, such as statutes, regulations, laws or procedures, to generate formal representations in the action language InstAL and to develop an appropriate policy unit test framework to provide assurance that policies achieve intended goals.

Some potential resources are:


For several decades now, science’s grand challenges have dominated the allocation of computing resources resulting in a focus on high performance (or capability) computing and the creation of national HPC centres for the physical resources.

The increasing provision of capacity services through cloud computing and virtual machines opens up an avenue for the development of computationally demanding applications for which scale is more of an issue than pure numerical calculation power.

The objectives of this project are:

  1. to develop a methodology for the specification and creation of customized virtual machines to deliver Platform as a Service (PaaS) functionality
  2. to utilize Amazon’s EC2 service to configure and deploy instances of different kinds of PaaS (access provided)
  3. to demonstrate the application of this technology to large-scale social simulation (through an existing simulation) using the Jason agent platform.

Needs: strong programming skills, especially Java; good knowledge of networking; capacity to work with large software frameworks;


Quadcopters can be seen as a form of robot that can move in three dimensions. Of course, this complicates a lot of things, navigation especially, but there are also gains in that it can be easier to approximate the location of the robot relatively accurately after a movement, because there are fewer mechanical interactions (such as friction) affecting motion. There are potentially a large number of projects that can be put forward around the problems – and opportunities – created by UAVs, hence this generic project proposal. Here are some specific ideas, some of which may overlap, but other proposals are welcome:

  • Steering multiple UAVs using gesture and providing usable feedback to a human operator (but see 2013/14 projects by Paul Johnson and Jack Franklin first)
  • Convoy creation and management with UAVs
  • Feeding stations for UAVs to recharge themselves
  • Vision analysis for SLAM (simultaneous localization and mapping)
  • Surveying of buildings by automatic flight plan construction – needs on-the-fly (!) adaptation to capture complicated features (builds on 2013/14 project by David Paris)
  • Registration of visible and infra-red images to construct thermal surveys of buildings
  • Mapping the YAdrone API to work with the mikrokopter flight controller (NEW!)

The supervision team for these projects includes: Matt Brown, Julian Padget. Others tbc.