[MOBY-dev] Taverna plugin bug?: elements missing in BioMOBY objects

Pieter Neerincx Pieter.Neerincx at wur.nl
Tue Oct 4 12:43:47 UTC 2005


Hi Eddie et al.

Now that I have my local BioMOBY Central up and running I'd love to  
run some worksflows, but I think I ran into a bug. When I select  
BioMOBY objects and add them to a workflow all necessary processors  
for the child elements/objects are added as well. So far so good. But  
when I run a workflow, some of the child elements for the objects are  
missing from the object that is send to a service. Here's an example:

If I have a nested structure like this:

moby:MOBY
     moby:Content
         moby:Data
             moby:Simple
                 moby:My_Root_Moby_Object
                     moby:My_Child_Level_1A
                     moby:My_Child_Level_1B
                         moby:My_Child_Level_2A
                         moby:My_Child_Level_2B
                     moby:My_Child_Level_1C
                     moby:My_Child_Level_1D
                         moby:My_Child_Level_2A
                             moby:My_Child_Level_3A
                     moby:My_Child_Level_1E

* The MyRootMobyObject can have many ChildLevel1 elements. That's fine.
* However if the ChildLevel1 elements have childs, they might be  
missing from the object that is send to a service. Some will be  
there, others will be missing. I tried to find a pattern, but I  
couldn't. So whether there is 1 or more elements added at level 2,  
whether they have an articleName or not, whether they have a  
namespace or not, etc. doesn't seem to make a difference. I also  
tried the official BioMOBY central: same result. I also tried the  
freshly released Taverna 1.3 today: same result again.

So when I look in Taverna at the intermediate inputs and outputs for  
the different processors I see the following structures:

The input for the service = the intermediate output of the processor  
that created MyRootMobyObject contains:

moby:MOBY
     moby:Content
         moby:Data
             moby:Simple
                 moby:My_Root_Moby_Object
                     moby:My_Child_Level_1A
                     moby:My_Child_Level_1B
                     moby:My_Child_Level_1C
                     moby:My_Child_Level_1D
                     moby:My_Child_Level_1E

The intermediate input for the processor that created  
MyRootMobyObject = the intermediate output of the processor that  
created MyChildLevel1B contains:

moby:MOBY
     moby:Content
         moby:Data
             moby:Simple
                     moby:My_Child_Level_1B
                         moby:My_Child_Level_2A
                         moby:My_Child_Level_2B

So that one looks fine, but when My_Child_Level_1B is appended to  
My_Root_Moby_Object, the children of My_Child_Level_1B are lost :(.
I do not get any errors or scary log lines apart from my service  
complaining that some elements are missing from the input.

Any idea what is messing up the fun?

Pieter

Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: 0317-483 060
fax: 0317-483 584
mobile: 06-143 66 783
pieter.neerincx at wur.nl







More information about the MOBY-dev mailing list