r. alexander milowski, geek

Balisage 2009 Presentation

xmlapp.png

unified.png

mobile-app.png

firefox-addon.png

Bal2009Milo011701.png

style.css

Under the Hood

diagram sequencing how the application works.

How the "Hello World" example works.

My Challenge

  1. We need intrinsic vocabularies and semantics we can rely upon.
    We must have HTML5, SVG, and MathML.
  2. We won't wait for "someone else" to develop our browser enhancements.
  3. We will embrace the idea of intrinsic vocabularies, like HTML, because such things take an inordinate amount of time to develop.
  4. We will replicate the browser extension model championed by Firefox because it enables direct delivery of XML vocabularies without obscene acts.
  5. We will support open-source and make it easy to use because it is our "big stick" we use to get what we want.

Just When You Thought ...

DAISY e-book Reader Example

The Penultimate and Slightly More Complicated Example

In the tradition of replicating power point in XML, ... these slides!

<application xmlns='http://www.milowski.com/Vocabulary/XMLApp/' 
             type="application/xhtml+xml" >
 <match type="application/atom+xml" 
        xmlns:atom='http://www.w3.org/2005/Atom'>
   <where select='/atom:feed/atom:category
                  [@scheme="http://www.milowski.com/O/feed/"]
                  [@term="slides"]'/>
 </match>
 <link rel="stylesheet" type='text/css' 
       href='chrome://xmlapp-apps/content/atomslides/slides.css'/>
 <script type='text/javascript' 
         src='chrome://xmlapp-apps/content/atomslides/slides.js'/>
</application>

A More Complicated Example

Displays this talk's Balisage Paper as an e-book.

<application xmlns='http://www.milowski.com/Vocabulary/XMLApp/' 
             type="application/xhtml+xml">
   <match type="application/docbook+xml" 
          xmlns:d='http://docbook.org/ns/docbook'>
      <where select='/d:article[@version="5.0-subset Balisage-1.1"]'/>
   </match>
   <match type="application/xml" namespace='http://docbook.org/ns/docbook' 
          xmlns:d='http://docbook.org/ns/docbook'>
      <where select='/d:article[@version="5.0-subset Balisage-1.1"]'/>
   </match>
   <match type="text/xml" namespace='http://docbook.org/ns/docbook' 
          xmlns:d='http://docbook.org/ns/docbook'>
      <where select='/d:article[@version="5.0-subset Balisage-1.1"]'/>
   </match>
   <link rel="stylesheet" type='text/css' 
         href='chrome://xmlapp-apps/content/balisage/app.css'/>
   <script type='text/javascript' 
           src='chrome://xmlapp-apps/content/balisage/app.js'/>
   <map extension="balisage" type="application/docbook+xml"/>
   <transform role="info" src='info.xsl'/>
   <transform role="section" src='section.xsl'/>
   <transform role="bibliography" src='bibliography.xsl'/>
</application>

A Simple Example

Renders an XML document using client-side XSLT and CSS embedded in the browser.

<application xmlns='http://www.milowski.com/Vocabulary/XMLApp/' 
             type="application/xhtml+xml" >
   <match type="application/x-helloworld+xml"/>
   <link rel="stylesheet" type='text/css' 
         href='chrome://xmlapp-apps/content/helloworld/hello.css'/>
   <script type='text/javascript' 
           src='chrome://xmlapp-apps/content/helloworld/hello.js'/>
   <transform role="start" src='xhtml.xsl' />
   <map extension="hello" type="application/x-helloworld+xml"/>
</application>

A Unified Model

Delivering XML?

  • Some still want to deliver XML as we did in 1999,
  • having the original content means users can choose their viewer,
  • and viewing communities may have divergent needs,
  • but HTML is available and sufficient,
  • and provides a consistent document structure for accessibility,
  • and a consistent target for other tools.
  • Contradiction?  Conclude whatever you want...

Browser Extension Model

firefox addon model

Firefox Addons

andriod and iphone application model

Mobile Applications

Intrinsic = Hard

We want our browser developers to build-in support because:
  • they take a long time to get right,
  • they take large amounts of development resources,
  • they take specialized skills to understand and develop,
  • "You're Smart.  Intrinsic hard.  You Make Go" (Star Trek - Pakleds).

Our Intrinsic Vocabularies

  • HTML - basic rendering, linking, and execution semantics.
  • MathML - math rendering semantics:

  • SVG - diagramming and interactivity semantics:

Non-intrinsic Vocabularies: XML

The Intrinsic Dividing Line

Intrinsic: Belonging to the essential nature or constitution of a thing.

Intrinsic Vocabulary: Any markup that a web browser can natively process with some well-defined non-trivial semantic without the aid of additional constructs.

The Painful Game

Diagram of current method of application delivery.

Status Quo in 2009

Browser Books Demo TOC Demo
Firefox 3.x Yes Yes
Safari 4.x (WebKit) Yes Partial
Android (WebKit) Yes Partial
iPhone (WebKit) Yes Partial
IE 6 No - Blank Page No - Errors
IE 7 No - Blank Page No - Errors
IE 8 No - Blank Page No - Errors

The Netscape Demo at XTech '99

Renders an XML document with CSS and has different styles selectable from Javascript.

Renders a sample IRS document with CSS and generates an XLink-based TOC from the document using Javascript.

Remember 1999?

  • Sponge Bob Square Pants aired for the first time,
  • the "dot com" boom was still booming,
  • a new "Star Wars" film came out and we all went to see it ($$$),
  • Lance Armstrong wins his first Tour De France,
  • and XML goes "prime time" with Netscape.

XML in the Browser

The Next Decade

R. Alexander Milowski

Appolux, Inc.