Web services help in achieving increased automation across organizational boundaries. In this paper, we present an approach for annotating WSDL documents with semantically rich descriptions. We also present an algorithm that considers such annotations in addition to just the types of input and output parameters. Our matchmaking algorithm not only returns match/no-match answers but in case of a match a set of conditions under which a web service offers the desired functionality.