Project « MathML palette/macros »

Hello,

    My name is Frederic Wang and I would like to contribute to the Amaya 
Project. I'm a french student in « prepas math » so I'm particulary 
interested in the MathML interface. Actually, I discovered Amaya few 
years ago when I decided to put mathematical pages on my website 
<http://www.maths-informatique-jeux.com/>. Nevertheless, I agree with 
you when you say that « the interface is quite poor ». I have been 
waiting for improvements for a long time but the team is certainly 
working on other part of Amaya. I saw in open projects that you are 
looking for contributors to « MathML palette/macros » and so I decided 
to help you for this. This mail will expose what I plan to do and permit 
me to know if you agree with my ideas and if some people are already 
working on this. I would also like to get informations about the part of 
the source I have to modify.

Here are the three main ideas I will developpe now :

    * Completing the MathML Palette
    * Adding a semantic mode
    * Using semantic to create new tools

------------------------------------
Completing the MathML Palette

    Completing the palette with mathematical structures is what I think 
the easier to do, but I need to know which piece of the program have to 
be changed. I don't think there is a lot of things to say about the 
palette, I only have to prepare and sort a list of often used 
mathematical structures. This list must of course include the one of 
content tags.
    Just note that except for the sum and the integral, all the other 
buttons are in fact the transcription of a MathML presentation tag. Let 
put them in a "presentation tags" section and add others sections 
correponding to severals mathematical domains : logic, set theory, 
arithmetic, analysis... It may also be possible to classify according to 
the category of users : students, researchers, ingeneers, physicians...
    
Adding a semantic mode

    I know Amaya supports only the presentation tags but I think very 
interesting to include the content tags. Before explicating why, let me 
give the way I feel they have to be introduce in the menu. Let consider 
the palette have already been improved and can generates presentation 
tags for mathematical constructions. If you add others buttons for 
content tags, the user may ask himself what is the difference between 
the both types and also is likely to mix them. Moreover It would 
sometimes be problematic to decide the style of code that have to be 
generated : for instance when the user push the "+" button when editing 
a formula, should amaya insert a <plus/> or a <mo>+</mo> tag ?
    My suggestion is to add an option that allows the user to switch 
between semantic/syntaxic mode. Of course this don't really prevent the 
user to mix the two types but in fact this is allowed by MathML 2.0 
under specific conditions. As a consequence, it would also be important 
for the program to distinguish content and presentation tags in order to 
control that their uses are correct.
    A converter semantic/syntaxic will also be welcome. Converting 
content to presentation should be easy as the semantic tags are supposed 
to be transcripted to the screen. The inverse seems more difficult and 
the converter would only help the user by asking what are the semantical 
significance of each part of the formula.

Using semantic to create new tools

    It has already discuss in the W3C recommendation of MathML 2.0 about 
the importance of using semantic tags. Let me add an other one more 
linked to an editing point of view. Even if Amaya allows to quickly 
create mathematical contructions, some people can feel easier to 
directly write a code in TEX using copy/paste etc But the semantic 
approch has a great advantage : Amaya would be able to understand what 
the user means and to be more likely to help him in his redaction. Of 
course, programming this will be more complex.
    An important and difficult point is to define all the mathematical 
properties of an object in order to manipulate him during a proof. 
Moreover some others notions could be add by the user, for instance with 
the <declare> tag. So it is necessary to have a data structure to store 
informations on an object. So a first example of the Amaya assistance is 
controling the correct uses of mathematical objects.
    An other one is to help the user to make classical manipulations. 
When there is a succession of equalities or of logical equivalences, 
instead of copy/paste the preview formula and modify what he wants to 
change, he could use a button that do the job for him : apply a function 
to the too members of an equality (especially when this function is a 
1-1 onto map) or "add" (in sense of any law group) the same element at 
this members, developpe an operation than is distributive on an other 
one (times on plus, union & intersection, conjection & disjonction), 
developpe or group by a Chasles relation (vectors, integral etc) or a De 
Morgan law (in logic, set theory), developpe the determinant of a matrix...
------------------------------------

    I also have questions about the MathML 2.0 semantic tags, for 
instance how to represent something like "x + 5 = y > 8" ie what is the 
dispostion of <eq/> and <gt/> tags ? Or is it possible to represent the 
union or intersection of an indexed family of sets as it is with <prod/> 
or <sum/> ?

Fred

Received on Thursday, 31 August 2006 12:20:32 UTC