[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