The role of the DAML-S Profile is to describe the Web Service capabilities, as well as additional features of Web Services that provides a rich description of the Web Service. DAML-S describes capabilities of Web Services as functions that produce a transformation. This transformation happens at two levels: at the information level a set of inputs are transformed in a set of outputs; at a more concrete level a set of conditions become true, while others become false. For example, if we consider a travel booking Web Service, at the information level it may require departure and arrival information and provides and using that it generates a flight schedule and a confirmation number; while at a more concrete level it books a flight, generate a ticket, and charges a credit card so that the money available on the account is reduced. Capabilities in DAML-S are represented at both levels, at the information level they are represented by the inputs that they require and the outputs that they generate, at the state level by the preconditions for the Web Service to execute and the effects that the Web Service generates.
Since different Web Services with very different features may have the same capabilities, DAML-S allows the specification of a host of additional information about the Web Service that may help during the selection process. These additional information consists of the category of the Web Service as described in the classification of the service within some classification schema, parameters that restrict the use of the Web Service, and quality rating to specify how good is the Web Service provided.
While DAML-S is just a Web Services representation and therefore does not imply any form of processing, it is relatively easy to implement a matching algorithm to recognize which Web Services advertisements match a given request. There is at least one such matching engine [12] that takes advantage of the underlying DAML logic to infer the the logic relations between the input and outputs of the request, with the input and outputs of the advertisements. While a complete description of this algorithm is outside the scope of this paper, the main idea is that a the outputs of the request should be subsumed by the outputs of the selected advertisements, this condition guarantees that the selected Web Services provide the expected information. Furthermore, the matching engine ranks the advertisements on the bases of their input matching, where, inputs match if inputs of the request subsume the inputs of the advertisement. This condition selects services that the requester has enough information to invoke.
DAML-S Profiles play a role that is very similar to the role of UDDI entries in the UDDI registry. Both data structures provide a description of Web Services; indeed it is possible to construct a mapping between DAML-S records and UDDI [11] using TModels to encode the capability information. Once the capabilities are encoded in UDDI, a matching engine based on the DAML-S matching algorithm can be used to retrieve Web Services from UDDI on the bases of their capabilities. An initial version of such a registry has been implemented and it is used in the experiments described below.