Re: units in MathML

Bruce Smith wrote:
> 
> [was: Re: some proposals on MathML]
> 
> To reply just to your "units=" proposal:
> 
> At 3:35 PM 1/28/98, Andreas Strotmann wrote:
> ...
> > - may I propose a "units=" attribute for the <cn> and <ci> elements
> >  or some other mechanism for specifying units (physical, monetary,
> >  or otherwise)?
> 
> I fully agree that support for quantities with units is desirable.
> 
> But I think we already support this, merely by allowing expressions
> consisting of products of numbers and identifiers. For example,
> the quantity 9.8 meter/(second ^ 2) could be expressed directly as the
> MathML markup corresponding to that expression, 9.8 meter/(second ^ 2),
> using identifiers such as <ci>meter</ci>.

In fact, there is yet another mechanism that already might support this;
namely, the "type" attribute may be (mis?)used for this purpose (because
being a temperature in degrees Centigrade implies being a real number
not less than the Centigrade equivalent of 0 Kelvin, while being a
minute means being an integer between 0 and 59, or rather an integer
modulo 60).

Anyway, formulas (especially in physics) most often do not make explicit
the units of either variables or numbers -- that is most often left to
the context, to the surrounding text, or to the choice of a variable
name to convey, or even as an implicit exercise to the reader.  In
tables, the units will likely be mentioned in the table header (if at
all), but most probably not in the table entries where a copy/paste
would need that information.

By contrast, the support that you refer to would currently require a
renderer to make visible the units of a number even when that is not
intended.  To solve that problem, you'd currently need not just a
&meter; symbol (usually rendered as a roman letter lower-case m) but
also an &invisiblemeter; one for example.  Furthermore, while there is
already support for invisible multiplication signs, this would introduce
the need for "invisible" cousins of all operations that may possibly be
used in composing a unit expression, i.e. invisible versions of at least
division and exponentiation, possibly more.  

> - Bruce Smith
> bruce@wolfram.com

I really do not know what the "proper" solution would be, but I would
still prefer a units attribute that may take a single unit name as value
(non-rendered, like the type attribute, but useful for browsers that may
offer their users to do conversions to more familiar units, say); the
same name may also appear as an argument to a multiplication, say
(rendered).  "New" and complex units would need to be given a name in
this scenario, say using <declare>;  for many such composite units,
names do exist in the literature.  A list of names of common units may
be added to the list of MathML entities.  Unicode encodes many common
physical and monetary unit symbols in the CJK compatibility zone, and
these symbols are likely sufficient for the purposes of MathML.  Thus,
this could be achieved with minimal effort.

Just my 2c...

-- Andreas Strotmann

Received on Friday, 30 January 1998 14:18:26 UTC