These days we are surrounded by new technologies that promise to make our lives easier. The use of GPS navigation is well established and the latest smartphones offer a mobile platform that connects us anytime and anywhere. However, it happens quite often that humans need to adapt to new technologies instead of the other way around. Ambient Intelligence is a user-centered computing paradigm that envisions applications adapting themselves to our presence without bothering us continuously with questions. This means that applications need to be aware of the context of the user and that they have to adapt their functionality accordingly. The research challenge that we address in this book deals with the complexity of developing context-aware adaptive applications. Such applications do not know in advance which context sources are available at runtime, and quite often the information they provide is too low-level for immediate use. In this book, we discuss models to represent context unambiguously so that the interpretation is the same for any application. We also present a framework that manages context and that adapts applications in a context-driven way.