Skip to content

WMF project grants

Peter Krautzberger edited this page Mar 14, 2017 · 6 revisions

WMF project grants

Draft on wikimedia

backup application

Step 1

proposal title

Improve internationalization of math support

Summary

We propose work on MathJax, the basis for mathoid and thus the MediaWiki Math extension, that will greatly improve their internationalization.

Type of project

tools and software

project idea

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.

Step 2

Applicant type

Org

Affiliate code

none

Target project

Wikipedia (all languages), Wikibooks (all languages), Wikidata

project goals

Better math support for non-Latin languages across Wikimedia communities.

Step 3

How will you know if you have met your goals?

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?

Doe not apply.

Activities

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

  • senior developer: xx hours @USD yy
  • junior developer: xx hours @USD yy
  • project manager: xx hours @USD yy

Total: XXX USD

Community engagement plans

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.

Step 4

Participants

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.

rough list

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

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)
Clone this wiki locally