Re: How to handle processes that must occur

> > [Drew McDermott = me]
> > You're assuming that the execution engine can check whether an
> > arbitrary precondition is true.
> 
> [Jeff Dalton]
> Ok, but suppose it can't check.  It still wouldn't skip the step.
> It would assume the step could be executed and would try to execute
> it or, if quite conservative, it would assume the condition was false
> and refuse to execute it without authorization.
> 
> Either way, it wouldn't skip the step and just go on to the next
> step in the sequence.
> 
> Also, doesn't a sequence mean that a step can't execute untill
> the earlier steps have executed?  Or in OWL-S does it mean that
> steps can be skipped?

Well, sure.  I didn't mean to imply that steps could be skipped under
some circumstances.

> > There are other occasions when it might make sense to insert plan
> > steps to verify that a condition really holds.  But an agent obviously
> > can't do this for every condition, or we'd have an infinite regress of
> > steps inserted to verify the preconditions of previously inserted
> > steps.  
> 
> Not necessarily.  Perhaps a checking regress would terminate in steps
> that lack preconditions.  :)

Even if that were possible, we'd still have situations like this:
Suppose step A has two preconditions P1 and P2.  We insert C1 and C2
to check them, yielding, perhaps

     sequence(C1, C2, A)

Isn't it possible that P1 became false during the execution of C2?  So
we better check again:

     sequence(C1, C2, C1, A)

oops .....

My only point is that the theory of precondition checking is
nontrivial.  Intuitions to the contrary are usually due to
aftereffects of AI courses in which it's assumed that P is true if and
only if it's recorded in the world model.

                                             -- Drew

-- 
                                   -- Drew McDermott
                                      Yale Computer Science Department

Received on Thursday, 22 April 2004 12:09:03 UTC