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

Hi Bill,

Thanks a lot!

The <approx/> element looks potentially useful as a way of
expressing tolerance.

In the example that you show:

<approx definitionURL="http://www.openmath.org/cd/relation2#approx"/>
<cn>-2</cn> <!-- the val is the exp of 10 -->

What does this mean?  Does it mean "All kilometer/mile pairs such that
the value is within a tolerance of +/- 0.01?

I believe that a tolerance (approx) value shouldn't be explicitly specified
within the MathML.
The reason is that for large kilometer/mile numbers 0.01 is a much smaller
percent than
for small kilometer/mile numbers, e.g,

   tolerance = 0.01 for kilometer=6300, mile=3914 is a much smaller percentage
than
   tolerance = 0.01 for kilometer=0.25, mile=0.009

/Roger



Bill Naylor wrote:

> 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 Wednesday, 23 July 2003 12:02:32 UTC