- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Thu, 18 Sep 2003 14:40:21 -0400 (EDT)
- To: www-ws@w3.org
There's a theory of processes in DAML-S that has a lot of support;
I'll call it the Majority Position because it seems to be, modulo
various reservations.
The theory goes like this: processes have inputs and outputs. Where
these come from and where they go is not part of the definition of the
process. In particular, if a composite process C contains an
invocation of process P, there's no way to know just by looking at the
definition of C whether P is to be executed by the same interpreter
(or "enactor") as the one executing C.
Puzzle: Suppose C sends a message to P two or more times, at least on
some runs, e.g.:
C = (seq (P) (if Q then ... else (P)))
I've suppressed the actual dataflow, but assume that C is sending data
to P and getting some back. With respect to a run of C in which Q is
false after C interacts with (P), let P1 be that first interaction,
and P2 be the second.
What exactly are P1 and P2? Is each a fresh invocation of the P
process? Is there a worldwide P process that everyone communicates
with (e.g., an atomic clock sitting in Geneva). Or does the
invocation P1 create an entity that C talks to when P2 occurs? How
are these different possibilities to be indicated?
If P is just a subroutine, the answers are clear. P1 and P2 are
independent invocations that create fresh processes each time. How
does an espouser of the Majority Position answer?
--
-- Drew McDermott
Yale University CS Dept.
Received on Thursday, 18 September 2003 14:40:22 UTC