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 http://www.cs.bath.ac.uk/enliten/ 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.