[moby] [MOBY-dev] Re: Problems with Biomoby services in Taverna 1.2

Heiko Schoof schoof at mpiz-koeln.mpg.de
Fri Jul 8 08:54:03 UTC 2005


Point taken to prove that indeed, I have to look into Taverna in more 
depth ;-) Anyway, Tom, what you state below is exactly what I would 
expect as behaviour, but I think on the BioMoby side we must ensure 
that our "Collections" behave in the right way, and I'm not yet sure 
they are precisely the same thing as what you call collection.

Best, Heiko

On 8. Jul 2005, at 10:07 Uhr, Tom Oinn wrote:

Heiko Schoof wrote:

> If I understand Tom correctly, the problem mainly appeared because the 
> BioMoby support was rapidly and effectively incorporated into Taverna 
> without proper integration, and what needs to happen is to define e.g. 
> the iteration strategy for BioMoby: Taverna so far doesn't use the 
> possibility to bundle multiple queries in a single BioMoby message, 
> which is not a problem, but the Collection issue could point to a need 
> for us BioMoby guys to look in more detail at Taverna data types and 
> do a sound mapping.
> Heiko

That's kind of true, meaning actually not. There are three cases 
involving collections (Taverna 1.1 behaviour) :

1) Consumer declares it consumes singles, Producer emits a collection. 
In this context Taverna iteratively calls the Consumer with each item 
from the collection. This is probably what you'd expect to happen, the 
result is that the Consumer effectively emits a collection of whatever 
it would emit normally.

2) Consumer declares it consumes a collection, Producer emits a 
collection. In this case Taverna will indeed split the output 
collection (because we always do) but it will be magically reassembled 
before being given to the Consumer.

3) Consumer declares it consumes a collection, Producer emits a single 
item. Taverna wraps the single item in a single element collection and 
gives it to the Consumer.

The intent is that as with the other plugin types Taverna guarantees 
that the service sees the inputs it has asked for. Our experience with 
other service types suggests that this is an extremely powerful 
mechanism as it allows interoperability between services that would 
otherwise mismatch - it's worth noting that our users expect these 
services to match, while a CS perspective regards ProteinSequence and 
ProteinSequence[] as completely different types most of our biologists 
don't! Taverna behaves the way _they_ expect it to, remember who your 
user are.

Taverna data types are pretty much trivial, they're opaque data blobs 
with the exception of collection structure which is exposed. We only 
expose the collection structure to ensure the above properties, other 
than that the framework is data agnostic (as it should be).

Tom
_______________________________________________
MOBY-dev mailing list
MOBY-dev at biomoby.org
http://www.biomoby.org/mailman/listinfo/moby-dev




More information about the MOBY-dev mailing list