Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI)...

48
August 24 th, 2004 WCC'2004 - Topical day on Multim odal interaction 1 Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented by Multimodality and context- Multimodality and context- aware adaptation aware adaptation Quentin Limbourg, Jean Vanderdonckt

Transcript of Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI)...

Page 1: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

1

Université catholique de Louvain (UCL)Belgian Laboratory of Computer-Human Interaction (BCHI)Place des Doyens, 1B-1348 Louvain-la-Neuve (Belgium)

Presented by

Multimodality and context-aware Multimodality and context-aware adaptationadaptation

Quentin Limbourg, Jean Vanderdonckt

Page 2: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

2

Context-awarenessContext-awareness

What is in the context of use?– User– Platform– Environment

• Organisation• Socio-psychological factors

Two examples of adaptation due to context-awareness– Adaptability = adaptation by the user– Adaptivity = adaptation by the system

Page 3: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

3

Example of adaptabilityExample of adaptability

Personalisation– Requires many editing– Is hard to achieve– Does not necessarily factor out common parts– Does not necessarily separate fixed parts from variable parts

Goal– To have a system for automated generation of UIs

• With support of personalisation• That can generate multiple variants of the same UI

– For this purpose, we use• A feature model• Generative Programming

Page 4: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

4

CC

F1F1

CC

F1F1 F2F2

CC

F1F1 F2F2

DependenciesDependencies

1.1.

2.2.

What‘s a Feature Model?What‘s a Feature Model?

OptionalOptional ExclusiveExclusive

AlternateAlternate

Page 5: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

5

Example of a Feature ModelExample of a Feature Model

Page 6: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

6

Feature modelFeature model

CC

F1F1 F2F2 F3F3

F2aF2a F2bF2b F3aF3a F3bF3b

CC

F1F1 F2F2 F3F3

F2aF2a F2bF2b F3aF3a F3bF3b

0 1 1

1 10 0

Model SpecificationsModel Specifications

<C> <F1>0</F1> <F2>1 <F2a>1</F2a> <F2b>0</F2b> </F2> <F3>1 <F3a>0</F3a> <F3b>1</F3b> </F3></C>

<C> <F1>0</F1> <F2>1 <F2a>1</F2a> <F2b>0</F2b> </F2> <F3>1 <F3a>0</F3a> <F3b>1</F3b> </F3></C>

USIXMLSpecifications

USIXMLSpecifications

Page 7: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

7

Generative ProgrammingGenerative Programming

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);V

oid channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public: ImgProcessT(const char* const psz = "", Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT();

virtual char* getClassName() const; virtual char getClassID () const;

ImgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&);

ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL);mgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&);

ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL);

V

oid channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public: ImgProcessT(const char* const psz = "", Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT();

virtual char* getClassName() const; virtual char getClassID () const;

ImgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&);

ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL);mgProcessT<T>& operator+=(const ImgProcessT<T>&); ImgProcessT<T>& operator-=(const ImgProcessT<T>&); ImgProcessT<T>& operator^=(const ImgProcessT<T>&); ImgProcessT<T> operator+ (const ImgProcessT<T>&); ImgProcessT<T> operator- (const ImgProcessT<T>&); ImgProcessT<T> operator^ (const ImgProcessT<T>&);

ImgProcessT<T>& channelNLinFilter(const int&, Mask*, T*, Pl* ppl=NULL);

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

US

IXM

L-S

p eci

f ica

t ion

US

IXM

L-S

p eci

f ica

t ion

ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL);

ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL)

ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL) ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL);

ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL)

Components void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, Pl*), const int& nAngle, Pl* ppl );

void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(Pl*), Pl* ppl );

void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, const int&, const int&, const int& ), const int&, const int&, const int&, const int& );

void channelShowHistogram( int*, const int&, const int&, const int&, const int&, const int&, const int&, const int& n = 0 ) const;

void channelFft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL ); void channelIfft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public: ImgProcessT(const char* const psz = "", Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT();

virtual char* getClassName() const; virtual char getClassID () const;

ImgProcessT<T>& operator+=(const ImgProcessT<T>&);I

void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, Pl*), const int& nAngle, Pl* ppl );

