sidje

466 views
405 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
466
On SlideShare
0
From Embeds
0
Number of Embeds
33
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

sidje

  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 http://www.newmexico.mackichan.com/MathML/mathmled.htm
  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>

×