Balisage 2009 Presentation
xmlapp.png
unified.png
mobile-app.png
firefox-addon.png
Bal2009Milo011701.png
style.css
Under the Hood
How the "Hello World" example works.
My Challenge
- We need intrinsic vocabularies and semantics we can rely upon.
We must have HTML5, SVG, and MathML. - We won't wait for "someone else" to develop our browser enhancements.
- We will embrace the idea of intrinsic vocabularies, like HTML, because such things take an inordinate amount of time to develop.
- We will replicate the browser extension model championed by Firefox because it enables direct delivery of XML vocabularies without obscene acts.
- 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 Addons
Mobile Applications
Intrinsic = Hard
- 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

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.

