[OWL-S]: Proposal for 1 new control construct

Greetings --

In an earlier discussion on this list, I had proposed 3 new "control 
constructs" for the OWL-S process model: "Invoke", "Accept", "Select".

(See public-sws-thread
   [OWL-S]: Proposal for 3 new control constructs]
  here:
   http://lists.w3.org/Archives/Public/public-sws-ig/2004Jan/0110.html
)

In our recent OWL-S telecons, we have reached a consensus *not* to 
explicitly distinguish between the "invoke" and "accept" of a Web 
service, at least, not in the way that I proposed earlier.  Also, we are 
putting aside the "select" construct.

Instead of distinct "invoke" and "accept" constructs, this message 
proposes a single new construct, which indicates the "use of" or a 
"reference to" a Web service that's defined elsewhere.  This is in 
accord with the recognition that we want to maintain a highest (most 
abstract) level of process description, which states what needs to get 
done when, but tolerates minimal commitments about where each thing 
needs to get done, and by whom.   (That is, we want to allow it to be 
left unspecified as to which subprocesses are executed by which 
participants/roles, and by which distinct enactment engines.)

This is *not* to say that these things will never be specified - just 
that we want to allow a level of description where they may be absent. 
In fact, we are also thinking in terms of a second, lower, more 
detailed, style of description (a "middle level", in my mind) in which 
these kinds of details are added in.  But more about that in other messages.

Here's an initial strawman proposal for this new construct, which 
indicates the use of a Web service that's defined elsewhere.  It's 
syntactically about the same as the "invoke" construct proposed earlier 
-- but it doesn't carry the same implications about what's going to 
happen where.

We've been calling one of these things a "Reference" in conversations, 
but to me that's not really very helpful, so I'm proposing  "Use". 
Other suggestions are welcome.  ("Employ", "enact", "execute", "do", 
"run", "apply" ?)

USE
---

The use construct, used something like this:

   <Use>
       <process resource="http://..../SomeProcess.owl">
   </Use>

simply means "The indicated process, defined elsewhere, is used at this 
point (within a larger process)".  For simplicity, I'm assuming here and 
throughout this message that the specified process model is an atomic 
process.

I also propose a conventional means of binding arguments, that happens
inside this construct.  Like this:

<Use>
   <process resource="http://..../SomeProcess.owl">
   <binding>
      <formalInput resource="http://..../SomeProcess.owl#Input1"/>
      <actualInput resource="#Person1"/>
   </binding>
   <binding>
      <formalOutput resource="http://..../SomeProcess.owl#Output1"/>
      <actualOutput resource="#MyVar43"/>
   </binding>

   ... other bindings ...
</Use>

The "formalInput" and "formalOutput" properties have values that are 
instances of process:Input or process:Output, respectively.

The "actualInput" property has values that are either variables or 
instances of the type associated with the formalInput.

The "actualOutput" property has values that are variables.

(Note: variables can include, but are not limited to, inputs and outputs 
associated with the larger, composite process.  The details of variables 
are being discussed in other e-mail threads.)

I will send the OWL declarations, which would go into Process.owl, in a 
later message.

Comments welcome.

Thanks, David

Received on Monday, 9 February 2004 20:26:51 UTC