Software-intensive systems work in ever-changing environments requiring expensive technical efforts to manage their evolution. In order to mitigate their risks and costs they should dynamically selfadapt to any modification of their environment. MAPE-K (Monitor, Analyze, Plan, Execute -Knowledge) is the basic architectural pattern for building software-intensive self-adaptable systems. In this paper we propose an approach in which all the information about a system and its environment is unified by using Semantic Web technologies into a set of semantic run-time models which enhance the Knowledge in MAPE-K. Ontologies are used to manage the interaction and integration of these models with disparate data sources. The resulting knowledge base is then used to drive adaptation activities exploiting well known languages and notations. We discuss how MAPE-K can be exploited in order to take advantage of ontological representations, along with 2 F. Poggi et al.Semantic Web languages and tools, by studying a real-word case study: a legacy system that was not designed to perform automatic adaptation. We discuss merits and limits of our approach based on semantic runtime models both in the context of this specific case study and in a broader scope.Integrating Semantic Run-Time Models for Adaptive Software Systems 3 isolated in a separate engine, thus reuse across multiple systems is facilitated, as described in [1]. Moreover, the self-adaptation behaviours of an external manager can be integrated into legacy systems, for which documentation and source code is unavailable.An architecture-based approach to self-adaptation was first developed in [5], exploiting architectural models to represent complex systems in terms of components, relations, and properties. A reference architecture for these adaptive systems has been proposed in [6], and a general and reusable infrastructure based on the classical control loop in control theory has been described in [7].More recently, the emerging field of Model Driven Engineering (MDE) [8] called Models@Run.time [4] extended this approach, investigating the use of different models to represent the knowledge required for managing the operations of software systems. The main benefit of Models@Run.time is a unified high-level perspective of the observed systems, together with precise representations of the knowledge needed to drive their adaptation.Model-based adaptation raises new research challenges that have to be tackled [9]. In this work we mainly focus on two problems. The first challenge is heterogeneity management: this is the capability of managing the heterogeneity of knowledge sources and knowledge users. Most systems are made of different programming languages, technologies, architectural styles, and mechanisms to support dynamic adjustments; providing a general framework to manage this variability helps in lowering the level of complexity of the overall system and allows easier dynamic integration of new data sources and changes of policies and rules. Moreover, in order to allow ...