Notes
Outline
Device-Independence with UIML
(User Interface Markup Language)
Quotes from Position Papers
New XML language should
Allow author-once-deploy many scenarios
Achieve clean separation between behavior, content, presentation [Ruud Siebelink]
Issue is interaction not presentation [Paul Smethers, WAP]
Ideal solution: write well-formed code once [Jansen]
Semantics [meaning of Web content] must be made clear at primary design level [William Loughborough]
Must adapt to new devices not envisioned
[Ralph Case, Stephane Maes]
Where UIML Fits In*
UIML… One Part of a Solution
One canonical representation of UI for
any device, language, OS, UI-metaphor
3+ years in development at Harmonia, Center for HCI at Virginia Tech
Tools downloaded in 40+ countries
Can be compiled to lots of things
Anyone can freely implement UIML
Objective is open standard
Problem with Existing Approaches
Suggested way to annotate existing markup:
<card>
<select class=“DISPLAY_SMALL”>
…
</card>
Key Concept:
UIML is a “Meta” Language
XML
Doesn’t define tags (<P>,…)
Must add doc type definition to make it useful
No need to change XML as new tag sets invented
UIML
Doesn’t define tool-kit specific tags (<Menu>,…)
Uses a few powerful tags (<part>, <property>,…)
Must add toolkit vocabulary to make it useful
No need to change UIML as new devices invented
UIML Model
UIML Skeleton – Part 1
What parts comprise the UI &
what’s their relationship?
UIML Skeleton – Part 2
<?xml version="1.0" ... ?>
<uiml version="2.0">
  <interface>
    <structure>…</structure>
  </interface>
</uiml>
UIML Skeleton – Part 3
<?xml version="1.0" ... ?>
<uiml version="2.0">
  <interface>
    <structure>…</structure>
  </interface>
</uiml>
UIML Skeleton – Part 4
<?xml version="1.0" ... ?>
<uiml version="2.0">
  <interface>
    <structure>…</structure>
  </interface>
</uiml>
UIML Skeleton – Part 5
<?xml version="1.0" ... ?>
<uiml version="2.0">
  <interface>
    <structure>…</structure>
  </interface>
</uiml>
<peers> Maps Classes
to Targets
<d-class name="JButton" … maps-to="javax.swing.JButton">
    …
</d-class>
Versus
<d-class name="JButton" … maps-to=“html:input">
    …
</d-class>
This part is written once, like a device driver for an OS.
Events and calls to outside world handled similarly.
NxM Problem (Old Way)
App composed on
M “pages”
accessed via N devices
requires NxM authoring steps
[Ralph Case, Stephane Maes]
NxM Problem (New Way)
App composed on
M “pages”
accessed via N devices
requires NxM authoring steps
[Ralph Case, Stephane Maes]
UIML Permits
Development Continuum
UIML Permits Families of UIs
Another Perspective…
Still…
UIML is Not a Silver Bullet…
Some open problems:
Aid/enforce accessibility guidelines [Jon Wu]
Support auto adaptation/personalization
[Ruud Siebelink]
Reorganizing UI:
Many apps will need to be re-designed entirely [Guido Grassel]
1 page in a desktop Web browser might be split into 2 screens for TV [Peter Ferne]
For More Info
Visit uiml.org
Upcoming:  European Workshop on UIML –
January 2001 in Paris