- From: Irene Vatton <Irene.Vatton@inrialpes.fr>
- Date: Fri, 1 Sep 2006 09:47:39 +0200
- To: frederic07wang <frederic07wang@aol.com>
- Cc: www-amaya-dev@w3.org
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