- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Mon, 10 Nov 2003 12:16:32 -0500 (EST)
- To: public-sws-ig@w3.org
[David Martin] I think Monika suggested this: Process - hasPrecondition - Precondition where Precondition is a subclass of Condition whereas Drew seems to be suggesting this: Process - hasPrecondition - Condition (with no Precondition class anywhere). That reminds me - we still have an open issue about the class of an effect (that is, the range of ceEffect). Currently it's just "Thing", which isn't very satisfying. Do people feel that it's OK to have Condition for this range, or do we need something distinct? Effects are fundamentally different from conditions. They just don't have the same vocabulary. Effects are not true or false; they are "imposed" or "not imposed." Here are some examples: (increase q x): means "Quantity q increases by x." (when p e) in an effect means, "If p was true before the action, e is imposed after (new x p): "A new x comes into existence, such that p." (This is not standard, but several people with practical planning applications say it's absolutely necessary, and it certainly seems to be in the web-services world.) On the Precondition-class issue: I am willing to lose on this issue, but I think the winners will eventually repent. As Mike Huhns pointed out, all there is to know about a formula is captured in the way it is expressed in some syntactic framework. Putting a formula into a precondition slot doesn't change anything about it. It's not like moving an animal into the Pet class by housebreaking it. If to be in the Precondition class is to be the precondition of some step, then there is no way to decree that a Condition is _not_ in the precondition class. How could you ever know? You could put every Condition into the Precondition class and it wouldn't do any harm. It's as if we had a class Password, such that a string was in this class if and only if it was a password used by someone, somewhere. What would be the point? What we care about is that a string is the value of the hasPassword property for some particular application. (Of course, a particular application could have a class Acceptable-password, which allowed strings with digits and punctuation marks, but disallowed English words, but then it would be something about the string itself that made it acceptable or not.) -- -- Drew McDermott Yale University CS Dept.
Received on Monday, 10 November 2003 12:16:33 UTC