- From: David Martin <martin@ai.sri.com>
- Date: Thu, 19 Feb 2004 20:09:06 -0800
- To: Francis McCabe <fgm@fla.fujitsu.com>
- Cc: public-sws-ig@w3.org
Francis McCabe wrote: > > David: > Well, ..., without intending to cast aspersions, Tony Hoare and Robin > Milner both had more sophisticated views of process in the 70's and 80's. > The point being that real world processes are actually more complex > than one-shot RPCs. Again, no argument, Frank. I never meant to imply anything to the contrary. Regards, David > Frank > > > On Feb 18, 2004, at 9:17 PM, David Martin wrote: > >> >> >> >> Francis McCabe wrote: >> >>> Perhaps this is slightly tangential to the issue; but ... >>> this view of process seems very one-shot and RPC-ish. >> >> >> No argument about that. But note that we are not starting from >> scratch here on a new language. This particular proposal ie part of >> fleshing out and tidying up an existing language, and yes, it is a lot >> like a workflow or programming language in many ways. We never >> claimed of OWL-S that our primary objective was modeling conversations. >> >>> an ongoing conversation is still a process. But you don't invoke or >>> perform or use a conversation. >> >> >> Well, yes, but as part of a conversation you might ask a question of >> another person and then wait for the answer. >> >> - David >> >>> Frank >>> On Feb 17, 2004, at 9:10 AM, David Martin wrote: >>> >>>> >>>> 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 Thursday, 19 February 2004 23:09:31 UTC