-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
WMF project grants
Improve internationalization of math support
We propose work on MathJax, the basis for mathoid and thus the MediaWiki Math extension, that will greatly improve their internationalization.
tools and software
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.
For the problem you identified in the previous section, briefly describe your how you would like to address this problem.
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.
Org
none
Wikipedia (all languages), Wikibooks (all languages), Wikidata
Better math support for non-Latin languages across Wikimedia communities.
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.
Doe not apply.
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.
- senior developer: xx hours @USD yy
- junior developer: xx hours @USD yy
- project manager: xx hours @USD yy
Total: XXX USD
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.
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.
For MathJax:
- improved i18n
- RTL/bi-di support
- support for complex text layout in TeX input (https://github.com/mathjax/MathJax/issues/474)
- improved font support
- improve dev tools for adding new fonts
- add fonts for better Unicode coverage (in particular for the above)
- better font-mixing / fallback behavior so that "non-math" fonts (e.g., the surrounding text font) can be used without losing functionality
- elementary MathML support?
- rendering support
- TeX macro support
- compatibility between mathoid and MathJax v3
- new features (like the above) will very likely be v3-only
- => ensure that the v3 design aligns with mathoid's requirements
- in particular, ensure performance improvements are not lost
- in particular, better compatibility with texvc to enable more MathJax features in mathoid
- new features (like the above) will very likely be v3-only
For SRE
- localization
- develop speech rules for various languages
- requires collaboration with country-specific specialists (we have some contacts but not for all languages)
- integrate semantic analysis (e.g., wikidata)
- develop heuristics specialized for Wikipedia's content (i.e., leverage information from custom macros)
- extend MathJax's a11y extension (which integrate SRE in the client) to handle mathjax-node output and thus provide an opt-in on the client-side.
- "deep aria label" output to make MathJax's output aurally explorable (not just a speech string but DOM exploration to navigate subexpression)