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
Math on the Web Server Client 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.
Tasks 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)
Gecko Standards for Tasks: Serve: 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)
Gecko Standards for Tasks: Rendering / 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., <style> mi { text-decoration : blink } </style> Fonts/Unicode for International coverage (e.g., CJK) Graphics (GIF, JPEG, PNG, MNG, etc)
Gecko Standards for Tasks: Document Object Model 1/2/3 Representation of the document as a tree Everything counts attributes comments hidden elements of forms, etc Serialize / Round-trip / Transform 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
Gecko Standards for Tasks: Interactive / Dynamic MathML DOM 1/2/3 (Document Object Model) JavaScript 1.5 (ECMAScript 262) Sample Application: JavaScripted MathML Editor http://www.newmexico.mackichan.com/MathML/mathmled.htm
Gecko-powered MatML Editor (DOM+JS+XUL)
Gecko Standards for Tasks: Transformation XSLT (eXtensible Stylesheet Language for Transformations) -  XML syntax for DOM-to-DOM transformations. Sample Application: Universal Math StyleSheet.
Gecko Standards for Tasks: Searching / Mining 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) RDFis a schema specification to specify other vocabularies
Gecko Standards for Tasks: Searching / Mining SOAP 1.1 (Simple Object Access Protocol) Sample Application: Google SOAP APIs
Gecko Standards for Tasks: Distributed 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
Existing 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) <window>...<toolbar>...</toolbar>...</window> Plugins / OJI (Open Java Interface) UA: Mozilla/5.0 (...<OS>...) Gecko/<build-date>
Application Programming Framework of Mozilla: Standards & 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
Gecko Toolkit 1.0 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) 5 years in the making (since 1997) during that time IE climbed to 90%+in web access statistics
Gecko Challenge 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 ? 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
Myths on would-be Gecko-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
TroubleZilla Not everything is rosy some problems are not “interesting” some problems are hard <script> document.write(’<script>...</script>’) </script> 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

sidje

  • 1.
    MathML amidst siblingstandards: Mozilla's Building Blocks for Today and Tomorrow Roger B. Sidje The University Of Queensland International MathML Conference 2002, Chicago, June 28-30
  • 2.
    Math on theWeb Server Client 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.
    Tasks for Mathon 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)
  • 4.
    Gecko Standards forTasks: Serve: 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)
  • 5.
    Gecko Standards forTasks: Rendering / 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., <style> mi { text-decoration : blink } </style> Fonts/Unicode for International coverage (e.g., CJK) Graphics (GIF, JPEG, PNG, MNG, etc)
  • 6.
    Gecko Standards forTasks: Document Object Model 1/2/3 Representation of the document as a tree Everything counts attributes comments hidden elements of forms, etc Serialize / Round-trip / Transform 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
  • 7.
    Gecko Standards forTasks: Interactive / Dynamic MathML DOM 1/2/3 (Document Object Model) JavaScript 1.5 (ECMAScript 262) Sample Application: JavaScripted MathML Editor http://www.newmexico.mackichan.com/MathML/mathmled.htm
  • 8.
  • 9.
    Gecko Standards forTasks: Transformation XSLT (eXtensible Stylesheet Language for Transformations) - XML syntax for DOM-to-DOM transformations. Sample Application: Universal Math StyleSheet.
  • 10.
    Gecko Standards forTasks: Searching / Mining 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) RDFis a schema specification to specify other vocabularies
  • 11.
    Gecko Standards forTasks: Searching / Mining SOAP 1.1 (Simple Object Access Protocol) Sample Application: Google SOAP APIs
  • 12.
    Gecko Standards forTasks: Distributed 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
  • 13.
    Existing Mozilla InfrastructureCross-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) <window>...<toolbar>...</toolbar>...</window> Plugins / OJI (Open Java Interface) UA: Mozilla/5.0 (...<OS>...) Gecko/<build-date>
  • 14.
    Application Programming Frameworkof Mozilla: Standards & 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
  • 15.
    Gecko Toolkit 1.0Standards 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) 5 years in the making (since 1997) during that time IE climbed to 90%+in web access statistics
  • 16.
    Gecko Challenge Manycompanies 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 ? 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
  • 17.
    Myths 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
  • 18.
    TroubleZilla Not everythingis rosy some problems are not “interesting” some problems are hard <script> document.write(’<script>...</script>’) </script> 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