We have identified a number of user-centred design guidelines some of which have been axiomatic in our research while others have been developed as our system has evolved. While these do not represent absolute requirements, they are motivated by the goal of maximising the extent to which a highly diverse population will be able to maintain control over the pervasive environments that they inhabit.
  1. Unpredictable, open-ended composition: We have taken as axiomatic that there should be flexibility in terms of how such a service can be configured. In general, any given individual may want the behaviour of a service within their pervasive environment to depend on an almost arbitrary (and therefore hard to predict) collection of other services.
  2. Lay policy authoring: In exploring the use of natural language interfaces, it is implicit that we believe people are more comfortable working within their own language. We assume that this will reduce the burden of expressing and managing a collection of policies. Few people will be prepared to learn specialised policy programming languages, wade through complex menu driven interfaces, or perhaps even to sit down at a keyboard.
  3. Appropriate smartness: We have focussed on providing tools that help the user engage in the design process themselves by making it as easy as possible for them to express what they want in their own words, and provide comprehensible ways for the system to explain itself.
  4. Transparent policy semantics: In designing a policy logic, we have realised that if people are to be able to devise sets of policies that will behave in the way they expect, they need a policy reasoning system whose workings can be understood in terms of mental models that a lay person might be expected to formulate. We make a clear distinction between an abstract policy machine that is designed to be intuitive to non-technical users, and the implementation of this abstract machine in some well-formulated underlying policy logic.
  5. Accounting for personal style in the design process: While some users will want to develop a set of personalised rules completely from scratch, many will prefer to start by adopting a predefined collection of rules that roughly matches their requirements, and then gradually adapt them to suit their individual requirements. In order to support this, there needs to be some way of "displaying" the behaviour of both pre-packaged and personalised collections of policies.