- From: David Martin <martin@AI.SRI.COM>
- Date: Mon, 09 Feb 2004 17:26:13 -0800
- To: public-sws-ig@w3.org
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