Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia

Post on 22-Feb-2016

31 views 0 download

Tags:

description

Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia . Dr. Alexandra Cristea a.i.cristea@warwick.ac.uk http://www.dcs.warwick.ac.uk/~acristea/. LAOS Model. Adaptation granularity. lowest level : direct adaptation techniques : - PowerPoint PPT Presentation

Transcript of Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia

GenericAdaptation Languages Explicit Intelligence in Adaptive Hypermedia

Dr. Alexandra Cristeaa.i.cristea@warwick.ac.ukhttp://www.dcs.warwick.ac.uk/~acristea/

LAOSModel

Adaptation granularity• lowest level: direct adaptation techniques:

– adaptive navigation support & adaptive presentation (Brusilovsky 1996), implem.: AHA!; expressed in AHAM syntax

– techniques usually based on threshold computations of variable-value pairs.

• medium level: goal / domain-oriented adaptation techniques:– based on a higher level language that embraces primitive

low level adaptation techniques (wrapper)– new techniques: adaptation language (Calvi & Cristea 2002),

• high level: adaptation strategies– wrapping layers above– goal-oriented

Adaptation Assembly language

Adaptation Programming

language

Adaptation Function

calls

How to create an adaptation language?

• Adaptation Language as an Intermediate Platform (between authoring environment and adaptation engine)

• An interface between the adaptation engineer and the authoring system

“Authoring problem” Defining:

- content alternatives & multiple paths through the content

- adaptation techniques - whole user-interaction mechanism design

Alleviating “Authoring problem”Improving reuse capabilities: (reuse of previously created material & other components)- reuse of static & dynamic parts of the courseware

The solutionReuse of dynamics:“Exchanging not only the ingredients, but the recipes as well”Adaptation languages:- LAG - LAG-XLS (read as “LAG-excels”)

How to create an adaptation language?

• We need to find out which are the:– Elements of course dynamics

• For this, we need to analyse what happens in an adaptive course, and what is done dynamically:

Selection of Media Items

Visual style• Diagrams• Illustrations• Graphs• Flowcharts• Animations+ audio

Verbal style• More text• Possibly audio

Providing navigation paths

Sequential style

Linear step-by-step learning process

Global styleGlobal overview first, then

details

Presentation for Visual+Global Learner

Presentation for Verbal+Analytic Learner

Ordering information

Active styleLearn by doing things actively

Reflective styleLearn by looking at examples

Types of Adaptive Strategies

• Instructional strategies- selection of media items- ordering information / different navigation paths

• Instructional meta-strategies – monitoring e.g., preferences for:- certain types of information (e.g. text vs. image)- reading order (e.g. breadth-first vs. depth-first)

Classification of Actions in Adaptive Strategies (from N. Stash)

Basic actions on items Selection Showing the content of an itemShowing a link to an itemDefaults

Hierarchical actions on items Actions on child itemsActions on parent items

Actions on groups of items (e.g. siblings)

Ordering Performing “actions on items” on each group item

Actions on the overall environment

Changing the layout of the presentation

LAG LANGUAGE

What does the LAG adaptation language do?

• Turing-complete ? – no!• Captures adaptation patterns, typical for AHS,

for reuse• We start with a set of desired adaptive behavior:

– Inherited from direct adaptation techniques: If => Action

– Conditions, Enough conditions– We add more, depending on adaptivity requirements

If, enough

    if UM.knowledge > 1 then (      PM.GM.Concepts.show = true    )

for-each enough( GM.Concept.weight > 2              GM.Concept.label == interesting             ,1) (PM.GM.Concept.show = true)

Select• selecting concept representation• In MOT, given by attributes, so LAG has:

– DM.Concept.attribute– GM.Concept – E.g., presentation only:

• PM.DM.Concept.attribute.show• PM.GM.Concept.show• PM.GM.Concepts.show

Sort• Sequencing concept representation• Content is sorted alphanumerically on the

Concept’s “order” variable• Order of the current concept:

– PM.GM.Concept.order • Defaults to Null

Show Content/Link• Showing content of a concept

– PM.DM.Concept.attribute.show– PM.GM.Concept.show

• Showing the concept in a specific area of the presentation:– PM.MENU.GM.Concept.show– PM.CONTENT.GM.Concept.show

Show Links• Displaying a link to a concept• No difference, only in the navigational areas

can they be made available:– PM.TODO.GM.Concept.show

• Navigational areas are displayed by default. To switch them off we need:– PM.MENU = false

setDefault • setting defaults

FOR-EACH true( PM.GM.Concept.show[label = ‘’] = true)

Hierarchical actions

• Hierarchy attributes:– Parent: the parent concept of a given concept:GM.Concept.parent– Child: the child concept of a given concept:GM.Concept.child

GM.Concept.parent.childGM.Concept.group

