[kepler-dev] modeling question about producing f(A, x), f(A, y)...

Daniel Zinn dzinn at ucdavis.edu
Fri Aug 3 13:42:45 PDT 2007


On Friday 03 August 2007 12:13, Carlos Rueda wrote:
> Hmm.. assuming each z, y, x ... is a fired token from A2, how is it
> possible for A3, after reading (a1,z), to read y since it will block
> while reading from A1?

As there is only one a1 token, the pseudo code for the actor would like like 
this:

go() {
  store = readFromA1();
  while (true) { 
    x = readFromA2();
    output( f(store,x) );
  }
}

I would still prefer the solution I gave with only one channel and a switch in 
the actor code. As this would also be able to read multiple ai.

Daniel



> Carlos
>
> Daniel Zinn wrote:
> > On Friday 03 August 2007 11:59, Norbert Podhorszki wrote:
> >> Close :-)
> >
> > I thought x,y,z,... are functions of a1.
> >
> > Daniel
> >
> >             a1
> >
> >>   A1 ---------------> ------  ..., f(a1,z), f(a1,y), f(a1,x)
> >>
> >>                       | A3 | -------------------------------->
> >>
> >>   A2 ---------------> ------
> >>         ...,z,y,x
> >>
> >>
> >> Norbert
> >>
> >> On Fri, 3 Aug 2007, Daniel Zinn wrote:
> >>> Hi Norbert,
> >>>
> >>> ok, then maybe I don't understand the problem well enough. Let me give
> >>> it another shot:
> >>>
> >>> in PN:
> >>>
> >>> A1 ---------------> A3
> >>>    \---> A2 ----->
> >>>
> >>> A1 produces A which is branched and sent to A2 and A3.
> >>> A2 just produces x,y,z,... from A
> >>> A3 first reads from the A1 port and stores the A
> >>>   then reads from the second port only and does its thing
> >>>
> >>> Daniel
> >>>
> >>> On Friday 03 August 2007 11:45, Norbert Podhorszki wrote:
> >>>> Hi Daniel,
> >>>>
> >>>> Thanks for the idea.
> >>>> You have generalized the problem here, because for us, A is just one
> >>>> single token (a1 in your example).
> >>>>
> >>>> The collection-oriented modelling seems to be a bit heavy weight
> >>>> solution in the sense, that if we start from a Constant with single
> >>>> firing and a Ramp to generate a stream of tokens, it seems to be a lot
> >>>> of work to make it a collection oriented workflow, isn't it?
> >>>>
> >>>> Thanks
> >>>> Norbert
> >>>>
> >>>> On Fri, 3 Aug 2007, Daniel Zinn wrote:
> >>>>> Hi,
> >>>>>
> >>>>> (let me try, perhaps this might help)
> >>>>>
> >>>>> The problem here is that we need to preserve the dependency between A
> >>>>> and x,y,z... This is a classical use-case for collection-oriented
> >>>>> workflows.
> >>>>>
> >>>>> You could probably use Tim McPhillips' and Shawn Bowers'
> >>>>> collection-oriented framework to solve this problem. You could send A
> >>>>> as meta-data in a collection that contains x,y,z,.... In the third
> >>>>> actor you then just pull the metadata and the x, ..
> >>>>>
> >>>>> You can also emulate a collection by using a workflow with 3 actors
> >>>>> in a pipeline:
> >>>>>
> >>>>> A1 --> A2 --> A3
> >>>>>
> >>>>> actor one sends a1,a2,a3...
> >>>>> A2 consumes a1 and produces a1, x, y, z, ..., a2, x, y, z
> >>>>> A3's behavior depends on the type of what is coming in:
> >>>>>     if   input == ai    => store ai in a local variable for later
> >>>>>     else (input is one of x,y,z,...) => compute f(ai, input) and
> >>>>> output result (with or without context)
> >>>>>
> >>>>> PS:
> >>>>>
> >>>>> In a collection oriented / tree-type enabled workflow where inner
> >>>>> nodes also can contain data, you could do something like that:
> >>>>>
> >>>>> Let the three actors be
> >>>>>
> >>>>> A1 --> A2 --> A3
> >>>>>
> >>>>> A1 produces data of type A*        (that is a list of As)
> >>>>> A2 produces data of type A[X*]     (that is to each A, also contains
> >>>>> a list of x,y,z...
> >>>>>                                    as a new sub collection)
> >>>>> A3 then has a 'read scope' of A=>a[ X=>x ]
> >>>>> A3's action then uses a and x.
> >>>>>
> >>>>>
> >>>>> Daniel
> >>>
> >>> --
> >>> "The acquisition of wealth is no longer the driving force in our
> >>> lives ... we work to better ourselves and the rest of humanity."
> >>>
> >>> reach me at:    Jabber:q at n251.fem.tu-ilmenau.de  ICQ:79511325
> >>>                AIM:QN303 Skype:DanielZinn IRC:q at irc.gimp.org
> >>> _______________________________________________
> >>> Kepler-dev mailing list
> >>> Kepler-dev at ecoinformatics.org
> >>> http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-de
> >>>v
> >>
> >>       Norbert Podhorszki
> >>     ------------------------------------
> >>       University of California, Davis
> >>       Department of Computer Science
> >>       1 Shields Ave, 2236 Kemper Hall
> >>       Davis, CA 95616
> >>       (530) 752-5076
> >>       pnorbert at cs.ucdavis.edu
> >>       ----------------------------------

-- 
"The acquisition of wealth is no longer the driving force in our
 lives ... we work to better ourselves and the rest of humanity."

reach me at:    Jabber:q at n251.fem.tu-ilmenau.de  ICQ:79511325
                AIM:QN303 Skype:DanielZinn IRC:q at irc.gimp.org


More information about the Kepler-dev mailing list