Creating novel functionality by means of the composition of existing web services is essential for a variety of applications. One of the main problems for automated web service composition is the gap between the concepts people use and the data computers interpret. We present an interactive approach that overcomes this barrier using Semantic Web technologies. Our approach uses contextual information to find the matching services at each step of the composition. The matches are filtered using ontological reasoning on the semantic descriptions of the services. We have developed a prototype based on these ideas and tested our system by generating OWL-S descriptions for some of the common services available on the Web, including translation, dictionary, and mapping services. Using our prototype, we demonstrate that our approach is also applicable to other network environments where devices provide their capabilities with semantic descriptions and their functionalities as web services.