Introduction to Using MathML Presented by:Robert Miner Director of New Product Development Bob Mathews Director of Training.

Slides:



Advertisements
Similar presentations
1 A B C
Advertisements

Simplifications of Context-Free Grammars
Variations of the Turing Machine
AP STUDY SESSION 2.
1 Introduction to Web Application Implement JavaScript in HTML.
1
Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
Copyright © 2003 Pearson Education, Inc. Slide 7-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
David Burdett May 11, 2004 Package Binding for WS CDL.
Create an Application Title 1Y - Youth Chapter 5.
CALENDAR.
CHAPTER 18 The Ankle and Lower Leg
Programming Language Concepts
The 5S numbers game..
1.
Media-Monitoring Final Report April - May 2010 News.
Using MathType and WebEQ to Author for MathPlayer Making sense of all the mumbo-jumbo presented by: Bob Mathews Director of Training Design Science, Inc.
Welcome. © 2008 ADP, Inc. 2 Overview A Look at the Web Site Question and Answer Session Agenda.
Break Time Remaining 10:00.
Factoring Quadratics — ax² + bx + c Topic
Turing Machines.
PP Test Review Sections 6-1 to 6-6
1 IMDS Tutorial Integrated Microarray Database System.
Briana B. Morrison Adapted from William Collins
XP Tutorial 4New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Designing a Web Page with Tables Tutorial 4 Creating a News Page.
LIAL HORNSBY SCHNEIDER
Regression with Panel Data
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Office 2003 Integration Integrating Office 2003 Applications and the World Wide Web.
Lexical Analysis Arial Font Family.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
Copyright © [2002]. Roger L. Costello. All Rights Reserved. 1 XML Schemas Reference Manual Roger L. Costello XML Technologies Course.
Biology 2 Plant Kingdom Identification Test Review.
Chapter 1: Expressions, Equations, & Inequalities
Adding Up In Chunks.
FAFSA on the Web Preview Presentation December 2013.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
Artificial Intelligence
Slide R - 1 Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Prentice Hall Active Learning Lecture Slides For use with Classroom Response.
Dr. Alexandra I. Cristea XHTML.
12 October, 2014 St Joseph's College ADVANCED HIGHER REVISION 1 ADVANCED HIGHER MATHS REVISION AND FORMULAE UNIT 2.
: 3 00.
5 minutes.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
Types of selection structures
WorkKeys Internet Version Training
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
12 System of Linear Equations Case Study
Converting a Fraction to %
Numerical Analysis 1 EE, NCKU Tien-Hao Chang (Darby Chang)
Exponents and Radicals
CSE20 Lecture 15 Karnaugh Maps Professor CK Cheng CSE Dept. UC San Diego 1.
Clock will move after 1 minute
famous photographer Ara Guler famous photographer ARA GULER.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 9 TCP/IP Protocol Suite and IP Addressing.
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Lial/Hungerford/Holcomb/Mullins: Mathematics with Applications 11e Finite Mathematics with Applications 11e Copyright ©2015 Pearson Education, Inc. All.
Chapter 13 Web Page Design Studio
Physics for Scientists & Engineers, 3rd Edition
Select a time to count down from the clock above
Copyright Tim Morris/St Stephen's School
1.step PMIT start + initial project data input Concept Concept.
9. Two Functions of Two Random Variables
Introduction Peter Dolog dolog [at] cs [dot] aau [dot] dk Intelligent Web and Information Systems September 9, 2010.
1 Dr. Scott Schaefer Least Squares Curves, Rational Representations, Splines and Continuity.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
Chapter 4 FUGACITY.
Presentation transcript:

Introduction to Using MathML Presented by:Robert Miner Director of New Product Development Bob Mathews Director of Training

2 What well cover Part I – Understanding MathML Overview of MathML Presentation and content markup MathML elements Building a MathML expression and inserting into HTML and XML pages.

3 What well cover Part I – Understanding MathML Part II – Magic Incantations DOCTYPEs & MIME types Namespaces Object Tags and Processing Instructions Universal MathML Stylesheet

4 What well cover Part I – Understanding MathML Part II – Magic Incantations Part III – Tools Design Science WebEQ Design Science MathType with MathPage technology TeX4ht Amaya Now on to Part I – Understanding MathML

5 Overview of MathML The Mathematical Markup Language (MathML) was first published as a recommendation in April From the Math Activity Statement of the W3C Math Working Group: Designed as an XML application, MathML provides two sets of tags, one for the visual presentation of mathematics and the other associated with the meaning behind equations.

