Re: Restricting input depending on output

Drew McDermott wrote:
>    [Saied Tazari]
> >  I am working on a user-centric broker agent in the context of a national 
> >  research project in Germany (see the extended abstract submitted to KIMAS'03 
> >  for a summary of our ideas about the broker agent under 
> >  http://www.zgdv.de/departments/z3/Z3Staff/stazari/index_html_en).
> >
> >  I have a problem regarding the flow control in composite processes (more 
> >  precisely in a simple sequence without any preconditions and effects):  How 
> >  can I specify that one of the inputs of an atomic process must be a subset 
> >  of one of the outputs of the preceeding atomic process?
> >
> >  Consider the following example:
> >  
> >  ...
> >
> >  How can I formulate that a concrete value given for selectedLocationList_In 
> >  within a concrete sequence of these two processes must be a subset of the 
> >  concrete value delivered for availableLocationList_Out?
> 
> We have a technique in DAML-S for indicating that the two values must
> be identical:
> 
>    <rdf:Description rdf:about="...whole process id...">
>       <process:sameValues rdf:parsetype="daml:collection">
>          <process:ValueOf 
>             process:atClass="#GetPostitCompositionPrerequisites"
>             process:theProperty="#availableLocationList_Out"/>
>          <process:ValueOf 
>             process:atClass="#StickPostit"
>             process:theProperty="#selectedLocationList_In"/>
>       </process:sameValues>
>    </rdf:Description>
> 
> However, what you want is slightly different.  

That's true, namely I would like to have something like 'subsetOf' instead 
of 'sameValues'.  Besides, in my point of view the implicit assumption in 
the above description that "we mean only those instances of 
GetPostitCompositionPrerequisites and StickPostit that appear in the one 
instance of the sequence containing both of those" must be made explicit.

> Why not introduce a
> "select" step that picks one from a list?  Then you could have a sequence
> 
>     GetPostitCompositionPrerequisites
>       
>       >out>  availableLocationList_Out
>             =availableLocationList_In
>              >in>
> 
>                PickOne
> 
>                  >out>  selectedLocationList_Out
>                        =selectedLocationList_In
> 
>                           >=> 
> 
>                               StickPostit
> 
> You would need two 'sameValues' declarations to make this work.
> 
>                                              -- Drew McDermott

Two problems:

. That is shifting the problem from
      (availableLocationList_Out --here--> selectedLocationList_In)
   to
      (availableLocationList_In --here--> selectedLocationList_Out)
   despite making the sequence longer.

. The natural meaning of PickOne says that only one location is
   selected but our requirement is that the value to be provided
   for selectedLocationList_In must be a **subset** of the value
   provided for availableLocationList_Out in the preceeding step.

-- Saied Tazari

Received on Tuesday, 11 March 2003 10:40:43 UTC