updates• updating the User Model

Overlay variable:UM.GM.Concept.knowledge = 1

Free variable:UM.knowledge += 1

Actions on groups of items

• for-each GM.Concept.label == mylabel (    if GM.Concept.weight > 1 then (      PM.GM.Concept.show = false    ))

• PM.GM.Concepts.show = true

Dealing with multiple labels• Example of LIKE     if (GM.Concept.label LIKE *text*) then (

PM.GM.Concept.show = false)

Concepts & their contentsStressing the overlay structure of user

model on top of • Conceptmaps (DM)

– UM.DM.stereotype1 = beg• or Lessons (GM):

– UM.GM.stereotype1 = beg• or as independent variables:

– UM. stereotype1 = beg

Concepts & their contentsStressing the overlay structure of

presentation model on top of • Lessons (GM):

– PM.GM.Concepts.show = true– UM.GM.knowledge

Type & Order & Label of Attributes

• Type of Attributes (in Lessons) usage– GM.Concept.type == title – DM.Concept.<attribute>.type == title

• Order of Attributes (in Lessons) usage– PM.GM.Concept.order = 3

• Labels, weights of attributes (in Lessons) usage– GM.Concept.label == beg– GM.Concept.label LIKE *beg*

Special attributes

• Event attributes: – Access: a concept is currently been accessed:UM.GM.Concept.access = true– Accessed: display count for a GM conceptUM.GM.Concept.accessed > 1

Multiple Selection & Actions• Show all concepts that have not been

accessed by the user– PM.GM.Concepts[UM.accessed<1].show = true

• That shows all concepts in the GM where UM.GM.Concept.accessed < 1

Layout Adaptation

Layout Adaptation• Menu• Progress Bars• List• Text

Default Layout

Menu

Progress Bars

ListText

Layout Adaptation• Set the layout for an area

– Layout[E].type = todo– Layout[E].title = “Todo List”

• Set a HTML/Text Layout– Layout[S].type = text– Layout[S].content = “<img src=logo.jpg/>”

Dimming• Example of Dimming content     if (GM.Concept.label == “dimthis”)

then (PM.GM.Concept.dim = true

)

Overall structure of a LAG adaptation strategy

// Description// Variablesinitialization (// what the user sees first)implementation (// how the user interacts with the system)

Meta-strategies• strategy “[Stored Strategy Name]” “[Code to Execute]”• Meta-Strategy Exampleinitialization(  strategy "qoeSetup" "initialization")implementation(  strategy "qoeSetup" "implementation"  strategy "qoeQOS" "implementation"  strategy "qoeMM" "implementation")

LAG resources

• LAG Example Strategies: http://adaptive.dcs.warwick.ac.uk/

• LAG Guide including Semantics and examples: http://adaptive.dcs.warwick.ac.uk/lagGuide.pdf

• LAG Grammar:– http://adaptive.dcs.warwick.ac.uk/LAGGrammar.txt

LAG Example: RolloutThis strategy slowly rolls out (and hides) the attributes

of concepts based on how often a concept has been accessed. Concepts are monitored through the title attribute.

Concept.beenthere keeps track of visits; Concepts have the label "showatmost" if they should disappear after a while (with weight indicating the number of visits required) and the label "showafter" if they should show up after a while (again, weight indicates the number of visits)

Rollout Visual Example

LAG Example: Rollout Code 1/2• Initialization (

  UM.GM.Concepts.beenthere = 0  PM.GM.Concepts.show = true

  for-each GM.Concept.label == showafter (    if GM.Concept.weight > 1 then (      PM.GM.Concept.show = false    )  ))

LAG Example: Rollout Code 2/2implementation (  for-each UM.GM.Concept.access == true (     UM.GM.Concept.beenthere += 1   )   for-each enough(UM.GM.Concept.beenthere >= GM.Concept.weight             GM.Concept.label == showatmost             ,2) (    PM.GM.Concept.show = false  )  for-each enough(UM.GM.Concept.beenthere >= GM.Concept.weight             GM.Concept.label == showafter             ,2) (    PM.GM.Concept.show = true  ))

LAG Example: BegIntAdv

• This strategy shows the beginner concepts first (together with the concepts for all learners).

• After all beginner concepts are read, the intermediate concepts are shown as well;

• Finally, after all the intermediate concepts are read, the advanced concepts are shown and the course can be viewed completely

LAG Example: BegIntAdv 1/4initialization(

  PM.next = true  PM.ToDo = true  PM.menu = true  

UM.GM.knowlvl = beg...

LAG Example: BegIntAdv 2/4  for-each (true) (

    if ( GM.Concept.label == "beg") then (      PM.GM.Concept.show = true      UM.GM.begnum += 1    ) elseif (GM.Concept.label == "int") then (      PM.GM.Concept.show = false      UM.GM.intnum += 1    ) elseif (GM.Concept.label == "adv") then (      PM.GM.Concept.show = false    ) else (      PM.GM.Concept.show = true    )  ))

