Re: Using MathML to describe the relationships between units-of-measure

Hi Roger,

Your e-mail raises an interesting point as regards to the tolerance
parameter to specify an "amount of slack" value for set membership.
There is an <approx/> element in the MathML spec. which one might hope
could be used for this purpose. However, that doesn't seem to give any
control over the accuracy of the approximation! There is an equivalent
OpenMath symbol in the cd relation1, but as it is only intended for
OpenMath/MathML alignment, that too doesn't give any accuracy. I have for
a while argued for an approx with accuracy and I guess that a relation2
cd could be written which included such a symbol, then this cd may be
submitted to the OpenMath submission site:

http://monet.nag.co.uk/cocoon/openmath/cdfiles/contrib/index.html

This will put it in the submitted cd's. I think then that the intention is
that periodically the OpenMath organisation will review these cd's and
include the ones it agrees with as official (David (Carlisle) can you
correct me if I'm wrong).

Given the cd's have been set up as above (an approx symbol in relation2,
where the first arg is the accuracy, 2nd and 3rd approx eq), the example
may be given as:

 <Class id="Distance">
     <equivalentInstances>
         <!--   S = {k, m | k = m * 1.62}   -->
         <math>
             <declare type="set">
                 <ci>S<ci>
                 <set>
                     <bvar
definitionURL="http://www.openmath.org/cd/units_metric#kilometer"><ci>k</ci>
                     </bvar>
                     <bvar
definitionURL="http://www.openmath.org/cd/units_imperial#mile"><ci>m</ci>
                     </bvar>
                     <condition>
                         <apply>
                             <approx
definitionURL="http://www.openmath.org/cd/relation2#approx"/>
                             <cn>-2</cn> <!-- the val is the exp of 10 -->
                             <ci>k</ci>
                             <apply>
                                 <times/>
                                 <ci>m</ci>
                                 <cn>1.62</cn>
                             </apply>
                         </apply>
                     </condition>
                     <list><ci>k</ci><ci>m</ci></list>
                 </set>
             </declare>
         </math>
     </equivalentInstances>
 </Class>

I think that will do what you want?

If things have not been set up as required in an OpenMath CD, it is
sometimes possible to use the MathML semantics element to specify the
required semantics. The syntax of this element is described in the MathML
spec:
http://www.w3.org/TR/MathML2/chapter4.html#N36079

I hope this helps,

Bill

Received on Tuesday, 22 July 2003 21:14:12 UTC