“…Some work in this direction has already been carried on in [19], where, within the context of the DAML-S project [5], the reasoning techniques supported by GOLOG, an agent language based on the situation calculus, are applied to produce composite and customized services. Actually, when a service is described in terms of the function that it executes, with its preconditions and effects, the use of agents that can reason about the consequences of its invocation is a natural choice: a rational agent is by definition characterized by a high-level of autonomy, it has an own internal state containing information about the world and about its goals, it can reason about how to behave for fulfilling them, it can react to alterations of the environment.…”