The semantic Web research community has developed ontologies and languages for semantically describing Web services. For example, OWL-S is an ontology developed using the OWL semantic Web description language. The purpose of OWL-S, formerly DAML-S, is to describe Web services so that software agents can read these descriptions and reason about how to interact with the services they describe. These efforts aim to facilitate interactions with services when the client agents lack built-in code for invoking those services' APIs&just as people can effectively use Web sites they've found through search engines. For example, without any reprogramming, a software system could have the flexibility to use various services that do the same kind of job but have different APIs. This can be useful in a number of situations, such as when a familiar service's API has changed or when the API is unavailable but a discovered new service could do the job. These semantic service descriptions also make it easier to compose services, by enabling reasoning about how to transform one service's outputs into another's inputs.