LAG Example: BegIntAdv 3/4

implementation (

  for-each ( UM.GM.Concept.access == true ) (    if (UM.GM.Concept.accessed == 1) then (      if (GM.Concept.label == beg) then (        UM.GM.begnum -= 1      ) elseif (GM.Concept.label == int) then (        UM.GM.intnum -= 1      )     )  ) ...

LAG Example: BegIntAdv 4/4

  if (UM.GM.begnum < 1 and UM.GM.knowlvl == beg) then (    UM.GM.knowlvl = int    PM.GM.Concepts[GM.label == UM.GM.knowlvl].show = true  ) elseif (UM.GM.intnum < 1 and UM.GM.knowlvl == int) then (    UM.GM.knowlvl = adv    PM.GM.Concepts[GM.label == UM.GM.knowlvl].show = true  ))

LAG Example: instance usage

initialization ( PM.GM.Concepts.show = false '\Neural Networks II\Neural Networks I\title'.show =

true)

LAG Example: Parent/Child

implementation (// if you visited the parent you should be able to visit the child

for-each (UM.GM.Concept.parent.access == true) then ( GM.Concept.show = true

))

LAG Example: Positioning 1/2initialization (

PM.CONTENT.GM.Concepts.show = true

for-each (GM.Concept.label == menu) then ( PM.MENU.GM.Concept.show = true ) for-each (GM.Concept.label == todo) then ( PM.TODO.GM.Concept.show = true ) for-each (GM.Concept.label == next) then ( PM.NEXT.GM.Concept.show = true ))

LAG Example: Positioning 2/2implementation ( for-each (UM.GM.Concept.accessed > 0) then ( PM.MENU.GM.Concept.show = true ))

LAG grammarLAG : initialization implementationinitialization : "initialization" LEFT_PAREN command_block? RIGHT_PARENimplementation : "implementation" LEFT_PAREN command_block? RIGHT_PARENcommand_block : statement (NEWLINE statement)*statement : ifstat | whilestat | action | stratstat | foreachstat stratstat : "strategy" NAME NAMEwhilestat : "while" condition LEFT_PAREN command_block RIGHT_PARENifstat : "if" condition "then" LEFT_PAREN command_block RIGHT_PAREN

elseif* elseblock?elseblock : "else" LEFT_PAREN command_block RIGHT_PAREN;elseif : "elseif" condition "then“ LEFT_PAREN command_block

RIGHT_PARENforeachstat : foreach condition LEFT_PAREN command_block RIGHT_PARENcondition_block : condition (NEWLINE condition)*enough : "enough" LEFT_PAREN condition_block "," NUMBER RIGHT_PARENaction : variable OP atomvalue : TRUE | FALSE | NUMBER | NAMEobject : variable | value

LAG grammarvariable : GENCONCEPTATTR -> ^(VAR GENCONCEPTATTR)condition : conditionCOMP ((AND|OR) conditionCOMP)*conditionCOMP : calculation (COMPARE calculation)* | enoughcalculation : atom (SIGN atom)*atom : object | conditionLAOSCM : 'DM' | 'GM' | 'UM' | 'PM' | 'CM' | 'dm' | 'gm' | 'um' | 'pm' | 'cm'SIGN : '+' | '-' | '*' | '/';OP : '=' | '+=' | '-=' | '.=';COMPARE : '==' | '!=' | ('<' | '>')('='|)| ('I'|'i') ('N'|'n')| ('L'|'l') ('I'|'i') ('K'|'k') ('E'|'e'); GENCONCEPTATTR

: LAOSCM (DOT LAOSCM)? (DOT (GROUP|CONCEPTS|RELATIONS|LABELS|CHILDREN|CONCEPT|SOCKET|PARENT) ('[' NONCONTROL_CHAR+ ']')? )* (DOT NAME)?;

Grammar + SemanticsLAG : initialization implementation• LAG: A LAG strategy or procedure, containing a set of instructions (programming constructs)

defining the user and presentation adaptation in an adaptive hypermedia environment.• INITIALIZATION: The static initialization part of PROG; in this part, the initial experience of the

user, when entering the adaptive environment, is described. This is useful so that a user doesn’t enter a void environment. Here, all the default decisions are set. Adaptive environments which are adaptable but not adaptive can only render this part.

• IMPLEMENTATION: The dynamic implementation part of PROG; in this part, the interactivity between the adaptive environment and the user is described (for instance, the effect of user clicks).

Grammar + Semantics (cont)statement : ifstat | whilestat | action | stratstat | foreachstat • STATEMENT: The LAG language is a simple language built of a number of

programming constructs, or statements, as follows:– FOREACHSTAT: This loop statement conditionally selects Concepts that

