Semantic web services are to the semantic web what current-day web services are to the web, as we know it now. Tim Berners-Lee, Jim Hendler, and Ora Lassila's vision of the semantic web (Berners-Lee, Hendler, and Lassila 2001) was of a future web populated by pages enriched by their association with sharable semantic representations, which describe both content and, in the case of services, functionality. Semantic web services will publish machine-interpretable descriptions of their capabilities and interaction models so other software agents can find and use them without prior built-in knowledge about how to call their application program interfaces (APIs). They will soon support the development of personal software agents or semantic web clients for such things as comparative shopping, information discovery and travel planning, and compositions of those services. Less glamorously, but perhaps more importantly, these techniques may soon enable business-to-business interactions that are more dynamic, support semiautomated service composition on the scientific computing grid, and enable mobile, wireless devices to interact seamlessly with the services discovered as they move about.
To fulfill these promises, published semantic service descriptions must be used in a variety of ways. Services will be discovered by agents matching a client's service requirements against service capabilities. Clients will invoke services by deducing from their descriptions the content of the messages required to request those services and interpret their responses, which may range from straightforward acknowledgements to indications of failure to requests for additional information. Finally, by using these descriptions of each service's effects and usage constraints, agents may compose multiple services, roughly the way classical AI planners use planning operators. We use the word agent for these clients to emphasize the goal of giving them the ability to reason about the services they deal with.
Internally, semantic web service clients must be able to determine when to outsource an internal goal or function to a remote service, select among some suggested candidate services, and reason about how to interact with the selected service based on the service's published description and the clients' own internal goals and knowledge. This includes decisions about how to provide ancillary information the services may require (such as credit information, access certificates, and so on). Since services may require extended interactions, service descriptions may include interaction protocols that these clients must be able to follow. A noteworthy example is failure-recovery procedures.
A number of auxiliary semantic web agents can help in achieving these aims. Semantic matchmakers (Paolucci et al. 2002a) that act like web search engines or intelligent universal description, discovery, and integration (UDDI) (1) web service registries may assist with automated service discovery by cataloging and recommending services to clients. Authentication and policy authorization services may assist both clients and servers to know who they are, and what kinds of interactions they can have. Ontology and mapping registries may help to ensure that agents have consistent and complete sets of concepts, relations, and rules for service-related reasoning.
Semantic service descriptions are developed using a mix of domain ontologies and shared, general-purpose ontologies, such as those defining the structures for representing service capabilities. OWL-S, (2) formerly DAML-S (Ankolenkar et al. 2002), is a semantic web ontology developed by a group of researchers in the Defense Advanced Research Projects Agency's (DARPA) DARPA Agent Markup Language (DAML) program to address these latter, structural aspects of service descriptions. The World Wide Web Consortium (W3C) has formally recommended the Resource Description Framework (RDF) (Lassila and Swick 1999) for building web-compatible structured semantic descriptions and the Ontology Web Language (OWL) (Dean et al. …