Your SlideShare is downloading. ×
sidje
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

sidje

313
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
313
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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.
  • 3. 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)
  • 4. 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)
  • 5. 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)
  • 6. 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
  • 7. 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
  • 8. Gecko-powered MatML Editor (DOM+JS+XUL)
  • 9. Gecko Standards for Tasks: Transformation
    • XSLT (eXtensible Stylesheet Language for Transformations) - XML syntax for DOM-to-DOM transformations.
    • Sample Application: Universal Math StyleSheet.
  • 10. 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
  • 11. Gecko Standards for Tasks: Searching / Mining
    • SOAP 1.1 (Simple Object Access Protocol)
    • Sample Application: Google SOAP APIs
  • 12. 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
  • 13. 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>
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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