OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

unitsml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: WSDL 1/2 1st attempt...


Hey TC..

(this mail shall be recorded as part of the 2-week asynchronous  
portion of the UnitsML OASIS TC Meeting of Feb 11 2009)

(excuse the lengthy message, trying to make my thoughts "behind" clear)

So after overcoming various obstacles, like e.g. lack of health, here are my
thoughts on the WSDL issue. This is a twofold message, first of all I have
some ideas about what we want to achieve with storing a WSDL conversion, and
second, given these premises, that's what I suppose we should have to achieve
these.

1) Stuart asked, what is it we want to achieve with the inclusion of the WSDL
reference for UnitsML?

Well, to me the answer is: Give non-human UnitsML processors additional
capabilities to convert between units. ("additional" being transitive here)

Why "non-human"?

Given that WSDL is a quite verbose vocabulary to describe something like "go
to this URL, add a '&value=<your number here>' and you'll get the new value
of the unit you're looking for", I don't think we want to encourage people
to use it to refer to a webservice for humans. If we want the above, a comment
somewhere is enough, or a SpecialConversionFrom that includes the above quote
will be just fine. If we are referencing a WSDL though, I figure we do that
so that we can get it, look at it, and take the next steps of action based
on the content of the WSDL. Only the non-adept in WSDL will quickly be able
to determine, e.g., if there's a HTTP transport available and the message
exchange pattern and style described ends up being a HTTP GET, so that (s)he
just can construct an URL and invoke the service this way. So I see it as
given that referencing a WSDL is for the sole purpose of machine support.

As a justification for the services existence that means, either we have
additional capabilities in the web service (e.g. it returns MathML,
YourFavouriteML, unlimited precision integers/floats/42s) or we are  
referencing
a centralized service repository for the sake of not having to embed all
these conversion factors in the UnitsML data. Also I can figure someone might
want to use it for conversion factors that are not fixed per se (e.g. for
currency conversion(+), you want to get the latest exchange rate. Or maybe
there's an experimental series ongoing on how to convert a "sixpack" (standard
item coming up in the TC) to "permille of blood alcohol", or ...).

Using the WSDL Conversion in some way thus enables users of the unitsml to
model "more" than could be done by the linear equation, thus making the
content of a unitsml data chunk more expressive. On the other hand, there's
less immediate information available. Even the most stupid XSLT "processor"
is able to convert between units (I have one here) using the information
stored in the Float64ConversionFrom. For analyzing a WSDL, communicating with
the service (also constructing the correct messages back and forth in the
correct protocol, recognizing faults, ...) a more sophisticated processor is
required, if we do not encourage a certain discipline (in the documentation
of the WSDL Conversion element and children and/or in the UnitsML guidelines).
Additionally, the processor might even be crippled by relying on a webservice
to do conversions. Imagine a display for sensor networks behind some corporate
firewall and/or without access to the internet at all, trying to convert by
using a service on a machine "out there". That's why for me, usage of a web-
service can only be an enhancement to existing, documented conversion factors.

For the second question, this will be in a separate mail. I was caught by
surprise seeing how a juicy topic this is.

-Martin

(+) at the awareness that UnitsML is not for encoding currency, but let's
ignore that for the sake of a fitting example


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]