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