# Re: Using content-MathML for computation and analysis in Science and Engineering

From: Peter Murray-Rust <pm286@cam.ac.uk>
Date: Mon, 19 Mar 2012 08:31:52 +0000
To: Roger Martin <mathmldashx@yahoo.com>
Cc: "www-math@w3.org" <www-math@w3.org>, Andrew Walker <Andrew.Walker@bristol.ac.uk>, Martin Dove <mtd10@cam.ac.uk>, Jens Thomas <jensthomas2@gmail.com>, Mark Williamson <mw529@cam.ac.uk>, Charlotte Bolton <charlotte.bolton@gmail.com>
```I have now made progress on my MathCML engine (combined mathematics and
chemistry). I have been much encouraged by this list and hope I may
continue to ask questions - any progress I make is updated at
https://www.bitbucket.org/petermr/mathml.

One of my uses is to chain simple statements sequentially as in a computer
program, such as

x=1
y=2
r=x+y
x=9

and turn it into:

[itex] // I shall omit namespaces for brevity
<apply><eq/><ci>x</ci><cn>1</cn></apply>
<apply><eq/><ci>y</ci><cn>2</cn></apply>
<apply><eq/><ci>r</ci><apply><plus/><ci>x</ci><ci>y</ci></apply></apply>
<apply><eq/><ci>x</ci><cn>9</cn></apply>
[/itex]

Can I check that this is (a) valid MathML and (b)
stylistically/semantically acceptable MathML?

My understanding of the discussion so far is that the "x" in line 1 may or
may not be the "same as" the "x" in line 3; that MathML is silent on this.
If so it is legitimate for me to assume it is. It is also legitimate for me
to assume it carries the value 1 to line 3 and that "r" could be evaluated
as 3. (It is aso legitimate for others to assert that they don't accept
these semantics). There is also no universal agreed terminology that I can
use to enforce my interpretation. That I have to use a content dictionary
(cd) to make that assertion and that (probably) I have to do this in human
language

If this is agreed then I shall continue on this basis. What are the
potential dangers other than other MATHML users misunderstanding what I am
doing?

More generally my engine will wish to manage objects other than pure maths
objects (e.g. molecules). Can I assume that as long as I simply expose the
symbols and not the detailed structure MathML will not care. For example:

<apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>
<sum <http://zvon.org/xxl/MathML/Output/el_sum.html>/>
<bvar <http://zvon.org/xxl/MathML/Output/el_bvar.html>>
<ci <http://zvon.org/xxl/MathML/Output/el_ci.html>> bond
</ci<http://zvon.org/xxl/MathML/Output/el_ci.html>>

</bvar <http://zvon.org/xxl/MathML/Output/el_bvar.html>>
<condition <http://zvon.org/xxl/MathML/Output/el_condition.html>>
<apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>
<in <http://zvon.org/xxl/MathML/Output/el_in.html>/>
<ci <http://zvon.org/xxl/MathML/Output/el_ci.html>>
bond </ci<http://zvon.org/xxl/MathML/Output/el_ci.html>>

<ci
<http://zvon.org/xxl/MathML/Output/el_ci.html>type="set"> bondSet </
ci <http://zvon.org/xxl/MathML/Output/el_ci.html>>
</apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>
</condition <http://zvon.org/xxl/MathML/Output/el_condition.html>>
<apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>
<ci <http://zvon.org/xxl/MathML/Output/el_ci.html> type="fn">
bondLength </ci <http://zvon.org/xxl/MathML/Output/el_ci.html>>
<ci <http://zvon.org/xxl/MathML/Output/el_ci.html>> bond
</ci<http://zvon.org/xxl/MathML/Output/el_ci.html>>

</apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>
</apply <http://zvon.org/xxl/MathML/Output/el_apply.html>>

will apply the function "bondLength" to a set "bondSet" (which happens to
be a set of bonds)

If so, are they stylistic and semantic conventions I should be aware of?

--
Peter Murray-Rust