Re: Project « MathML palette/macros »

Irene Vatton <[email protected]>
Newsgroups gmane.comp.web.amaya.devel
Organization INRIA
Message-ID <[email protected]>
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: [email protected]       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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.