- 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