- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Fri, 19 Dec 2003 19:30:14 -0500 (EST)
- To: public-sws-ig@w3.org
[David Martin] It seems to me there are three paths towards getting OWL-S to meet these requirements [which I revisit below]. These aren't necessarily exclusive; that is, the solution might be some combination of elements from these paths. Also, there might be other paths that I'm not including here. (1) Make "who does what" more explicit in OWL-S process models, by relying on "participant", and adding additional, related, constructs as needed to spell it out. Attractive idea, but it will ultimately disappoint you. (2) Convince ourselves that OWL-S groundings can provide the missing information, and extend them if needed, and document how this works. Bad idea. Or maybe it's an incoherent idea. Or maybe it's my fault for not really knowing what it means. Note that these first 2 paths allow for the specification of all the roles within a single process model, which is what most of our discussions seem to assume. The 3rd path, however, relies on separate process models for the different roles. (3) Adopt a convention of specifying a separate process model for each role (so that a role gets associated with an entire process model rather than with individual process steps within the more complex process models of (1) and (2)). And make sure we have an appropriate set of constructs to support this convention. Only really workable idea. The problem with the first scheme is that it works fine as long as the participants are more or less in synchrony. But as soon as they diverge somehow (even pause from communicating with each other while they communicate with other parties), then either you have to represent the Cartesian product of their states; or you have to allow their process lines to diverge, and then you wind up here, at the bitter end of this paragraph. Instead, if you start by representing their processes separately, then all you have to do to represent the joint choreography is to indicate that a certain act in one player's script is a possible or normal reaction to an act is another player's script. Neither player needs this information to act, but a reasoner can draw conclusions from it. Then David's desiderata are accomplished thus: (a) It should be possible to specify (composite) processes involving multiple roles (not just the usual two - provider/requester - that we talk about the most). You can have any number of participants. (b) It should be possible to specify all possible* combinations of "who does what"; that is, which roles perform which steps (including evaluating conditions). *under some reasonable analysis of what's possible, which I won't address here Does your reasonable analysis include the possibility that different roles do the same step in different enactments of the process? If so, I'm not sure whether the position I endorse can't handle that. On the other hand, it could represent a script where two role takers normally negotiate who is to do what; or a script in which two role takers consult the same rule in deciding who does what, so they don't have to negotiate. Is there another way that different role players could perform a given step? What if two role players _both_ do a given step? Is that allowed or should the results be undefined? (c) It should be possible to unambiguously express "fully-fleshed-out" processes -- that is, processes that are executable by some set of enactment engines -- where "unambiguously" means, I think, that one can easily make an assignment of roles to enactment engines, and, once such an assignment has been made, the behavior of each enactment engine is then clearly spelled out. Not a problem for trusty idea #3. -- -- Drew McDermott Yale Computer Science Department
Received on Friday, 19 December 2003 19:33:01 UTC