In the past few years, the ebook market has been exploding. The convergence towards the EPUB standard and the proliferation of mobile devices has enabled ebooks to benefit from progress on reflowable, stylable, scriptable, animatable, hackable and accessible content that people are used to see on the Web. For educational or scientific materials, one of the fundamental feature is the ability to write equations ; from basic math taught in school to more sophisticated notations of academia. Electronic textbooks have many advantages: they are cheaper than their paper counterpart, take up less room & weight and can be made more interactive or accessible tovisually impaired.
While the MathML language is available for math layouton the Web, the implementation in WebKit and Gecko has mainly be driven by volunteers and does not always reach professional quality. This means that even when publishers use MathML in their internal XML workflow, they must distribute their math books in several versions to work around the limitations of ebook readers. This includes relying on images of formulas or on MathML polyfills and thus losing many benefits of native Web formats.
Presentation of MathML (Mozilla Summit 2013)
This "Mathematics in ebooks" project aims at creating synergy between authors of MathML authoring tools, EPUB and accessibility actors as well as developers of layout engines in order to improve the current situation. In addition, the MathML improvements to browser layout engines will benefit to the Web community. For example Wikipedia is likely to switch to native MathML for Gecko soon and hopefully this project will allow the same for WebKit.
Arabic Mathematics in MathML displayed in Firefox
Obtaining perfect MathML support in layout engines and ensuring its integration in EPUB readers & ebooks is a very big project. In order to have something achievable in a reasonable time frame, I have selected two main goals:
Create a collection of educational & scientific documents that will serve as examples & test cases for publishers and implementers.
Improve rendering quality in WebKit and Gecko so that EPUB publishers can rely on it.
The first goal is to get something similar to the EPUB 3 Sample Documents for scientific documents. The complete collection of documents, source and scripts will be released in an open format at the end of the project. Most pledgers will have access to the documents during the project development, so that they can test them with their own environments and provide feedback.
Interactive ebook on Matrices (AZARDI EPUB reader)
Regarding the second goal, the objectives are different for the two rendering engines but in both cases there are MathML developers who are willing to help. WebKit has serious rendering bugs and very limited support for spacing and stretchy operators and the purpose will be to improve its MathML implementation with focus on addressing these issues. Gecko has much better MathML support and the main objective will instead be to rely on the Open Type MATH table to get high rendering quality with modern math fonts. This table is used in Microsoft Word and modern LaTeX engines ; and has been submitted to the MPEG group for standardization.
Comparison of the rendering of a mathematical formula (TeXbook, 18.40)
What are the funds for?
The intended schedule is a 2-month-long preliminary work funded with my savings. If the fundraising campaign is successful, it will be followed by a 3-month-long development period during which I will use the funds to make a living. Based on the legal wage in France, I'm setting the minimal goal to 3960€.
This is of course a very small wage for a Computer Engineer in Paris but I believe it is important that someone dedicates some time and money to boost MathML developments. If necessary, I will use my savings and other part-time missions during the project development. However, If the funds obtained significantly exceeds the targeted amount then I will be able to work full-time on the project and may even extend the development period. This would allow to bring even more improvements to MathML support in Gecko/WebKit :-)
About the project owner
Since he was 11, Frédéric Wang has had strong interest in sciences. This was also the period where the Web started to grow up. Frédéric learned a lot thanks to the scientific content that was available for free and was happy to share his own knowledge on his Web site. Tired of the bad math rendering quality he soon focused on the MathML language. In 2007, he joined the Mozilla MathML project and has been one of the main leader for the project since then.
After Classes Préparatoires in Rennes where he studied mainly mathematics, physics and chemistry, he was admitted to an engineering school and finally obtained his M.S. in Computer Science in 2010. He then moved to Paris to study mathematics at Pierre and Marie Curie University. At the same time, he created his own business and started to do some part-time job for the MathJax Project.
In 2012, he obtained his M.S. in Mathematics and started to work full-time for the MathJax Project. During that year, he got the opportunity to participate in many other open source projects including the WebKit MathML project or MediaWiki Math. He now wants to use his expertise to spend more time on browser MathML developments...
Here is a list. Note however that there is no guarantee that all these bugs will be fixed. Also, some bugs that are outside this list could be fixed too. In general, the focus is on operators and spacing.
Here is the list. More choices could be added later when I have a better idea on how to fix some bugs and how much effort it would take. Note that these bugs are outside the main development and thus will be done during my free time. I can not guarantee how long it will take to fix them.
If the feature has already been chosen/fixed or if it is the one which received the most votes for the 149€ reward level, you may either change your choice (if it remains other choices from the predefined list) or keep it (to speed up the fix/implementation).
No, only on WebKit and Gecko where the MathML situation is best: open source code with developers & volunteers willing to help developments. However, the work on WebKit could be exported to Blink later, so if you are interested in MathML support in Chrome you might consider helping WebKit developments first.
Passing the MathML Acid tests is not part of the objectives. However, improvements will certainly make WebKit pass the Acid 1 test and increase Gecko & WebKit's scores in general. Passing the MathML Acid 2 in WebKit is part of the "bonus" feature for the rewards at level 149€ and 4999€.
Well, first WebKit monoculture is bad and I expect to see more FirefoxOS devices that can rely on Gecko's native MathML support :-) More relevant here, one of the goal is to reach high rendering quality in a short time frame so relying on the work of Gecko MathML is appropriate whereas WebKit's goal is more modest (only fix serious rendering bugs with operators and spacing). Finally, WebKit's MathML implementation will benefit from the experience of Gecko and take inspiration from Gecko's design.
I will post regular news on Ulule for pledgers with summary and screenshots. The development is entirely public so you can check it on Bugzilla WebKit and Mozilla. If you are not afraid of bugspams, create an account and enter my email address in Preferences → Email preferences → User Watching (you can uncheck some boxes on this page to reduce bug spams).
By default, I will use GNU GPL 3 or higher for the programs and GNU FDL 3 or higher for the documents. I can do some exceptions for documents contributed by pledgers or content taken from other sources (e.g. Wikipedia). But in general these must be open license.
The choice of XHTML rather than HTML is for convenient validation and EPUB3-to-XHTML conversion. The encoding must be UTF-8 and no HTML5 entity names should be used.
LaTeX files or EPUB sources. The XHTML files in the EPUB may obviously contain MathML but I also accept LaTeX fragments that can be converted using itex2MML. The LaTeX files will be converted using tools like LaTeXML or tex4ht. I may accept other formats, as long as they can be converted in EPUB using open source tools that could easily be integrated in the workflow.
Standard Unix tools and open source programs: make, find, java, sed, unzip/zip, wget, xsltproc, perl to mention a few of them. The LaTeX fragments in the EPUB sources will be processed by itex2MML while LaTeX documents will be converted using LaTeXML or tex4ht. The process will be entirely automated so that people could generate the documents by themselves and create their own additional documents. I might consider supporting other tools like as long as they are open source tools that could easily be integrated in the workflow.
The documents will be in Web formats, so in theory yes. However, we will certainly find issues in the accessibility / authoring tools or in the document design, so we will have to work together to address them.
I'll get in touch with you by email, but feel free to contact me. Most rewards can be claimed during the whole development period (February 1 to April 31). The exact time for the 149€ and 4999€ rewards is not guaranteed but it will probably be after the end of the project development. If the project reaches its funding goal before February 1 then perhaps the rewards related to the collection of documents can happen sooner. I might also offer some "bonus" rewards at any time by making a few XHTML/EPUB documents accessible to all the pledgers.
At the moment, I plan to publish them on my Web site with access restricted to some pledgers during the development period (February 1 to April 31). I might consider publishing them earlier if project reaches its funding goal before February 1. In any cases, everything will be released on June 1 and published on my GitHub account.
I will just protect directories using Apache directives and basic access authentication (username and password). Remember that I plan to publish the documents at the end, so I don't want to worry too much about the protection. The idea is just to offer privileged access to pledgers so that they can take part of the development, test the documents before other people and provide feedback. I'm fine if you share the authentication information with your team but in general please try to keep it confidential until the end of the development... after all you paid to get that privilege!