This paper presents an algorithm to match a semantic Web service request against semantic Web service advertisements. The algorithm is to be used by systems to discover semantic Web services, such as the UDDI. Matching is based on the assessment of the similarity among semantic Web service properties, such as inputs and outputs. Semantic Web services have their inputs and outputs annotated or described by ontological concepts. The algorithm is able to match a semantic Web service request against advertisements that are annotated with concepts with and without a common ontology commitment. The similarity of inputs and outputs is evaluated based on concepts (classes), their semantic relations, and their common and distinguishing features (properties).