- From: David Martin <martin@ai.sri.com>
- Date: Tue, 17 Feb 2004 09:10:23 -0800
- To: David Martin <martin@AI.SRI.COM>
- Cc: public-sws-ig@w3.org
Following up on this proposal, below is an initial version of the OWL-S code for the "Perform" construct. This will go in Process.owl. It's essentially the same as I described in the original message, but calling it "Perform" instead of "Use". Also, I'm adding the property hasBinding, which was missing from the example, and slightly renaming a couple other properties. Here's the updated example: <process:Perform> <process resource="http://..../SomeProcess.owl"> <hasBinding> <InputBinding> <formal resource="http://..../SomeProcess.owl#Input1"/> <actual resource="#Person1"/> </InputBinding> </hasBinding> <hasBinding> <OutputBinding> <formal resource="http://..../SomeProcess.owl#Output1"/> <actual resource="#MyVar43"/> </OutputBinding> </hasBinding> ... other bindings ... </process:Perform> Here are the proposed new declarations for Process.owl: <owl:Class rdf:ID="Binding"> <owl:Restriction> <owl:onProperty rdf:resource="#formal"/> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#actual" /> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </owl:Class> <owl:ObjectProperty rdf:ID="formal"> <rdfs:domain rdf:resource="#Binding"/> <rdfs:range rdf:resource="#Parameter"/> </owl:ObjectProperty> <!-- I don't think it's possible to specify the range. It's supposed -- to be the union of swrl:Variable and the parameterType of the -- corresponding formal. --> <owl:ObjectProperty rdf:ID="actual"> <rdfs:domain rdf:resource="#Binding"/> </owl:ObjectProperty> <!-- Similarly, here I don't think it's possible to specify the desired restriction on the 'actual' properyy. --> <owl:Class rdf:ID="InputBinding"> <rdfs:subClassOf rdf:resource="#Binding"/> <owl:Restriction> <owl:onProperty rdf:resource="#formal"/> <owl:allValuesFrom rdf:resource="#Input"/> </owl:Restriction> </owl:Class> <owl:Class rdf:ID="OutputBinding"> <rdfs:subClassOf rdf:resource="#Binding"/> <owl:Restriction> <owl:onProperty rdf:resource="#formal"/> <owl:allValuesFrom rdf:resource="#Output"/> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#actual"/> <owl:allValuesFrom rdf:resource="&swrl;#Variable"/> </owl:Restriction> </owl:Class> <owl:Class rdf:ID="Perform"> <rdfs:subClassOf rdf:resource="#ControlConstruct"/> <owl:Restriction> <owl:onProperty rdf:resource="#process"/> <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality> </owl:Restriction> </owl:Class> <owl:Property rdf:ID="process"> <rdfs:domain rdf:resource="#Perform"/> <rdfs:range rdf:resource="#Process"/> </owl:Property> <owl:Property rdf:ID="hasBinding"> <rdfs:domain rdf:resource="#Perform"/> <rdfs:range rdf:resource="#Binding"/> </owl:Property> Comments welcome. Regards, David David Martin wrote: > > 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 Tuesday, 17 February 2004 12:10:44 UTC