OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

uiml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: [uiml] RE: question on your presentation on how UIML is extensiblethrough vocabularies


This is a good question - good enough that I am cc'ing the reply to the uiml
mail list so that others may see it.

The UIML3 specification on uiml.org is not normally used by itself.  Instead,
one must define a "vocabulary" to use with UIML3.  There are a set of
vocabularies on http://www.uiml.org/toolkits/index.htm.  UIML3 is extensible
because anyone is free to create their own vocabulary for their own use.

A vocabulary defines the mapping between the class and property names used in
a UIML document and a target language.  Let's take a simple example.  Suppose
we want to use UIML to define a user interface that will be mapped to Java.
Here is a small UIML document, which describes a user interface consisting of
a window with a label inside the label:

<?xml version="1.0"  encoding="ISO-8859-1" ?>
<!DOCTYPE uiml PUBLIC "-//Harmonia//DTD UIML 2.0 Draft//EN"
    "UIML2_0g.dtd">

<uiml>

  <head>
    <meta name="Purpose" content="UIML document example"/>
  </head>

  <interface id="myinterface">

    <structure>
      <part id="TopHello" class="Frame">
        <style>
          <property name="rendering">Frame</property>
          <property name="title">I am a window!</property>
          <property name="layout">java.awt.FlowLayout</property>
          <property name="resizable">true</property>
          <property name="background">blue</property>
          <property name="foreground">white</property>
          <property name="size">500,100</property>
          <property name="location">100,100</property>
        </style>

        <part id="L" class="Label">
          <style>
            <property name="font">ProportionalSpaced-Bold-16</property>
            <property name="text">I am a label!</property>
          </style>
        </part>

      </part>
    </structure>

  </interface>

  <peers>
    <presentation base="Java_1.3_Harmonia_1.0"
source="Java_1.3_Harmonia_1.0.uiml#vocab"/>
  </peers>
</uiml>

The <structure> element says that the user interface contains to <part>
elements:  one of class "Frame" and the second of class "Label".  Furthermore,
the <style> element specifies a variety of properties of the Frame:  "title",
"layout", "resizable", and so on.  Not the class names "Frame" and "Label" and
the property names "title", "layout", "resizable", and so on are not part of
the UIML3 specification.  They are part of a vocabulary.  The vocabulary to be
used with this UIML document is specified in the <presentation> element, and
is named Java_1.3_Harmonia_1.0.  Vocabulary Java_1.3_Harmonia_1.0 is one of
the ones listed in http://www.uiml.org/toolkits/index.htm.  If you visit that
URL, and click on the vocabulary information on that web page (going to page
http://www.uiml.org/toolkits/Java_1.3_Harmonia_1.0.uiml), you will see UIML
that maps "Frame" to Java class java.awt.Frame, and the "title" property to
the setTitle() method in java.awt.Frame.

Alternately, suppose you design user interfaces for automobiles.  You might
want to design a vocabulary for UIML that represents the abstractions you
think of as an automotive designer.  For example, you might want a part class
called SteeringWheelButton to represent a button on the steering wheel, or
ConsoleKnob for a knob that you turn on the console of your car to choose menu
items from a bitmapped display on the console of your car.

Suppose 10 years from now someone creates holographic user interfaces.  They
can then define a set of part class names and property names that are suitable
for holographic interfaces, and define the approrpriate vocabulary file that
maps the names into a target langauge or toolkit for holographic interfaces.

To summarize, the ability to add vocabularies provides extensibility for UIML.

Please ask if you have further questions!

Regards,
Marc

-----Original Message-----
From: Hedyalb@aol.com [mailto:Hedyalb@aol.com]
Sent: Monday, January 27, 2003 12:28 PM
To: Marc Abrams
Subject: question on your presentation



Hi, Marc --

Thanks for your excellent conceptual presentation on UIML. I am interested in
getting some clarification on the issue of extensibility. (You may have
explained this is your presentation, in which case I apologize for requesting
a repeat.) Extensibility is built into XML through self-definition in the DTD,
schema, etc. so that you needn't issue a new version of the spec each time a
new medium is introduced. How does UIML handle extensibility within an
existing version of the spec?

Thanks,
Hedy

Marc Abrams
Adjunct Professor, Virginia Tech
Blacksburg, Virginia, USA
abrams@vt.edu

Co-founder, Harmonia Inc.
abrams@harmonia.com

540-357-0700



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC