In the context of distributed and open systems, the dynamic evolution of the distributed entities (or services) and their adaptation is one of the main prevailing challenges. In this paper, our aim is to show that is possible to automate (at least partially) the discovery, the selection and the adaptation of components, on the one hand associating a semantic description based on functional and non-functional properties to components and on the other hand, delegating to software agents the interpretation of components decriptions. We focus on the use of semantic, i.e. the use of ontologies, to provide a common interpretable support to share, to find, and to adapt relevant available services. The CompAA model is the result of our propositions and an experimentation in the area of training gives us a guideline to illustrate and validate our contributions.