[MOBY] Re: [MOBY-l] Quick survey of opinions on query structure

Mark Wilkinson markw at illuminae.com
Mon Feb 17 01:06:40 UTC 2003


On Fri, 2003-02-14 at 07:26, Martin Senger wrote:
> The Moby
> registration features can guarantee that a service gets always onlty data
> of a type it understands, which is good, but why the data has to be
> wrapped in a MOBY-specific XML wrapper? Because sending data wrapped means 
> that a service must understand them, therefore any service must be first 
> MOBY-ized. Is that correct?

that is correct - 100% correct!.  I'll say again that MOBY is *not* able
to support arbitrary existing services; these must be wrapped to
generate/accept valid MOBY output/input data objects and query/response
structures.  However, the wrapper doesn't need to be more than a couple
of lines (at least, in Perl ;-) )

The service must be MOBYfied because the data-types (in/out) **must**
exist in our data-type ontology in order to allow other services to
register their acceptance of those datatypes as input...keeping in mind
that the end-goal is ****interoperability****!!!!!!  Objects that are
not registered in the ontology, CANNOT be served via MOBY. Now, as a
consequence of registering your datatypes into our service ontology,
they will (by definition) inherit from the base MOBY Triple.  Beyond
that, your data can look however you like.  If the object structure is
not further defined in the MOBY object hierarchy, it is then simply a
CDATA "bag" surrounded by the MOBY Triple declaring the data-type it is
carrying.

e.g.:

<moby:MartinsFavoriteDataType namespace="martins/ID" id="2468">
	<![CDATA[ <!-- your favorite object here -->
		<martin:MSObject xmlns:martin="http://www.ms.org/mine">
			<martin:Content> This is whatever I like
			</martin:Content>
		</martin:MSObject>
	]]>
</moby:MartinsFavoriteDataType>


Thus, the wrapper for an existing service can be extremely lightweight,
as you need only wrap it with a simple MOBY Triple and you're done!  Of
course, you haven't used MOBY to the extent that we **want** you to, but
you have generated a valid MOBY object, and that is all that is required
to play the game.

I hope that helps.  I know that writing wrappers is a pain, but as I
have said before, the goal is **interoperability**, not the support of
arbitrary existing services... no pain, no gain :-)

(it may be that myGrid will grow to have a sufficiently sophisticated
ontology that it will be able to support arbitrary input/output
datatypes, but I don't think that MOBY ever will...)

M

disclaimer:  the object model above is likely to change this week as we
have 5-7 core BioMOBY developers here in Singapore at the hackathon...
so there will no doubt be some major MOBYing!  I personally hope to MOBY
my butt off ;-)  


-- 
=======================================================================
                                    |--==\
Mark Wilkinson, Ph.D.                \==-|       
Bioinformatics Consultant             \=/        0010010010100101110010
Illuminae Media                       /-\        
727 6th Ave. N.                      /-==|       0010100100111101010010
Saskatoon, SK, Canada               |==-/        
S7K 2S8                              \=/         0100100100010010010101
+1 (306) 373 3841                     /\         
markw at illuminae.com                  /=-\        1101001010100101010101
                                    |--==\
=======================================================================



More information about the moby-l mailing list