Context-aware applications are applications that are aware of the user's context (e.g. personal preferences, characteristics, agenda) and environment (e.g. people, places and things in the user's vicinity). By leveraging this kind of information, they provide the user with an improved user experience.
There are a number of research challenges related to the field of context-aware application development. A first challenge is to build frameworks that provide these applications with the required context and environment information. These frameworks should present this data in a high-level way that is easily usable by applications, and provide both pull-based (e.g. via queries) and push-based (e.g. via notifications) access to the information. A second challenge is to build useful applications that use this information, in such a way that it alleviates the user from all sorts of tasks; for instance, instead of having the user find useful information, the application can recommend information related to their current context and environment (e.g. nearby restaurants serving a user's favourite cuisine).