25 | | The group members were enthusiastic about the simple and elegant way that BioMOBY can locate and evaluate WSs acting as a WS client to generate functional Web Processes. However, all were concerned with the ad hoc nature of the data object definition process, and the apparent lack of error checking for this process. By design, the BioMOBY object ontology contains little else other than syntactic information. While this is a strength in terms of ease of use and flexibility, it may lead to major difficulties in scaling the BioMOBY platform. For example, a web service provider could have a service (call it SQRT) that takes as input an integer and returns a float, which is the square root of the integer. Without any problem the developer could then define a BioMOBY data object called "myNumber" and register the web service, specifying that input and output are both instances of "myNumber". While this would go against the spirit of BioMOBY, there is nothing to prevent this from happening. Then, clients could find the service if they somehow know what kind of object "myNumber" is. Clients attempting to find WSs that take integers as input would fail to find the WS. That is, the process of defining data objects is so flexible that it is possible to create all sorts of different data objects that may be identical to other data objects that have already been defined, or to specify that a WS takes a data object that it really cannot handle. It is totally up to the WS to check for errors of this type. This lack of rigorous vocabulary control may become a major problem as BioMOBY is scaled up. |
| 25 | The group members were enthusiastic about the simple and elegant way that BioMOBY can locate and evaluate WSs acting as a WS client to generate functional Web Processes. However, all were concerned with the ad hoc nature of the data object definition process, and the apparent lack of error checking for this process. By design, the BioMOBY object ontology contains little else other than syntactic information. While this is a strength in terms of ease of use and flexibility, it may lead to major difficulties in scaling the BioMOBY platform. For example, a web service provider could have a service (call it SQRT) that takes as input an integer and returns a float, which is the square root of the integer. Without any problem the developer could then define a BioMOBY data '''string-encoded''' object called "myNumber" and register the web service, specifying that input and output are both instances of "myNumber". While this would go against the spirit of BioMOBY, there is nothing to prevent this from happening. Then, clients could find the service if they somehow know what kind of object "myNumber" is. Clients attempting to find WSs that take integers as input would fail to find the WS. That is, the process of defining data objects is so flexible that it is possible to create all sorts of different data objects that may be identical to other data objects that have already been defined, or to specify that a WS takes a data object that it really cannot handle. It is totally up to the WS to check for errors of this type. This lack of rigorous vocabulary control may become a major problem as BioMOBY is scaled up. |
| 28 | |
| 29 | '''Day 3 Progress''' |
| 30 | |
| 31 | Toy MOBY web services were implemented. Due to the complexity of the dependencies in java and our inexperience with MOBY, this took virtually all day. The taxonomy of MOBY data objects for our domain (glycomics) was discussed, and the issue of semantic vs syntactic subsumption reared its ugly head. |
| 32 | |
| 33 | '''Day 4 Progress''' |
| 34 | |
| 35 | We began to develop actually useful MOBY WSs in our domain. This took most of the day, due to our inexperience and the complexity of implementing the WSs on our web services on our servers (remotely). Long discussions about sntax vs. semantics in the MOBY data object taxonomy. |
| 36 | |
| 37 | '''Day 5 Progress''' |
| 38 | |
| 39 | Decided on the following taxonomy for glycomics data objects. |
| 40 | |
| 41 | |
| 42 | Glyco_SVG (has_a String) is_a Glyco_Image is_a Glycomics_Object is_a Object |
| 43 | Glyde_II (has_a String) is_a Glyco_Sequence is_a Glycomics_Object is_a Object |
| 44 | |
| 45 | |
| 46 | (underscores added to prevent WIKI formatting of strings) |
| 47 | |
| 48 | The(semantic) organization of this taxonomy (based on advice from several different hackathon attendees) may contravene the conclusion stated at the end of the Hackathon, that "syntax" rules in the MOBY data type taxonomy. |
| 49 | |
| 50 | Continued development of MOBY WS, and registered the following three. |
| 51 | |
| 52 | getSimilarGlycans |
| 53 | |
| 54 | getGlydeByID |
| 55 | |
| 56 | Glyde2SVG |
| 57 | |
| 58 | Only the first was completely implemented. However, the MOBY registrations allowed us to create the following workflow in Taverna. |
| 59 | |
| 60 | |
| 61 | ''' Glycomics Object (ns=LINUCS)''' --> getSimilarGlycans (Aoki-Kinoshita) --> '''Glycomics Object (ns=KEGG)''' --> getGlydeByID (Ranzinger) --> '''GLYDE-II''' --> GLYDE2SVG (York) --> '''glycoSVG''' |
| 62 | |
| 63 | |
| 64 | This prototype workflow will be used as a basis for further development at our home institutions, with the goal of making easily usable workflows for glycoscientists who use our data and software. |