DAML-S: Web Service Description for the Semantic Web

In this paper we present DAML-S, a DAML+OIL ontology for describing the properties and capabilities of Web Services. Web Services – Web-accessible programs and devices – are garnering a great deal of interest from industry, and standards are emerging for low-level descriptions of Web Services. DAML-S complements this effort by providing Web Service descriptions at the application layer, describing what a service can do, and not just how it does it. In this paper we describe three aspects of our ontology: the service profile, the process model, and the service grounding. The paper focuses on the grounding, which connects our ontology with low-level XML-based descriptions of Web Services. 1 Services on the Semantic Web The Semantic Web [2] is rapidly becoming a reality through the development of Semantic Web markup languages such as DAML+OIL [9]. These markup languages enable the creation of arbitrary domain ontologies that support the unambiguous description of Web content. Web Services [15] – Web-accessible programs and devices – are among the most important resources on the Web, not only to provide information to a user, but to enable a user to effect change in the world. Web Services are garnering a great deal of interest from industry, and standards are being developed for low-level descriptions of Web Services. Languages such as WSDL (Web Service Description Language) provide a communication level description of the messages and protocols used by a Web Service. To complement this effort, our interest is in developing semantic markup that will sit at the application level above WSDL, and describe what is being sent across the wires and why, not just how it is being sent. We are developing a DAML+OIL ontology for Web Services, called DAML-S [5], with the objective of making Web Services computer-interpretable and hence enabling the following tasks [15]: discovery, i.e. locating Web Services (typically through a registry service) that provide a particular service and that adhere to specified constraints; invocation or activation and execution of an identified service by an agent or other service; interoperation, i.e. breaking down interoperability barriers through semantics, and the automatic insertion of message parameter translations between clients and services [10, 13, 22]; composition of new services through automatic selection, composition and interoperation of existing services [15, 14]; verification of service properties [19]; and execution monitoring, i.e. tracking the execution of complex or composite tasks performed by a service or a set of services, thus identifying failure cases, or providing explanations of different execution traces. To make use of a Web Service, a software agent needs a computer-interpretable description of the service, and the means by which it is accessed. This paper describes a collaborative effort by BBN Technologies, Carnegie Mellon University, Nokia, Stanford University, SRI International, and Yale University, to define the DAML-S Web Services ontology. An earlier version of the DAML-S specification is described in [5]; an updated version of DAML-S is presented at http://www.daml.org/services/daml-s/2001/10/. In this paper we briefly summarize and update this specification, and discuss the important problem of the grounding, i.e. how to translate what is being sent in a message to or from a service into how it is to be sent. In particular, we present the linking of DAML-S to the Web Services Description Language (WSDL). DAML-S complements WSDL, by providing an abstract or application level description lacking in WSDL. 2 An Upper Ontology for Services In DAML+OIL, abstract categories of entities, events, etc. are defined in terms of classes and properties. DAML-S defines a set of classes and properties, specific to the description of services, within DAML+OIL. The class Service is at the top of the DAML-S ontology. Service properties at this level are very general. The upper ontology for services is silent as to what the particular subclasses of Service should be, or even the conceptual basis for structuring this taxonomy, but it is expected that the taxonomy will be structured according to functional and domain differences and market needs. For example, one might imagine a broad subclass, B2C-transaction, which would encompass services for purchasing items from retail Web sites, tracking purchase status, establishing and maintaining accounts with the sites, and so on. The ontology of services provides two essential types of knowledge about a service, characterized by the questions: – What does the service require of agents, and provide for them? This is provided by the profile, a class that describes the capabilities and parameters of the service. We say that the class Service presents a ServiceProfile. – How does it work? The answer to this question is given in the model, a class that describes the workflow and possible execution paths of the service. Thus, the class Service is describedBy a ServiceModel The ServiceProfile provides information about a service that can be used by an agent to determine if the service meets its rough needs, and if it satisfies constraints such as security, locality, affordability, quality-requirements, etc. In contrast, the ServiceModel enables an agent to: (1) perform a more in-depth analysis of whether the service meets its needs; (2) compose service descriptions from multiple services to perform a specific task; (3) coordinate the activities of different agents; and (4) monitor the execution of the service. Generally speaking, the ServiceProfile provides the information needed for an agent to discover a service, whereas the ServiceModel provides enough information for an agent to make use of a service. In the following sections we discuss the service profile and the service model in greater detail, and introduce the service grounding, which describes how agents can communicate with and thus invoke the service.