Re: OWL-S process preconditions

On Jun 18, 2004, at 10:00 AM, Dónal Murtagh wrote:

> Greetings,
>
> My understanding is that OWL-S does not currently mandate any language 
> for
> expressing preconditions, although the current frontrunner is SWRL.

OWL-S 1.1 will, by default, make use of conjunctions of SWRL (like) 
atoms. It will allow for other preconditions languages (like KIF).

> My own
> view of preconditions is that they amount to a test which evaluates to
> either true or false.

Ok.

> For example, assume we have a book-buying process which takes an input
> CreditCardDetails (among others) and has a precondition 
> CreditCardValid.
> Evaluating the truth of this precondtion could (for example) involve 
> testing
> whether the credit card number has the correct format and whether the 
> expiry
> date is later than the current date. In order to perform this test we 
> need 3
> pieces of information:
>
> 1.    credit card number
> 2.    expiry date
> 3.    current date
>
> The first two could be characterised as 'external' in that they are 
> provided
> by the user/agent invoking the process via the input parameter
> CreditCardDetails. Is it true to say that all such external information
> required to test a precondition must be obtained from the process' 
> inputs,
> or can one assume that other information sources are available?

There is a presumption that there is a knowledge base -- e.g., a 
planner's "state of the world" -- against which preconditions are 
evaluated and effects applied. That kb could do infogathering on 
demand, I suppose.

> My second question is about how to express such a precondtion via 
> SWRL. The
> most common use for SWRL rules seems to be moving property values from 
> one
> individual to another,

That's a very odd way of putting it. First, there's no restrictin to 
property atoms on either side. Second, it's better to observe that SWRL 
gives us someone what more general material conditions than does OWL.

>  e.g. hasParent(?x1, ?x2) ^ hasBrother(?x2, ?x3) =>
> hasUncle(?x1, ?x3) adds a hasUncle property to the object bound to 
> ?x1, the
> range of which is ?x3.

I don't think this operational description is helpful, but ok.

> But how should one express a precondition such as described above in 
> SWRL
> syntax? Assuming CreditCardDetails has properties which provide the
> necessary information (e.g. CreditCardNumber, ExpiryDate), then 
> presumably
> these could be used in conjunction with the SWRL built-ins to 
> establish the
> truth of the precondition, buth what would appear as the consequent 
> (RHS) of
> the rule?

Nothing. We don't use swrl conditionals, only swrl atoms and 
conjunctions.

A precondition is a conjunction of swrl atoms commonly evaluated 
against the state of the world before the process executes and which 
must be true in that state for the process to succeed (or, perhaps, to 
be invoked).

Cheers,
Bijan Parsia.

Received on Friday, 18 June 2004 10:32:50 UTC