6 The Mathematical Markup Language (MathML) was first published as a recommendation in April From the Math Activity Statement of the W3C Math Working Group: Designed as an XML application, MathML provides two sets of tags, one for the visual presentation of mathematics and the other associated with the meaning behind equations. Overview of MathML

7 The Mathematical Markup Language (MathML) was first published as a recommendation in April From the Math Activity Statement of the W3C Math Working Group: …two sets of tags… MathML is not designed for people to enter by hand but specialized tools provide the means for typing in and editing mathematical expressions.

8 The Mathematical Markup Language (MathML) was first published as a recommendation in April From the Math Activity Statement of the W3C Math Working Group: …two sets of tags… MathML is not designed for people to enter by hand but specialized tools provide the means for typing in and editing mathematical expressions. Overview of MathML

9 Attributes generally specify additional optional information about the element. Each attribute has a name and a value. For example, the mfrac element has an attribute called linethickness. Most elements represent templates or patterns for laying out subexpressions. For example, there is an mfrac element for fractions, and an msqrt element for square roots. Anatomy of a MathML expression elements attributes About 30 MathML presentation elements which accept about 50 attributes Using presentation markup, its possible to precisely control how an expression will look when displayed. About 120 content elements, accepting about a dozen attributes. Content markup facilitates applications other than display, like computer algebra and speech synthesis. Most content elements represent either operators or mathematical data types. For example, there is a divide/ element for division, and an emptyset element to denote the empty set.

10 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … These elements can have other data in-between the start and end tags, such as text, extended characters, or other elements.

11 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form These elements have just one tag. There are only 4 empty presentation elements, but over 100 empty content elements, used in prefix notation.

12 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form Elements can also accept attributes. If an element has both start & end tags, the attribute immediately precedes the > in the start tag.

13 Two types of elements Most presentation elements have start and end tags, similar to the way some HTML has start and end tags. … The other type of MathML element is an empty element of the form Elements can also accept attributes. In empty elements, attributes immediately precede the />.

14 Examples of attributes … … Inserts a 12-pt space. For 12 pixels, use 12px.

15 Basic presentation elements – identifier, such as a variable, function name, constant, etc. example: x rendering: x example: sin rendering: sin

