Brad Chapman wrote: > > Jeff wrote: > > Conceptually and graphically, it's very simple: Unconnected pipes > > in a subnet mean the I/O is redirected from/to the parent network. > > In Pied/Piper, all "dangling" pipes are reproduced at (mapped > > onto) the parent node's icon (this is not implemented yet). To > > "close" a pipe or create a "dead end", the user must "hide" it > > (also not implemented). In Peep, the user will need to issue a > > "close" or "cap" command to do the equivalent. > > Okay, this makes complete sense. Thanks! I'll work on adding support > for this in the dl so that the xml files model this kind of behavior. About DL support: We'll need commands like "create_link" and "destroy_link" ("link" is Overflow terminology, which we should use, and a "pipe" is a type of link). As an example of why the UI needs to follow the commands of the DL (although that may seem backward), imagine the user entering a subnet and disconnecting a link. The UI tells the DL...... UI: "DL, disconnect this link" But, now that there is an unconnected link in a subnet, the subnet's parent node (the node that represents the subnet -- contained in the "supernet") gets that link added to it (for Pied, the link is added to the icon). (This is what I described to you earlier.) So, what happens? First, the DL tells the UI to go ahead and disconnect the link: DL: "UI, disconnect this link" The UI does it, but THE PARENT NODE NEEDS A LINK ADDED: DL: "UI, create a link on the parent" THIS IS NOT MERELY ECHOING BACK THE COMMANDS BY THE DL AS A CONFIRMATION! This is something the DL has come up with on its own. This is why the DL is smart while the UI is dumb, and why the UI has to listen to the DL! > > (You don't see NetConditions however, since it is used "internally" > > by the Iterator) > > Right, I still need to add stuff for handling Iterators and haven't > even gotten into this yet. About iterations: The idea of using iterators with data passed around the Internet (not just within the Overflow system) is interesting. Say that you want to pass some data to a remote processor in a loop until a condition is met. But, where should the logic/controller for this reside? Do we need to (re)implement this in the BL layer, or should the user make a PL subnet to handle this? Thoughts? Talk amongst yourselves :-) Cheers. Jeff -- +----------------------------------+ | J.W. Bizzaro | | | | http://bioinformatics.org/~jeff/ | | | | BIOINFORMATICS.ORG | | The Open Lab | | | | http://bioinformatics.org/ | +----------------------------------+