void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(Pl*), Pl* ppl );

void areaOperation(const int&, const int&, const int&, const int&, ImgProcessT<T>& (ImgProcessT<T>::*pimgpr)(const int&, const int&, const int&, const int& ), const int&, const int&, const int&, const int& );

void channelShowHistogram( int*, const int&, const int&, const int&, const int&, const int&, const int&, const int& n = 0 ) const;

void channelFft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL ); void channelIfft ( T*, T*, T*, const unsigned int&, const unsigned int&, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL); void channelRange (T*, Pl* ppl = NULL ); void nlinFilterCommon (const int& nID, Mask*, Pl*); int pot (const unsigned int& ) const;

ImgProcessT<T>& channelXor (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelMix (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSub (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL); ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public: ImgProcessT(const char* const psz = "", Pl* ppl = NULL); ImgProcessT(const int&, const int& nWidth = 20, const int& nHeight = 20, const int& nFillColor = 0, ProgressLine* ppl = NULL ); ImgProcessT(const ImgProcessT<T>&); virtual ~ImgProcessT();

virtual char* getClassName() const; virtual char getClassID () const;

ImgProcessT<T>& operator+=(const ImgProcessT<T>&);I

Final codeImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL);

ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public:

ImgProcessT(const char* const psz = "", Pl* ppl = NULL);

ImgProcessT(const int&,

const int& nWidth = 20,

const int& nHeight = 20,

const int& nFillColor = 0,

ProgressLine* ppl = NULL

);

ImgProcessT<T>& channelAdd (T*, T*, Pl* ppl = NULL);

ImgProcessT<T>& channelSubBalanced(T*, T*, Pl* ppl = NULL);

public:

ImgProcessT(const char* const psz = "", Pl* ppl = NULL);

ImgProcessT(const int&,

const int& nWidth = 20,

const int& nHeight = 20,

const int& nFillColor = 0,

ProgressLine* ppl = NULL

);

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

void channelFftSpectrum(T*, T*, T*, Pl* ppl = NULL);

void channelRange (T*, Pl* ppl = NULL );

Page 8: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

8

Example of adaptivityExample of adaptivity

Computer-aided surgery by mixed reality

Page 9: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

9

Multi-platformMulti-platform

Extending approaches for multiple contexts of use– Context is now restricted

to one computing platformat a time

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1:Web terminal

Page 10: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

10

Multi-platformMulti-platform

Traditional approach: last level only

Final User Interface

Platform 1:Web terminal

Platform 2:Personal computer

Final User Interface

Platform 3:Pocket PC

Final User Interface

Page 11: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

11

Multi-platformMulti-platform

Traditional approach: Atomica

HTML/Java UI code

Platform 1:Web terminal

Platform 2:Personal computer

Visual C++ UI code

Platform 3:Pocket PC

Mobile Visual Basic UI

Page 12: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

12

Multi-platformMulti-platform

Shortcomings of the traditional approach (ct’d)– Repetition of development and maintenance

[UIML,1999]

Platform 1:Web terminal

Platform 2:PC

Platform 3:Pocket PC

Java UI #1 C++ UI #1 Mobile UI #1Application #1

Java UI #2 C++ UI #2 Mobile UI #2Application #2

Java UI #3 C++ UI #3 Mobile UI #3Application #3

Page 13: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

13

Multi-platformMulti-platform

Physical level deployment

Platform 1:

Final User Interface

Physical User Interface

Platform 2:

Final User Interface

Physical User Interface

Platform 3:

Final User Interface

Physical User Interface

= Translation relationship= Transformation at the same level of abstraction

Page 14: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

14

Multi-platformMulti-platform

Physical level deployment: Galaxy

Windows UI code

Physical User Interface

Platform 1:Personal Computer

Platform 2:Macintosh Mac OS

Macintosh UI code

Physical User Interface

Platform 3:Workstation OSF/Motif

OSF/Motif UI code

Physical User Interface

Page 15: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

15

Multi-platformMulti-platform

Physical level deployment: Galaxy

Windows UI code

Platform 1:Personal Computer

Platform 2:Macintosh Mac OS

Macintosh UI code

Platform 3:Workstation OSF/Motif

OSF/Motif UI code

Page 16: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

16

Multi-platformMulti-platform

Logical level deployment

Final User Interface

Physical User Interface

Logical User Interface

Platform 1:Personal Computer

Platform 2:Macintosh Mac OS

Final User Interface

Physical User Interface

Logical User Interface

Platform 2:Workstation OSF/Motif

Final User Interface

Physical User Interface

Logical User Interface

Page 17: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

17

Multi-platformMulti-platform

Logical level deployment: UIML

HTML UI code

HTML Renderer

UIML Specification

Platform 1:Personal Computerwith Web browser

Platform 2:Personal ComputerWith XML browser

XML UI code

XML Renderer

Platform 3:Mobile Phone

WML UI code

WML Rendered

Page 18: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

18

<?xml version="1.0" ... ?><uiml version="2.0">

</uiml>

Multi-platform:Multi-platform:UIML Skeleton – Part 1UIML Skeleton – Part 1

What parts comprise the UI &what’s their relationship?

<interface> <structure> <part class=“Button”> … </part>

... </structure>

</interface>

[Abrams et al., 1999]

Page 19: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

19

Multi-platformMulti-platform

Task & Concepts level deployment

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 3

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Page 20: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

20

Multi-platformMulti-platform

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 3

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Multiple levels of translation/reification[Thevenin,2001]

Page 21: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

21

Multi-platformMulti-platform

Translation at Task & Concept level

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Page 22: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

22

Multi-platformMulti-platform

Translation at Task & Concept level– Task model primitives

• Sub-tasks (nodes)– Remove sub-task: for different reasons– Add sub-task: unlikely to appear– Modify sub-task: switch, reshuffle, relax constraints

• Hierarchical & temporal operators (edges)– Modify temporal operator: reordering– Cutting sub-trees

– Concepts model primitives

Page 23: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

23

Register to CHI’2001 Conference

Pay registration

By credit card By fax

[ ]

RecordPayment mode

>>

Specify all registration needs

Enter personal information Specify special needs Specify attendee type

| | | | | |

>>

Multi-platformMulti-platform

Task translation

| | |

Page 24: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

24

Multi-platformMulti-platform

Concepts removal: CT-UIMS[Märtin,1990]

Page 25: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

25

Multi-platformMulti-platform

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Translations T&C + logical levels

Page 26: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

26

Multi-platformMulti-platform

Translations T&C + logical levels

Specify all registration needs

Enter personal information Specify special needs Specify attendee type

| | | | | |

Page 27: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

27

Multi-platformMulti-platform

Translations T&C + logical levels

Specify all registration needs

Enter personal information Specify special needs Specify attendee type

| | | >>

Page 28: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

28

Multi-platformMulti-platform

Translations T&C +logical levels

Page 29: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

29

Multi-platformMulti-platform

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Translations T&C + logical + physical levels

Page 30: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

30

Multi-platformMulti-platform

Translations T&C + logical + physical levels– T&C + logical remain constant over time or

coordinated with changes– Graceful degradation of presentation

• Widgets: replacement, reduction, resizing• Text: text summarization, sentence elision,

automatic summary• Images: color reduction, cropping, resizing,…• Animation: reduction to still images,…• Video: reduction of frame, refreshing,…

Page 31: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

31

Multi-platformMulti-platform

Graceful degradation of presentation– Widgets

Page 32: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

32

Multi-Multi-platformplatform Graceful

degradation of presen-tation– Images

Page 33: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

33

Multi-platformMulti-platform

Graceful degradation of presentation– Images

Page 34: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

34

Multi-platformMulti-platform

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Translations combined at all levels

Page 35: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

35

Multi-platformMulti-platform

Multiple transformations possible

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Page 36: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

36

Multi-platformMulti-platform

Plastic UI = UI that can accomodate multiple changes of context (here, platforms) while preserving some usability properties

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2 Platform 3

Final User Interface Final User Interface

[Calvary, Coutaz & Thevenin, 2001]

Page 37: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

37

Multi-platformMulti-platform

Plastic UI: Virtual keyboard[Grolaux, 2001]

Page 38: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

38

Multi-platformMulti-platform

Plastic UI: FlexClock[Grolaux, Van Roy, Vanderdonckt, 2002]

Page 39: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

39

Multi-platformMulti-platform

Plastic UI: adaptable bounded value

Page 40: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

40

Multi-platformMulti-platform

Reverse engineering

Final User Interface

Physical User Interface

Logical User Interface

Task & Concepts

Platform 1 Platform 2

Final User Interface

Physical User Interface

Logical User Interface

= Abstraction relationship= Transformation into amore abstract level ofabstraction

ReversiXML

WebRevenge

ReversiXML

Page 41: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

41

XIML2WML generatorXIML2WML generator

Page 42: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

42

Multi-platformMulti-platform

Reverse engineering

Final User Interface

Platform 1 Platform 2

Final User Interface

Physical User Interface

= Crossing relationship= Transformation betweendifferent levels ofabstraction

Logical User InterfaceRetargeting

[Bouillon & Vanderdonckt,2002]

Page 43: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

43

Multi-directional User InterfacesMulti-directional User Interfaces

A UI is represented by a suite of models that are– Analysable– Editable– Transformable

Transformational approach– Any UI is subject to any transformation at any time

• From one language to another• From one computing platform to another• From reverse engineering to forward engineering• …

Page 44: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

44

Multi-directional User InterfacesMulti-directional User Interfaces

Model engineering– Forward engineering (top-down)– Reverse engineering (bottom-up)– Bidirectional engineering (both ways)

Model transformations– Reification, abstraction– Translation– Crossing (retargeting, revamping,…)

Page 45: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

45

ContextsContextsof useof useChannelsChannelsModalitiesModalities

Multiple levels of considerationMultiple levels of consideration

Channels plus:Channels plus:

• User behaviourUser behaviour• User expectationsUser expectations• User experienceUser experience• User groupsUser groups• Physical constraintsPhysical constraints• EnvironmentEnvironment

Modalities plus :Modalities plus :

• Market segmentsMarket segments• Time of usageTime of usage• Place of usagePlace of usage• Network, Wi-fiNetwork, Wi-fi• Various tasksVarious tasks

PlatformsPlatformsDevicesDevices

Platforms plus :Platforms plus :

• Modalities of Modalities of interactioninteraction

• Mono vs Mono vs multimodalitymultimodality

Devices plus :Devices plus :

• Software Software characteristicscharacteristics

• Hardware Hardware characteristicscharacteristics

• Languages: Languages: programming, markupprogramming, markup

• Tools: renderer, Tools: renderer, interpreter, compilerinterpreter, compiler

Page 46: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

46

ContextsContextsof useof useChannelsChannelsModalitiesModalities

USIXMLUSIXML

PlatformsPlatformsDevicesDevices

Page 47: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

47

An overview of USIXML toolsAn overview of USIXML tools

Running prototypes– GrafiXML: CUI Hi-Fi editor + Code Generator (Java

Swing, XHTML)– FormiXML: CUI Hi-Fi editor for Forms (XForms, HTML)

– SketchiXML: CUI Lo-Fi Sketching– VisiXML: CUI Mid-Fi (MS Visio Plug-in)– FlashiXML: CUI renderer for SVF– ReversiXML: reverse engineering from HTML to CUI,

AUI– TransformiXML API: transformation tool– Teresa (F. Paternò, CUI level to multi FUI generation)

Demo

Demo

Demo

Page 48: Université catholique de Louvain (UCL) Belgian Laboratory of Computer-Human Interaction (BCHI) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) Presented.

August 24th, 2004

WCC'2004 - Topical day on Multimodal interaction

48

Thank you very much for your attention!Thank you very much for your attention!

www.usixml.org

Credits

www.plasticity.org

www.similar.cc