![Page 1: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/1.jpg)
Mathematical Content Conversions
David McKain9th September 2009
![Page 2: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/2.jpg)
Outline
• Motivation• Quick summary of mathematical formats• LaTeX -> MathML conversion example• Reality check• Tools for LaTeX -> MathML• Conversion techniques
![Page 3: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/3.jpg)
Motivation: Philosophy
• Lots of content already out there– in lots of different formats!
• One size never fits all– TeX/LaTeX: concise, easy to author, hard to
manipulate– XML: verbose, hard(er) to author, easy to
manipulate• MathML is more complex than you think…
– So needs converted between itself• Prevent bit rot
![Page 4: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/4.jpg)
Motivation: Practical examples
Bog standard LaTeX to PS/DVI/PDF
– This is really a conversion!– LaTeX is both a format and a process– Whole document conversion– Easy turn-key solution
LaTeXLaTeX PDFPDF
![Page 5: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/5.jpg)
Example: “Single Source, Multiple Output”
• More complex!• Building block approach = useful• Another “whole document” conversion• Probably needs development effort
PDFPDF
SlidesSlides
LaTeXLaTeXWeb PagesWeb PagesXMLXML
![Page 6: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/6.jpg)
Example: Dynamic maths in a browser
Server-side
Converter
Server-side
Converter
Web Page
with embedded LaTeX fragments
$\frac{1}{2}$
Web Page
with embedded LaTeX fragments
$\frac{1}{2}$
EmbeddedJavaScriptEmbeddedJavaScript
Rendered Web Page
LaTeX replaced by MathML, image or
other trickery
Rendered Web Page
LaTeX replaced by MathML, image or
other trickery
read LaTeX to MathML
LaTeX to images
Good for: diverse browser mix, constrained delivery conditionsGood for: diverse browser mix, constrained delivery conditions
![Page 7: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/7.jpg)
Example: CAA question
Student’s BrowserStudent’s Browser MiddlewareMiddlewareComputer
Algebra SystemComputer
Algebra System
ParseResponse
ProcessResponse
ShowFeedback
GetOutcome
RenderQuestion
Randomise
Start
![Page 8: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/8.jpg)
Typical formats
• TeX/LaTeX• MathML (Presentation & Content)• OpenMath• HTML/XHTML• Docbook• Typesetting/display (PDF, PS, DVI)• Other proprietary formats (e.g. Word)• Computer Algebra System syntaxes
Will focus on this nowWill focus on this now
![Page 9: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/9.jpg)
Example: Conversion challenges
• We’ll look at how this could be input using LaTeX and MathML
• This will demonstrate some of the challenges and limitations of any TeX <-> MathML conversion processes.
Consider the following function application:
f(x+2α)
Consider the following function application:
f(x+2α)
![Page 10: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/10.jpg)
LaTeX markup version
• This can be input in LaTeX (math mode) as:f(x+2\alpha)
• LaTeX is most concerned about “display”– Its main function is to lay out each symbol in a
rather beautiful way– It doesn’t care or know about “semantics”, e.g.
whether brackets match or not– “Semantic” information can be specified though
most people don’t bother
![Page 11: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/11.jpg)
Presentation MathML spectrum<math>
<mi>f</mi><mo>(<mo><mi>x</mi><mo>+</mo><mn>2</mn><mi>α</mi><mo>)</mo>
</math>
<math><mi>f</mi><mo>(<mo><mi>x</mi><mo>+</mo><mn>2</mn><mi>α</mi><mo>)</mo>
</math>
<math><mi>f</mi><mo>⁡</mo><mfenced open=“(“ close=“)”>
<mi>x</mi><mo>+</mo><mrow>
<mn>2</mn><mo>⁢</mo><mi>α</mi>
</mrow></mfenced>
</math>
<math><mi>f</mi><mo>⁡</mo><mfenced open=“(“ close=“)”>
<mi>x</mi><mo>+</mo><mrow>
<mn>2</mn><mo>⁢</mo><mi>α</mi>
</mrow></mfenced>
</math>
Similar to LaTeX! Similar to LaTeX! Encapsulates lots
more meaningEncapsulates lots
more meaning
![Page 12: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/12.jpg)
Content MathML version<math>
<apply><ci type=“function”>f</ci><apply>
<plus/><ci>x</ci><apply>
<times/><cn>2</cn><ci>α</ci>
</apply></apply>
</apply></math>
<math><apply>
<ci type=“function”>f</ci><apply>
<plus/><ci>x</ci><apply>
<times/><cn>2</cn><ci>α</ci>
</apply></apply>
</apply></math>
This is not too far from the “semantic”PMathML
version
This is not too far from the “semantic”PMathML
version
![Page 13: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/13.jpg)
LaTeX <-> MathML possibilities
LaTeXLaTeX
(Low Semantic) Presentation MathML
(Low Semantic) Presentation MathML
(High Semantic) Presentation MathML OR Content MathML
(High Semantic) Presentation MathML OR Content MathML
Routine,moduloequivalents
Harder, requirescontextknowledge
OK, but needs knowledgeabout preferred notation
Most converters focus on this
![Page 14: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/14.jpg)
Conversion challenges
• Contextualisation: f(x+2α) was a function earlier. What about a(x+2α)? e?
• Internationalisation: f’(x) vs df/dx, gcd vsggT
• Style: “s.t.” vs “:” vs “|” vs bracketing• Notation Reuse: 2|6 vs {n | n is prime} • Wiggle Room: Presentation MathML
representations are non-unique
![Page 15: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/15.jpg)
Conversion guidelines• Easiest to convert to a format with roughly same or
lower semantic level– LaTeX <-> simple Presentation MathML– Semantic Presentation MathML <-> Content
MathML– Content MathML -> OpenMath
• Conversion to higher semantic level possible if some of the “challenges” can be controlled:– Restrict to “UK school level algebra” and LaTeX
to Content MathML is possible... kind of…– Has applications to e-Learning.
![Page 16: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/16.jpg)
Conversion tools• There are lots of good tools out there,
especially in the LaTeX -> simple PMathMLdirection.
• I’m not going to try to list them all. (Phew!)• Some lists can be found at:
– http://www.w3.org/Math/Software/mathml_software_cat_converters.html
– http://www.cse.ohio-state.edu/~gurari/TeX4ht/• Useful to consider some “discriminating
factors” to help make an appropriate decision
![Page 17: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/17.jpg)
Discriminating factors
• Whole document vs. math fragments• Level of TeX/LaTeX completeness• Configurability/extensibility of outputs• Software library vs. service• Client (e.g. browser) vs. server• Choice of programming language• License/terms of use• …
Thinking about these factors can help make the most appropriate decision
for a given scenario
Thinking about these factors can help make the most appropriate decision
for a given scenario
![Page 18: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/18.jpg)
Some (La)TeX-y to XML Converters (1)
Name Converts MathsOutput
Platform Config? License Notes
TeX4ht Whole doc MathML, Images
TeX Very LPPL
TtM Doc MathML, Images
C “Free”
PlasTeX Doc Images Python “Renderers” Good for Python
LaTeXML Doc MathML, Images
Perl Post-processor Public Domain
SnuggleTeX Doc or Fragments
MathML, Images, XHTML+CSS
Java Extensible, XSLT, DOM hooks
BSD
GELLMU Doc with special LaTeX markup
MathML, LaTeX
ELISP Generates intermediate XML
GPL Interesting approach
Tralics Doc MathML C++ Custom
![Page 19: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/19.jpg)
Some (La)TeX-y to XML Converters (2)
Name Converts Maths Platform Config? License Notes
MathTran Fragments Images Web Service Not sure Useful SOA idea
ORCCA Fragments XML Java Via Mapping file
???
LaTeXMathML Fragments MathML Browser JavaScript
As above LGPL Based on ASCIIMath
ASCIIMathML Fragments MathML Browser JavaScript
Not really LGPL
![Page 20: Hot-Gas Ignition of Non-Premixed Methane Flames in the Presence of](https://reader031.vdocument.in/reader031/viewer/2022020704/61fb66fe2e268c58cd5dbf0a/html5/thumbnails/20.jpg)
Conversion techniques (geeky)
• Pipelining & reuse of components• Build on what’s already there… where
possible• Use XML early and often… if possible
– Saves having to write custom parsers– Lots of XML tools already out there– XSLT & XPath are great. (Version 2.0 even
better!)