can then be referenced by the [UM/PM].[GM/DM].Concept statements.– IFSTAT: condition-action rules: the basic building block of the adaptation

language. – WHILESTAT: loops– ACTION: This is part of the basic building block of condition-actions. It

can be used by itself, as if the condition attached to it would be set to TRUE. This statement is the only one that allows specification of updates and changes of visible (such as the current screen) or invisible (such as the user knowledge) variables.

– STRATSTAT: This statement executes initialization or implementation blocks from other external strategies.

Classification of Actions in Adaptive Strategies (from N. Stash)

Basic actions on items Selection Showing the content of an itemShowing a link to an item

Hierarchical actions on items Actions on child itemsActions on parent items

Actions on groups of items (e.g. siblings)

Ordering Performing “actions on items” on each group item

Actions on the overall environment

Changing the layout of the presentation

LAG-XLS:an XML Learning Style Adaptation Language

Elements of the language:• select – selecting concept representation• sort – sequencing concept representation• showContent – showing content of a concept• showLink – showing link to a concept• setDefault – setting defaults • actions – updating the User Model

Select• selecting concept representation• <select attributeName="media">

sort• sequencing concept representation

showContent• showing content of a concept<showContent>image</showContent>

showLink • showing link to a concept

<showLink> <linkTo>text</linkTo> <comment>See textual information</comment> </showLink>

setDefault • setting defaults

<showContentDefault>default</showContentDefault>

actions • updating the User Model

<action attributeName="media"> <UMvariable>personal.VERBvsIM</UMvariable>

<expression>personal.VERBvsIM-5</expression></action>

Examples LAG-XLS

Verbalizer versus Imager

<if><condition>personal.VERBvsIM &lt; 30</condition> <then> <select attributeName="media"> <showContent>image</showContent> <showContentDefault>default</showContentDefault> <showLink> <linkTo>text</linkTo> <comment>Textual information</comment> </showLink> </select> </then> </if>

<if><condition>personal.VERBvsIM &gt; 70</condition> <then> <select attributeName="media"> <showContent>text</showContent> <showContentDefault>default</showContentDefault> <showLink> <linkTo>image</linkTo> <comment>Pictorial information</comment> </showLink> </select> </then> </if>

Monitoring Strategy:Image versus Text Preference

<if><condition>personal.initial.VERBvsIM > 29 & personal.initial.VERBvsIM < 71 & personal.traceTextvsImage & concept.media==“image” & concept.visited==0 & !parent.text</condition><then> <action attributeName="media"> <UMvariable>personal.VERBvsIM</UMvariable><expression>personal.VERBvsIM-5</expression></action></then></if>

<if><condition>personal.initial.VERBvsIM > 29 & personal.initial.VERBvsIM < 71 & personal.traceTextvsImage & concept.media==“text” & concept.visited==0 & !parent.image </condition><then> <action attributeName="media"> <UMvariable>personal.VERBvsIM</UMvariable><expression>personal.VERBvsIM+5</expression></action></then></if>

Inferring preferences: text vs. image

UM: personal.VERBvsIM-5

UM: personal.VERBvsIM+5

Presentation for Verbalizer

Presentation for Imager

Contents• Motivation• Adaptation Language as an Intermediate Platform• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and LAG-XLS• Conclusion

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE strategy SYSTEM "../strategy.dtd"> <strategy name="VerbalizerVersusImager"> <description>Strategy for "Verbal" versus "Visual“

style</description> <if> <condition>personal.VERBvsIM &lt; 30</condition> <then> <select attributeName="media"> <showContent>image</showContent>

<showContentDefault>default</showContentDefault>

<showLink> <linkTo>text</linkTo> <comment>See textual information</comment> </showLink> </select> </then> </if> …</strategy>

Imager (Visualizer) strategyLAG LAG-XLS

if UM.GM.VERBvsIM < 30 && GM.Concept.type == imagethen PM.GM.Concept.show

<if><condition>personal.initial.VERBvsIM < 29 & personal.initial.VERBvsIM > 71 & personal.traceTextvsImage & concept.media==“image” & concept.visited==0 & !parent.text</condition><then> <action attributeName="media"> <UMvariable>personal.VERBvsIM</UMvariable><expression>personal.VERBvsIM-5</expression></action></then></if>

Monitoring Strategy: Preference for Image

LAG LAG-XLSif UM.GM.VERBvsIM < 29 && UM.GM.VERBvsIM > 71 && UM.GM.traceTextvsImage == true && GM.Concept. type == image && DM.GM.Concept.access == true && ?? then UM.VERBvsIM -= 5

Contents• Motivation• Adaptation Language as an Intermediate Platform• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

Conclusion

• Extracted intelligence• Presented 2 adaptation languages:

- LAG- LAG-XLS

Questions