Re: How to handle processes that must occur

> [Craig Schlenoff]

> To give you an example corresponding to my earlier question, let's say that 
> we have a service called "Prepare for Road March" that a Platoon agent 
> performs when the condition "Quartering Party is Clear of Start Point" is 
> met. This is the 7th step in a list of steps that all must be performed 
> when executing this tactical behavior. For the sake of argument, let's say 
> that all of the steps are in serial and there is no branching (which 
> actually is not true, but it will make our example a bit simpler). After 
> step 6 has completed, I want the system to check to see if the "Quartering 
> Party is Clear of the Start Point". If it is, then the Platoon agent should 
> "Prepare for Road March." If it is not, the system should "wait" and 
> continuously check to see if that condition is true. It should not try to 
> perform any of the other actions in the list until the "Prepare for Road 
> March" action is performed.

OWL-S doesn't specifically provide for representing this kind of plan;
perhaps it should.

There are two possible approximations in the current OWL-S:

* One can model a waited-for condition as the receipt of an input.  A
  process can be defined as taking a certain input, and if the input
  never comes the process never gets instantiated.

* One could have a loop that repeatedly checks for the condition, and
  exits only when the condition becomes true.

The two are not mutually exclusive, because the wait-loop could
produce an output that was interpreted as an input by various process
types.  These processes would be instantiated when the input became
available.

These ideas may seem rather stilted, but it's important not to assume
that for any condition C there is a primitive construct wait-until(C).
It may be useful to have a simple process of this form at some level
of abstraction, but it must always be grounded out as a plan involving
just wait-loops and message-reception waits.

                                             -- Drew

-- 
                                             -- Drew McDermott
                                                Yale University CS Dept.

Received on Wednesday, 21 April 2004 15:59:56 UTC