Re: Project « MathML palette/macros »

On Thursday 31 August 2006 14:20, frederic07wang wrote:
> 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

That is an interesting plan.
I agree with your ideas and, as I know, nobody is working on this.
I propose you start with the first item "Completing the MathML Palette".

To work on "Completing the MathML Palette" you have to:

1) Update MathML panel resources
    The panel is described by a xml file Amaya/resources/xrc/Panel_MathML.xrc
    Used icons are located in Amaya/resources/icons/16x16/
    We use xrecd (a wxPython tool based on python and wxWidgets) to edit 
    the resource file.

2) Update the code that manages the MathML panel
    The panel is managed by the C++ module: AmayaMathMLPanel
    source: Amaya/thotlib/dialogue/AmayaMathMLPanel.cpp
    include: Amaya/thotlib/internals/h/AmayaMathMLPanel.h

3) Write the code that generates the document structure
    MathML edits are managed by the C module: Mathedit
    source: Amaya/amaya/Mathedit.c
    include: Amaya/amaya/f/Mathedit_f.h

4) Connect panel returns to new created editing functions
   By example CreateMSum (Document doc, View view) is called by
   TtaExecuteMenuAction ("CreateMSum", doc, view, FALSE); in
   AmayaMathMLPanel.cpp
   For that you have to declare your new editing functions in
   Amaya/amaya/EDITOR.A

>
> ------------------------------------
> 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

Don't hesitate to contect us if you have problems
Regards
     Irène.
-----
Irène Vatton                     INRIA Rhône-Alpes
INRIA                               ZIRST
e-mail: Irene.Vatton@inria.fr       655 avenue de l'Europe
Tel.: +33 4 76 61 53 61             Montbonnot
Fax:  +33 4 76 61 52 07             38334 Saint Ismier Cedex - France

Received on Friday, 1 September 2006 07:48:56 UTC