16 Basic presentation elements – identifier, such as a variable, function name, constant, etc. – operator, such as a summation, fence (parentheses, brace, etc.), accent, etc. example: ( rendering: ( example: ∑ rendering: This is an example of an entity reference. Entity references are just keywords in a special format, which represent extended characters. Other examples are α (lower- case Greek alpha), and ∞ (infinity).

17 Basic presentation elements – identifier, such as a variable, function name, constant, etc. – operator, such as a summation, fence (parentheses, brace, etc.), accent, etc. – number Can you identify this expression? x – ( 3 + y ) x – (3 + y)

18 Token elements Most MathML elements, like the mfrac element mentioned earlier, expect to only find other MathML elements in their content… …but some presentation elements –,, and, for example – are different. They are examples of token elements. Token elements are the only elements which directly contain character data.

19 Scripts Superscripts and subscripts are ubiquitous in mathematical notation, and although you wont be doing much MathML writing manually, it helps to familiarize yourself with the schemata. MathML contains seven presentation elements for different kinds of scripts, but well take a look at the most common.

20 Scripts – sub & super These are the first elements weve seen in detail that normally have more than one argument. basescript Subscript: base script basescript Superscript: base script x 1 Usage: x 1 x 1 x 2 x 2 x 2 x 1 2 x 1 x Why cant we code it this way: x 1 ?

21 Including MathML in your page We need some way to identify the math markup to our browser, plug-in, or applet. MathML markup is inserted between and tags to distinguish MathML from other markup. Although most tags will differ from presentation markup to content markup, the tag is common to both.

22 Coding simple expressions As we stated at the beginning, it is not our goal in this tutorial to make you proficient at writing MathML. Youll likely use a software product to produce the MathML markup rather than write it yourself. Our goal is to familiarize you enough with the MathML syntax and construction that you can read and understand a block of code, and can perhaps make changes to it by hand.

23 Coding simple expressions As we stated at the beginning, it is not our goal in this tutorial to make you proficient at writing MathML. That being the case, you know enough MathML now to try your hand at coding a couple of simple expressions…

24 Example 1 – try coding this… Dont forget to begin with the start tag and end with the end tag

25 Example 1 – try coding this… b 2 – 4

26 b 2 – 4 ⁢ a ⁢ c Example 1a b 2 – 4 a c or… b 2 – 4 ⁢ a ⁢ c This entity doesnt appear in print, but here we have added it to facilitate voice synthesis and heuristic evaluation by computer algebra systems. Horizontal row of expressions aligned on the baseline. Wrapping an mrow around an element or elements is always permissible, and often necessary in order to group terms together, for example, for use in a script, etc.

27 Example 2 – one more… x 2 + y 2 = r 2

28 Other presentation elements Presentation elements are grouped: Token Elements identifier number operator, fence, or separator text

29 Other presentation elements Presentation elements are grouped: Token Elements General Layout to group subexpressions form fraction from 2 subexpressions radical with a specified index surround content with a pair of fences

30 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits,, attach a script under a base attach a script over a base attach a script both under and over a base

31 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits Tables table or matrix row in a table or matrix one entry in a table or matrix

32 Other presentation elements Presentation elements are grouped: Token Elements General Layout Scripts and Limits Tables Actions binds actions to a subexpression

33 Content elements Most fundamental to content markup is the element, which enables the explicit application of a function to its argument.

34 Content elements application of a function to argument. Token Elements content number content identifier

35 Content elements application of a function to argument. Token Elements Basic Content Elements generic inverse compose 2 or more functions piecewise defined function

36 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic division to the power of nth root complex conjugate

37 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations equal greater than or equal the divides operator

38 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations Calculus and Set Theory partial derivative lower limit (of integral, etc.) union or meet

39 Content elements application of a function to argument. Token Elements Basic Content Elements Arithmetic, Algebra, and Logic Relations Calculus and Set Theory Further element groups include sequences & series, elementary classical functions, statistics, linear algebra, semantic mapping elements, and constants.

40 Example 3 – content markup We want to code this expression in content markup: We know we need to surround the code with the … element… …but we havent seen yet how to combine content elements to create an entire expression, so here goes…

41 Example 3 – content markup π 1

42 Example 3 – content markup π 1

43 Example 3 – content markup π 1

44 Example 3 – content markup π π 1 to the left of the to the left of the to the right of the

45 Example 3 – content markup π 1

46 Example 3 – compare π 1 cos π = – 1

47 Summary Presentation markup is for describing math notation, and content markup is for describing mathematical objects and functions. In presentation markup, expressions are built-up using layout schemata, which tell how to arrange their subexpressions (i.e., mfrac or msup).

48 Summary Presentation markup…& content markup MathML elements either have start and end tags to enclose their content, or use a single empty tag.

49 Summary Presentation markup…& content markup MathML elements… Attributes may be specified in a start or empty tag. Attribute values must be enclosed in quotes.

50 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data must be enclosed in token elements.

51 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data … token elements. Extended characters are encoded as entity references.

52 Summary Presentation markup…& content markup MathML elements… Attributes … in a start or empty tag. All character data … token elements. Extended characters as…entity references. We discussed other layout schemata – math, mfrac, mrow, etc. The next session of the tutorial will deal with displaying MathML in browsers.

53 Part II – Magic Incantations DOCTYPEs & MIME types Namespaces Object Tags and Processing Instructions Universal MathML Stylesheet Triggering MathML rendering in browsers requires special declarations in the page.

54 Which Browsers? Internet Explorer (requires add-on software) The main choices are: MathPlayer (IE5.5 or higher under Windows) Techexplorer (IE5 or higher, many platforms) JavaScript/CSS (IE6 Windows, others soon?) Netscape (add-ons required before NS7 PR1) Some things to note: MathML doesnt yet work on the Mac The decision to include MathML isnt final

55 DOCTYPEs and MIME types There are two ways browsers determine what kind of data needs to be displayed. Local files indicate their type with a filename extension (Windows, Unix) or extra data included in the file (Mac). Data coming over an http connection doesnt have a filename. Thus, web servers include extra data about what kind of file is being sent. This extra data is called a MIME type.

56 DOCTYPEs and MIME types Web servers generally use file extensions to pick the MIME type. This doesnt always work… Netscape 7 is fanatical about using only the MIME type to determine how to display a document. Internet Explorer is extremely cavalier in using the MIME type, preferring to sniff inside the document to guess its type.

57 MIME types We are concerned with three kinds of files: XML files. This includes XHTML files. Netscape 7 will only render MathML in this kind of file. HTML files. Internet Explorer will only render MathML in HTML files. XSL files. These are also XML files, but they usually end.xsl instead of.xml, which screws up many/most web servers.

58 XHTML vs HTML Start and end tags must always match. Things such as must be empty tags. All attributes must have quotes around them Your code actually has to be correct! XHTML and HTML are nearly the same. The main difference is that XHTML is picky while HTML is lax. The most important things are:

59 MIME types The upshot is: To work in Netscape, you need an XML document. To work in Internet Explorer you need an HTML document. So, in practice you create an XHTML document, and fiddle with the MIME type On the server using scripts, etc. On the client using XSL stylesheets.

60 DOCTYPEs A DOCTYPE is a special declaration at the beginning of an HTML or XML document that defines what kind of markup is in the document. DOCTYPEs are really for validation, not identification. DOCTYPEs point to a DTD, which defines the syntax of the markup in the document.

61 DOCTYPEs ]> Typical DOCTYPE declarations look like this:

62 DOCTYPEs Netscape 7 requires a DOCTYPE, but doesnt actually look at the DTD to which it points. Instead the DTD must match one of a few predefined values. Internet Explorer doesnt require a DOCTYPE, but it does download the DTD and use it if there is one.

63 DOCTYPEs The upshot is: In your XHTML document, you put a DOCTYPE, and The W3C Math WG pulls its hair out trying to make a DTD available that is both correct and works around the bugs in the IE parser.

64 Namespaces XML languages are identified by a URI. MathML is XHTML is They can be indicated in two ways. By using an xmlns attribute on an element By adding a prefix to element names Complexities arise when two XML dialects must mix. The case of interest is XHTML + MathML. The solution is to use namepaces.

65 Namespaces … x + 2 … Use the xmlns attribute on the outermost element of the embedded markup. This places the element on which the attribute is set, and its children in the indicated namespace.

66 Namespaces <html xmlns=" xmlns:m=" … x + 2 … To use prefixes, you must Associate a prefix and a namespace using an xmlns:prefix attribute on a containing element. Use the prefix to identify elements that should be in the namespace.

67 Namespaces & DOCTYPEs <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "xhtml-math11-f.dtd" [ ]> <html xmlns=" … x + 2 … Since the URIs for namespaces are long, one trick some people like is to declare an entity reference for it in the DOCTYPE:

68 Objects and PIs The element instructs IE what piece of software to load. A processing instruction (or PI) is used to assign the add-on software to render markup from a particular namespace. Two additional declarations are required to trigger add-on software for math rendering in Internet Explorer:

69 Objects and PIs <OBJECT ID="behave1" CLASSID="clsid:32F66A D4-BD BD3F987"> Windows uses a long string of digits and letters called a class id to uniquely identify software components. The object tag uses an attribute to specify a class id:

70 Objects and PIs <OBJECT ID="behave1" CLASSID="clsid:32F66A D4-BD BD3F987"> There are many kinds of processing instructions, with different attributes. For IE behaviors one specifies a namespace, and the ID of an object:

71 Objects and PIs Behaviors are actually triggered by a namespace prefix, and not the namespace itself. The upshot is, to use add-ons such as MathPlayer or Techexplorer, You must include an OBJECT and PI. You must use the prefix method for namespaces. One complexity arises from a bug in Internet Explorer behaviors:

72 Putting It Together Write XHTML Include a DOCTYPE Include an OBJECT and PI Include a namespace declaration Use namespace prefixes on the MathML Altogether then, to create a document that works in both IE and Netscape, you must:

73 Putting It Together Netscape will only render your document if it is XML. Internet Explorer will only render it if it is HTML. The solution? XSL stylesheets… But wait! Even if you do all that, there is still the insurmountable problem of MIME types:

74 The MathML Stylesheet You add an XSL stylesheet to an XML document using a PI. The stylesheet sits on the server with your document. The stylesheet runs in the client to transform your document for viewing. An XSL stylesheet is a set of templates for transforming an input document into an output document.

75 The MathML Stylesheet Detect what browser it is running in and output either XML or HTML accordingly Detect what add-ons are installed and output the necessary Object and PI declarations Convert content to presentation markup XSL is powerful. The W3C Math WG has created a Universal MathML Stylesheet which can:

76 The MathML Stylesheet <?xml-stylesheet type="text/xsl" href="style/mathml.xsl" ?> The MathML stylesheet PI looks like this:

77 The MathML Stylesheet Include the stylesheet PI. Write XHTML. Dont use entity references. Use numeric references instead. Use namespaces to indicate the MathML. Dont use Object tags or behavior PIs. Its not necessary to use a DOCTYPE. In order to use the MathML stylesheet,

78 Summary The document must be XHTML (NS). It needs a DOCTYPE (NS). The MathML must be in a namespace (both,) and you have to use the prefix method (IE). You need an element and behavior PI (IE). Serve it as XML for NS, and HTML for IE. Getting MathML in a document to render in both IE and Netscape is quite a trick. The necessary ingredients are:

79 Summary The document must be XHTML without entity names. Include the stylesheet PI. The MathML must be in a namespace (either method). You can omit the DOCTYPE, element and behavior PI. A simpler, alternative method which also deals with the MIME types is to use the Universal Math Stylesheet: