[MOBY] Re: [MOBY-dev] MOBY 0.49 API online... nearly stable!
Mark Wilkinson
markw at illuminae.com
Thu Apr 3 18:01:22 UTC 2003
On Thu, 2003-04-03 at 11:05, Martin Senger wrote:
> "In BioMOBY, there are three catagories of input/output parameters..."
>
> Suggestion: call in consistentlly 'input/output data' (as also used
> in other places of the APi document(
okay.
> "There are two forms of Primary parameter (...Simple...Collection)"
>
> It confuses me. Does it mean that a service can have more input
> parameters, each of them can be a collection? In that case why do
> you allow to have different types in one collection? Or does it
> mean that a service can have only (zero or) one primary parameter
> which can be a collection? In such case the variatey of element types
> is reasonable.
I agree, I should add a couple of sentences explaining it; it is implied
in the example, and it is clear in the XML for service registration, but
I never state it as clearly as I should: A "collection" is considered a
single piece of input data, but that single piece of input data is
composed of many objects. A 'simple' input is a single object. There
can be any number and any combination of simple and/or collection data
inputs to a service.
> "There is currently only one form of Secondary input"
>
> Can a service have more that one secondary input? It should
> have. Why there is no collection of them? Generally speaking, I
> would not make difference between primary and secondary data (or
> parameters, whatever you decide to call them) in their structures. The
> difference should be in their usage (for example, the secondary data
> are not used for the service discovery). Why not to make it simpler
> and why not to have the same structure for both - with just a single
> attribute specifying this is primary and this is secondary?
There is no equivalent of a "collection" for Secondary inputs, though as
with the Primary inputs, there may be any number of Secondary inputs to
a service.
> "the authority (service provider URI)"
>
> I suggest to use consistently only one term (authority, service
> authority, provider, service provider,...).
I need to spend more time in general explaining what we mean by
"authority", as it might be confusing to many people... especially since
we assign authority to a transformation rather than a datatype.
> "expandObjects: this flag will cause MOBY Central to traverse the
> Class ontology to find services that operate not only on the Object
> Class you are querying, but also any parent types or sub-objects of
> that Object Class."
>
> Are you sure that this is correct? It seems to me that using this
> flag will return *all* services because all data types inherit from a
> base type 'Object'. So a service operating on 'Sequence objects'
> operates also on 'Object'. But perhaps it's enough to say where the
> traversal ends.
In practice it doesn't return all services (as we know from the existing
MOBY prototype, which already has this functionality). The reason is
that a service provider registers themselves as a consumer of complex
objects, and the ontologly traversal only goes "up", so unless you are
registered as a consumer of more simple objects in the path of the
traversal you will not be discovered.
it does, however, return a whole lot more services than one might
expect! We know that from experience also ;-) As a consequence, one
of the critical functionalities in any client will have to be a way to
present these services to the user in some coherent manner.
> "The Query object structure is as follows:
> <inputObjects>
> <Input>
> <!-- one or more Simple or Complex Primary Parameters -->
> </Input>"
>
> Do I really need to include the whole Parameter definition? On
> another place the API says that I can query "by name from the Class
> ontology". It seems better to me.
Well... effectively you are querying by Class name, since the only
things in a Simple parameter is Class name and optional namespace...
I'm just trying to re-use object structures as much as possible to make
client design simpler.
> "registerService...all elements except secondaryParameter are required"
>
> Why? I can imagine a service without any inputs (or using only
> default inputs). For example, "show me, what you have".
hmmm... that's a service type that i had never considered... I'll have
to think about that.
> "findService
> * There are additional details..."
>
> Missing link with additional details.
i haven't written them yet :-)
> "Output XML (by category):
> moby:
> <Service>
> <![CDATA[WSDL document here]]..."
>
> A WSDL document is a valid XML piece - therefore is there any
> reason why to wrap it in a CDATA? We had this discussion already
> about embedding the XSD and it seemed to be resolved. You may
> remember that CDATA around the XML document may cause interoperability
> problems.
right. copy/paste error.
M
More information about the MOBY-dev
mailing list