Re: On OWL-S CompositeService DataFlow

> [Ale]
> 
I don't know if anyone ever responded to this query.

> just a simple question, look at this code taken from the "OWL-S Semantic 
> Markup for Web Services" by David Martin e al. :
> 
> <process:CompositeProcess rdf:ID="CP">
>    <process:hasInput rdf:ID="I1"/>
>    <process:hasOutput rdf:ID="O1"/>
>    <process:composedOf>
>       <process:Sequence rdf:ID="CP">
>          <process:components rdf:parseType="Collection">
>             <process:Perform rdf:ID="Step1">
>                <process:process rdf:resource="&aux;#S1"/>
>                <process:hasDataFrom>
>                   <process:InputBinding>
>                      <process:theParam rdf:resource="&aux;#I11"/>
>                      <process:valueFunction expressionLanguage="&drs;" 
>                                       rdf:parseType="Literal">
>                         <drs:Functional_term>
>                            <drs:term_function rdf:resource="&arith;#incr"/>
>                            <drs:term_args rdf:parseType="Collection">
>                               <process:valueOf>
>                                   <process:theParam rdf:resource="#I1"/>
>                                   <process:fromProcess
>                                       rdf:resource="#TheParentPerform"/>
>                               </process:valueOf>
>                            </drs:term_args>
>                         </drs:Functional_term>
>                      </process:valueFunction>
>                   </process:InputBinding>
>                   <process:InputBinding>
>                      <process:theParam rdf:resource="&aux;#I12"/>
>                      <process:valueData
>                         xsd:datatype="&xsd;#string"
>                         >Academic</process:valueData>
>                   </process:InputBinding>
>                </process:hasDataFrom>
>             </process:Perform>
>             <process:Perform rdf:ID="Step2">
>                <process:process rdf:resource="&aux;#S2"/>
>                <process:hasDataFrom>
>                   <process:Binding>
>                      <process:theParam rdf:resource="&aux;#I21"/>
>                      <process:valueSource>
>                         <process:ValueOf>
>                             <process:theParam rdf:resource="#O11"/>
>                             <process:fromProcess rdf:resource="#Step1"/>
>                         </process:ValueOf>
>                      </process:valueSource>
>                   </process:Binding>
>                </process:hasDataFrom>
>             </process:Perform>
>          </process:components>
> 
>          <process:Produce>
>             <process:producedBinding>
>                <process:OutputBinding>
>                    <process:theParam rdf:resource="#O1"/>
>                    <process:valueFunction expressionLanguage="&drs;"
>                                     rdf:parseType="Literal">
>                       <drs:Functional_term>
>                           <drs:term_function rdf:resource="&arith;#times"/>
>                           <drs:term_args rdf:parseType="Collection">
>                              <xsd:Integer rdf:datatype="&xsd;#Float"
>                                 >3.14159</xsd:Float>
>                              <drs:Functional_term>
>                                 <drs:term_function
>                                    rdf:resource="&arith;#max"/>
>                                 <drs:term_args rdf:parseType="Collection">
>                                    <xsd:Integer rdf:datatype="&xsd;#Integer"
>                                                 >0</xsd:Integer>
>                                    <process:valueOf>
>                                       <process:theParam
>                                           rdf:resource="#O21"/>
>                                       <process:fromProcess
>                                           rdf:resource="#S2"/>
>                                    </process:valueOf>
>                                 </drs:term_args>
>                              </drs:Functional_term>
>                           </drs:term_args>
>                       </drs:Functional_term>
>                    </process:valueFunction>
>                </process:OutputBinding>
>             </process:producedBinding>
>       </process:Sequence>
>   </process:composedOf>
> </process:CompositeProcess>
> 
> [...]
> is the "process:Produce" ControlConstruct in the right place?????
> if "process:Poduce" is meant to be the last "pseudo-step" of the 
> Sequence Construct, it should go before the </components> tag (because 
> it should be the last component of the Sequence)..
> but if "process:Produce" is meant to be the last "pseudo-step" of the 
> whole CompositeService it should go after the </Sequence> tag and before 
> the </composedOf> tag...
> anyway it should not be placeed between </components> and 
> </Sequence>!!!is it right?

You are correct.  It should go before the </components> tag.

-- 

                                         -- Drew McDermott
                                            Yale University
                                            Computer Science Department

Received on Friday, 11 November 2005 16:18:34 UTC