OWL-S preconditions - practical issues

Greetings,

Judging by the recent discussion on OWL-S preconditions, there seems to
exist broad approval for the syntactic representation used in the
example cited by Drew:

   <owls:AtomicProcess>
      <owls:hasPrecondition>
	<owls:Expression expressionLanguage="&swrl;#SWRL"
rdf:parseType="Literal">	                 
           <ruleml:body rdf:parseType="Collection">
	       <swrl:individualPropertyAtom>
		   <swrl:propertyPredicate
rdf:resource="creditCardAuth"/>
		   <swrl:argument1 rdf:resource="#cc"/>
		   <swrl:argument2
rdf:datatype="&xsd;#string">Yes</swrl:argument2>
	       </swrl:individualPropertyAtom>
           </ruleml:body rdf:parseType="Collection">
	</owls:Expression>
      </owls:hasPrecondition>
   </owls:AtomicProcess>


Specifically, support seems to exist for the ability to let an
expression say what language it is in and 
then use that content language to describe preconditions and effects.

However, there doesn't appear to be any consensus about how bindings
should be specified. For example, does the precondition above imply that
the AtomicProcess has an input #cc:

<process:Input rdf:ID="cc">
	<process:parameterType
rdf:resource="http://www.example.org/PaymentInstruments#CreditCard" />
	<rdfs:label>Credit Card</rdfs:label>
</process:Input>

Or is there another way to specify the binding of #cc to an Input (or
something else)?


Another matter which wasn't addressed during the recent discussion is
how a preconditon is tested/executed/evaluated - once the condition
itself and its bindings have been correctly specified?

Finally, for the purpose of service composition it is necessary to find
processes which are compatible from the point of view of their
preconditions and effects. For example, a process which has an effect
such as:

   <owls:AtomicProcess>
      <owls:hasEffect>
	<owls:Expression expressionLanguage="&swrl;#SWRL"
rdf:parseType="Literal">	                 
           <ruleml:body rdf:parseType="Collection">
	       <swrl:individualPropertyAtom>
		   <swrl:propertyPredicate
rdf:resource="creditCardAuth"/>
		   <swrl:argument1 rdf:resource="#cc"/>
		   <swrl:argument2
rdf:datatype="&xsd;#string">No</swrl:argument2>	<!-- INCOMPATIBLE -->
	       </swrl:individualPropertyAtom>
           </ruleml:body rdf:parseType="Collection">
	</owls:Expression>
      </owls:hasEffect>
   </owls:AtomicProcess>

could never be executed immediately before a process which has a
precondition such as that shown earlier, assuming #cc is bound to the
same instance in both cases. The point is that the compatibility of some
preconditions and effects can be determined without binding information
and it might be useful to distinguish these from preconditons and
effects whose compatibility cannot be determined without binding
information.


Regards,
- Dónal

Received on Wednesday, 23 June 2004 13:11:49 UTC