[OWL-S] Composition Templates

One claimed advantage of Semantic Web Services, in general, and OWL-S, 
in particular, is support for *dynamic* composition. This can mean 
several things, but the sense I'm concerned with at the moment is 
late-selection of concrete services. That is, one specifies a 
CompositeProcess with "holes" in it that get filled with specific 
processes (either Atomic or Composite) later in the game. This is 
similar to certain recovery issues, i.e., what to do if while executing 
a CompositeProcess, one discovers that an AtomicProcess one needs to 
execute has gone off line -- one answer, select a relevantly equivalent 
replacement service and continue.)

OWL-S has perhaps two many abstraction points, at least potential ones. 
Profiles might abstract over various concrete processes (or, perhaps, 
we have classes of profiles). One might supply multiple groundings for 
an AtomicProcess (and, of course, there could be many bindings in the 
WSDL). But the canonical abstraction point is the SimpleProcess. 
SimpleProcesses are suppose to provide a "view" of a set of processes. 
A single SimpleProcess can be *realizedBy* many AtomicProcesses and 
simultaneously *expandsTo* many CompositeProcesses (themselves having 
component SimpleProcesses), or none at all (known to the system at some 
point). In principle, a composition system could look at the possible 
instantiations of each SimpleProcess and choose (or rechoose) the most 
desirable one.

So, "selection" of particular services is supported, but there's been 
no, to my knowledge, articulated story of how these options come to be 
known. That is, the two relevant predicates, expandsTo and realizedBy, 
express *hits* not queries. Thus, there is no current way to express 
"step three should be a service with these IOPEs and not cost more than 
$3 to invoke".

Fortunately, SWRL should make it pretty easy to express such things, 
simply with rules who's consquent is the relevant expandsTo or 
realizedBy (perhaps we should add a superpredicate to make the rules 
somewhat nicer to write?).  (Actually, one could do a fair bit with 
plain ole OWL classes with the appropriate restrictions).

So this all seems rather sensible to me. Is this pretty much the 
canonical story? Am I missing anything? Has anyone played with this 
sort of thing?

If it is, I think we should explicate it in our documents, and perhaps 
include something like this in an example.

Bijan Parsia.

Received on Tuesday, 13 January 2004 16:15:33 UTC