Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this


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