Directory services are a genuine constituent of any distributed architecture which facilitate binding attributes to names and then querying this information, that is, announcing and discovering resources. In such contexts, especially in a business environment, Quality of Service (QoS) and non-functional properties are usually the most important criteria to decide whether a specific resource will be used. To address this problem, we present an approach to the semantic description and discovery of web services which specifically takes into account their QoS properties. Our solution uses a robust trust and reputation model to provide an accurate picture of the actual QoS to user. The search engine is based on an algebraic discovery model and uses adaptive query-processing techniques to parallelise expensive operators. Architecturally, the engine can be run as a centralised service for small-scale environments or can be distributed among any number of cooperating registry providers.