Grants:Project/Improve internationalization of math support
Project idea
editWhat is the problem you're trying to solve?
editWhat problem are you trying to solve by doing this project? This problem should be small enough that you expect it to be completely or mostly resolved by the end of this project. Remember to review the tutorial for tips on how to answer this question.
Since v2.0, the MediaWiki Math extension uses MathJax for rendering (instead of a full texlive installation). While MathJax provides better internationalization out of the box (e.g., Unicode support), MathJax currently lacks more advanced internationalization features such as bi-directional layout and support for so-called "elementary math" layout. This limits how how mathematics can be authored and rendered on MediaWiki installations and Wikipedia in particular.
What is your solution?
editFor the problem you identified in the previous section, briefly describe your how you would like to address this problem. We recognize that there are many ways to solve a problem. We’d like to understand why you chose this particular solution, and why you think it is worth pursuing. Remember to review the tutorial for tips on how to answer this question.
We propose to implement two features in MathJax and its tool chain to enable better internationalization: support for bi-directional content and support for "elementary math". For bi-directional support, we plan to implement full support for RTL direction in MathML (MathJax's internal format). In addition, we will develop a suitable set of TeX macros for authoring bi-di content. As part of this, we will add support for complex Unicode graphemes in the TeX input as well as improved font support for non-western Unicode codepoints.
For "elementary math" support, we similarly plan to implement a pre-processor for the relevant parts of the MathML specification as well as a set of TeX macros for authoring.
Project goals
editWhat are your goals for this project? Your goals should describe the top two or three benefits that will come out of your project. These should be benefits to the Wikimedia projects or Wikimedia communities. They should not be benefits to you individually. Remember to review the tutorial for tips on how to answer this question.
- Better math support for non-Latin languages across Wikimedia communities.
Project impact
editHow will you know if you have met your goals?
editFor each of your goals, we’d like you to answer the following questions:
- During your project, what will you do to achieve this goal? (These are your outputs.)
- Once your project is over, how will it continue to positively impact the Wikimedia community or projects? (These are your outcomes.)
For each of your answers, think about how you will capture this information. Will you capture it with a survey? With a story? Will you measure it with a number? Remember, if you plan to measure a number, you will need to set a numeric target in your proposal (e.g. 45 people, 10 articles, 100 scanned documents). Remember to review the tutorial for tips on how to answer this question.
We will follow MathJax's established development processes to implement the new features, in particular code review and automated testing. We will build on our existing contacts with WMF developers and the volunteers developing the MediaWiki Math Extension to ensure that the new features can be integrated into mathoid and the Math Extension. Finally, we will work with the Wikipedia community at large to ensure that our implementation helps solve the problems faced by the community in real life.
Do you have any goals around participation or content?
editAre any of your goals related to increasing participation within the Wikimedia movement, or increasing/improving the content on Wikimedia projects? If so, we ask that you look through these three metrics, and include any that are relevant to your project. Please set a numeric target against the metrics, if applicable. Remember to review the tutorial for tips on how to answer this question.
N/A
Project plan
editActivities
editTell us how you'll carry out your project. What will you and other organizers spend your time doing? What will you have done at the end of your project? How will you follow-up with people that are involved with your project?
The resources will provide developer time for the MathJax project, a joint venture of the American Mathematical Society and the Society for Industrial and Applied Mathematics to provide open-source technology for mathematics on the web.
Budget
editHow you will use the funds you are requesting? List bullet points for each expense. (You can create a table later if needed.) Don’t forget to include a total amount, and update this amount in the Probox at the top of your page too!
- senior developer: xx hours @USD yy
- junior developer: xx hours @USD yy
- project manager: xx hours @USD yy
Total: XXX USD
Community engagement
editCommunity input and participation helps make projects successful. How will you let others in your community know about your project? Why are you targeting a specific audience? How will you engage the community you’re aiming to serve during your project?
We have been in close contact with WMF developers and the volunteer developers of the MediaWiki Math Extension for several years. Both of these groups have offered to help with the interaction with the wider community.
Get involved
editParticipants
editPlease use this section to tell us more about who is working on this project. For each member of the team, please describe any project-related skills, experience, or other background you have that might help contribute to making this idea a success.
The main grantee should be the American Mathematical Society as managing partner of the MathJax Consortium.
Its team consists of:
- Davide Cervone is the creator and lead developer of MathJax. Davide has enabled math on the web since creating jsmath in 2004 and also works on WeBWorK.
- Volker Sorge is a core developer for MathJax. He is also the creator and lead developer of the speech-rule-engine, a JavaScript-based accessibility solution for STEM content that began as (and still is) a component in Google ChromeVox.
- Peter Krautzberger manages the MathJax project for AMS and SIAM. He also works as a developer on STEM publishing workflows to the web.
Community notification
editPlease paste links below to where relevant communities have been notified of your proposal, and to any other relevant community discussions. You are responsible for notifying relevant communities of your proposal, so that they can help you! Depending on your project, notification may be most appropriate on a Village Pump, talk page, mailing list, etc. Need notification tips?
Endorsements
editDo you think this project should be selected for a Project Grant? Please add your name and rationale for endorsing this project below! (Other constructive feedback is welcome on the discussion page).