# RE: Suggestion about generators of MathML code

Date: Fri, 28 Jul 2006 11:09:26 -0700 (PDT)
Message-ID: <3037.217.124.69.201.1154110166.squirrel@webmail.canonicalscience.com>
To: <www-math@w3.org>

Robert Miner said:
> Juan,
>
> Your proposal for attributes to record the generator, and 'profile'
> seems like a good one to me.  I think many people would find it useful.
> I have added it to the list of things to consider for MathML 3.
>
> Specifying the values for the 'profile' will take some thought. From
> your examples, I can see your general idea, but I can imagine that
> attribute recording a number of different things.  In particular, your
> "TeX-annotation" example seems like it would be redundant with the the
> annotation itself, since that <annotation> element would have a encoding
> attribute.  Would you like to say more about your ideas on that?
>
> Thanks for the constructive suggestion.
>
> --Robert
>
> Robert Miner
> Director, New Product Development
> W3C Math Working Group co-chair
>
> Design Science, Inc.
> 140 Pine Avenue, 4th Floor
> Long Beach, California  90802
> USA
> Tel:  (651) 223-2883
> Fax:  (651) 292-0014
> robertm@dessci.com
> www.dessci.com
> ~ Makers of MathType, MathFlow, MathPlayer, WebEQ, Equation Editor,
> TexAide ~

The idea was basic, you can change names, generalize, etc. No problem.

The basic idea is that due to existence of parallel markup, fine parallel
markup, OpenMath extensions, annotation and so one the variability of code
in math is cuasi-infinite doing communication very difficult because each
tool present one (or several 'profiles').

Take the case of \sin \pi

it could be

$<apply> <sin/> <pi/> </apply>$

or

$<apply> <sin/> <cn type="constant">&pi;</cn> </apply>$

or

$<apply> <csymbol definitionURL="http://www.openmath.org/cd/transc1#sin"/> <cn type="constant">&pi;</cn> </apply>$

The code generated by each tool is as a kind of key specific to that tool
in many cases. Once the tool studied one can transform the code from and
to it. Now i know that HERMES introduce extra <mi> into the <ci> and that
tools becoming from OpenMath prefer usage of csymbol extensions rather
than c-MathML empty tags.

Initially i thought of this for content MathML, but could be used for
improvement of p-MathML code also. For instance, the introduction of an
redudant <mstyle> at the end of the code is characteristic of ASCIIMathML,
whereas, when i see an <msup><mrow/><mn>2</mn></msup><mi>base</mi> from
ITeX i know that would be substituted by correct mprescript code.

The 'profile' attribute (use any other name if prefer) would select
between different posibilities from authors/generators, for instance you
could obtain different code in function of options of the software, if you
are using entity names or unicode numbers, if use different imput sintaxes
(e.g. two of ASCIIMathML).

The profile would be a record of some basic properties of that can
understand and/or generate each tool you can write useful filter for input
and output. Take the case of example p-MathML code listed here

[http://lists.w3.org/Archives/Public/www-math/2006May/0003]

If i know that a piece of code has been generated by ORCCAA
(profile="normal") i wait extra <tex2mml> may be eliminated before send
the fragment to any other MathML tools.

Now i am doing experiences with communication between tools in c-MathML. I
follows a similar thoutght i take c-MathML code generated from different
tools and enter in Mathematica. Several (really many) examples offer error
and one can easily see why? The tools are generating some profiles are not
understood by Mathematica (and Mathematica can generate code is not
understood by others).

With a library of profiles and generators you can minimize errors in
interchange of data between MathML tools. Something today do not working
well. You also can do your software ignore fragments of code generated by
superior profiles (new versions of tools for instance) and/or generators
with superior capabilities. For instance if your software understood

$<?context-mathml-directive log location left?> <apply><log/> <logbase><ci>7</ci></logbase> <ci>x</ci> <apply/>$

that is great, but if does not understood the context PI then probably
will generate error (this will be illustrated and discussed with more care
iincluding detailed examples of codes and screenshots with failures from
Mathematica online). With something like

<math generator="context" profile="context-PI-included">

tool could ignore that fragment of code whereas

<math generator="context" profile="standard-MathML">

could be analized.

There many ideas to be discussed here and i am being not precise, but now
i lack a lot of time, since canonical website is being tested for official
launching.

Juan R.

Center for CANONICAL |SCIENCE)

Received on Friday, 28 July 2006 18:09:53 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:27:38 UTC