Web service discovery is one of the key issues in the emerging area of Service-oriented Computing. In this paper, we present a complete composition-oriented, ontology-based methodology for discovering semantic Web services, which exploits functional and behavioural properties contained in OWL-S service advertisements to satisfy functional and behavioural client queries. To this aim, we build on top of the results contained in two recent articles, where we presented (1) a suitable data structure (viz., a dependency hypergraph) to collect functional information of services, and (2) a suitable notion of behavioural equivalence for Web services. We also discuss the architecture and the main implementation choices of the matchmaking system applying such a methodology.