Title: MathML amidst sibling standards: Mozilla's Building Blocks for Today and Tomorrow
1MathML amidstsibling standardsMozilla's
Building Blocks for Today and Tomorrow
- Roger B. Sidje
- The University Of Queensland
International MathML Conference 2002, Chicago,
June 28-30
2Math on the Web
Gecko (Mozillas embeddable engine) supports
numerous standards and other add-ons which can be
tapped to develop other applications without
having to re-invent the wheel, especially for
rapid prototyping.
3Tasks for Math on the Web
- Server (back-end)
- Serve / Archive the content
- Pre-process (Transformation / Negotiation)
- Computations / Searching / Mining
- Client (front-end)
- Rendering / Human-computer interactivity
- Transformation / Editing
- Computations (via Scripts / Applets)
4Gecko Standards for TasksServe HTTP Pipelining
- One of the top-ten Mozilla features
- Fast transfer of multiple items with one
connection - Speedup pages with numerous gifs (such as pages
that use gifs for math display) - Require a HTTP 1.1 server (e.g., Apache)
5Gecko Standards for TasksRendering / Layout
- HTML 4.01
- XHTML 1.0/1.1, XML extras (e.g., namespace,
simple Xlink, Xpath, FIXPtr, etc) - MathML 2.0
- CSS 1/2/3 (Cascading Style Sheets) for stylistic
effects on MathML too, e.g., mi
text-decoration blink - Fonts/Unicode for International coverage (e.g.,
CJK) - Graphics (GIF, JPEG, PNG, MNG, etc)
6Gecko Standards for TasksDocument Object Model
1/2/3
- Because everything is kept in-memory in the
inflated DOM, say that footprint can be large - Therefore breaking large documents into smaller
ones can improve performance
- Representation of the document as a tree
- Everything counts
- attributes
- comments
- hidden elements of forms,
- etc
- Serialize / Round-trip / Transform
7Gecko Standards for TasksInteractive / Dynamic
MathML
- DOM 1/2/3 (Document Object Model)
- JavaScript 1.5(ECMAScript 262)
Sample Application JavaScripted MathML
Editorhttp//www.newmexico.mackichan.com/MathML/m
athmled.htm
8Gecko-powered MatML Editor(DOMJSXUL)
9Gecko Standards for TasksTransformation
- XSLT (eXtensible Stylesheet Language for
Transformations) - XML syntax for DOM-to-DOM
transformations. - SampleApplicationUniversalMathStyleSheet.
10Gecko Standards for TasksSearching / Mining
- RDFis a schema specification to specify other
vocabularies
- RDF (Resource Description Framework)
- metadata to organize, import and export
hierarchical data - spec from the Semantic Web WG to support the
exchange of knowledge on the web - Gecko provides client-side RDF with possible
presentation templates (e.g., internally used to
handle bookmarks, history, download manager, help
system, etc) - Sample Application Dublin Core
(RDF vocabulary to describe electronic resources
-- authorship, subject, publication date, etc)
11Gecko Standards for TasksSearching / Mining
- SOAP 1.1 (Simple Object Access Protocol)
- Sample Application Google SOAP APIs
12Gecko Standards for TasksDistributed
Computations
- SOAP 1.1 (Simple Object Access Protocol)
- message-passing protocol to support web services
- XML syntax for remote procedure calls
- Scalability is not proven (lightweight data)
-
- Missing link interoperable access to
Computer Algebra Kernels - Proprietary webMathematica, Maplets,
- .NET
13Existing Mozilla Infrastructure
- Cross-Platform (XP)
- XPCOM (Cross-Platform Component Object Model)
- XPIDL / XPConnect (enable scriptable components)
- XBL (eXtensible Binding Language)
- XPI (Cross-Platform Install)
- XUL (eXtensible User-interface Language).
........ - Plugins / OJI (Open Java Interface)
- UA Mozilla/5.0 (......) Gecko/
14Application Programming Framework of
MozillaStandards Infrastructure
- Serve HTTP Pipelining
- Rendering (X)HTML, MathML, CSS 1/2/3, XML
- Interactivity DOM 1/2/3 JavaScript 1.5
- Transformation XSLT
- Searching / Mining RDF/SOAP search engine
- Computations Scripts/Applets/SOAP CA kernel
- Security Privacy SSL/P3P
- Infrastructure XPCOM, XUL, XPI, Plugins, etc
15Gecko Toolkit 1.0
- 5 years in the making (since 1997)
- during that time IE climbed to 90in web access
statistics
- Standards include MathML siblings that can be
mixed freely where appropriate - Stable (Frozen) APIs to build upon
- Standalone or embedded (e.g., small-devices)
- Samples to demonstrate embedding
- i18n / l10n / BiDi
- Extensive preferences for custom environments
- Accessibility
- Continual open-source improvements
- Numerous extras (e.g., zoom, ads blocking, etc)
16Gecko Challenge
- Interoperability create/export to Mathematica
without Mathematica - Sharing/accessibility
- But say that it is not to me to decide - the
point of the talk is to raise awareness on the
possibilities
- Many companies are in the WGs
- Migrate to standards-based solutions for greater
interoperability - No strings attached
- No NDA
- Examples
- webMathematica to SOAP ?
- .nb to .xhtml ?
- Worksheets and maplets to Gecko-based approaches
for web delivery/sharing ?
17Myths on would-beGecko-based product
- Since Mozilla is open-source, if my product is
based on Mozilla I will have to disclose my
source - Following the open nature of discussions,
competing products will know what my upcoming
product is doing (or planning to do) - Since Mozilla is free, my product would have to
be free
18TroubleZilla
- Not everything is rosy
- some problems are not interesting
- some problems are harddocument.write(cript...)
- Crash one, crash everyone
- Architectural changes can be slow to happen
- many dependencies (on-tree off-tree)
- integration review for the big picture
- Fear of cascading effects means that not all
patches are driven in a timely manner