Explicit Intelligence in Adaptive Hypermedia: Generic Adaptation Languages Alexandra Cristea

Preview:

Citation preview

Explicit Intelligence in Adaptive Hypermedia: Generic Adaptation Languages

Alexandra Cristea

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

Contents• Motivation

– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

Contents• Motivation

– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

“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”)

LAG language

Dr. Alexandra Cristeaa.i.cristea@warwick.ac.uk

http://www.dcs.warwick.ac.uk/~acristea/

What does the LAG adaptation LAG adaptation languagelanguage 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 – ConditionsConditions, EnoughEnough conditions– We could add more: e.g., WhileWhile, ForFor + BreakBreak,

GeneralizeGeneralize, SpecializeSpecialize

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

Basic actions on items Selection

Showing the content of an item

Showing a link to an item

Defaults

Hierarchical actions on items Actions on child items

Actions 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

Select

• selecting concept representation

• In MOT, given by attributes, so LAG has:– DM.Concept.attribute or– GM.Concept or GM.Concept.attribute– Or presentation only:– PM.DM.Concept.attribute.show– PM.GM.Concept.show

sort

• sequencing concept representation

• Order of the current concept:– GM.Concept.order

showContent

• showing content of a concept– PM.DM.Concept.attribute.show– PM.GM.Concept.show

showLink

• showing link to a concept

• No difference, only in the menu links can be made available:– PM.DM.Concept.attribute.show– PM.GM.Concept.show

• For having a menu, we need:– PM.menu = true

setDefault

• setting defaults

WHILE GM.Concept.label == ‘’

( PM.GM.Concept.show = true)

actions

• updating the User Model

Overlay variable:

UM.GM.Concept.knowledge +=1

Free variable:

UM.knowledge += 1

Concepts & their contents

Stressing 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 contents

Stressing the overlay structure of presentation model on top of

• Conceptmaps (DM) – PM.DM.show = true

• or Lessons (GM):– PM.GM.show = true

Special attributes• As few as possible!• Event attributes:

– Access: a concept has been seen by the user:

UM.GM.Concept.access = true

• Hierarchy attributes:– Parent: the parent concept of a given concept:

DM.Concept.parent– Child: the child concept of a given concept:

GM.Concept.child

Presentation model versions

• the presentation model (e.g., reflected in the AHA! delivery engine)      PM.GM.next = true // or PM.next // next button appears, showing the next most appropriate concept            //according to the order in MOT and the showability       PM.GM.ToDo = true // a list of items still to open appears, that are

//showable and have not been visited yet;           // their order reflects the order in MOT ; also PM.ToDo      PM.GM.menu = true // table of contents that is already used in AHA,

// should be also able to dissapear ; also PM.menu

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– GM.Concept.order

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

Overall structure of the LAG adaptation strategy// Description

// Variables

initialization (

// what the user sees first

)

implementation (

// how the user interacts with the system

)

Example strategies

• http://prolearn.dcs.warwick.ac.uk/

Extended LAG: Adaptation strategy example// DESCRIPTION// This 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)

// VARS// UM.GM.Concept.beenthere, GM.Concept.label, GM.Concept.weight

Extended LAG: Adaptation strategy example

initialization(

while true ( UM.GM.Concept.beenthere = 0 PM.GM.Concept.show = true ) while GM.Concept.label == showafter ( if GM.Concept.weight > 1 then ( PM.GM.Concept.show = false ) else ( PM.GM.Concept.show = true ) ))

Extended LAG: Adaptation strategy exampleimplementation (

if UM.GM.Concept.access == true then ( UM.GM.Concept.beenthere += 1 )

if enough(UM.GM.Concept.beenthere >= GM.Concept.weight GM.Concept.label == showatmost ,2) then ( PM.GM.Concept.show = false )

if enough(UM.GM.Concept.beenthere >= GM.Concept.weight GM.Concept.label == showafter ,2) then ( PM.GM.Concept.show = true ))

Extended LAG: Adaptation strategy example 2

// DESCRIPTION// strategy which 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// Note: this is inspired from games, where the player can only look at

the current level at the beginning, but when he manages to finish the level, he can access the next level, as well as all the levels below.

// VARS// UM.GM.beginnerno, UM.GM.intermediateno, UM.GM.advancedno,

GM.Concept.label, PM.GM.Concept.show, UM.GM.Concept.first, UM.GM.stereotype1

Extended LAG: Adaptation strategy example 2

initialization(

// INITIALIZATION// initialize as beginnerUM.GM.stereotype1 = beg

// initialize sets of lesson concepts for stereotypes// AHA! 'personal' variable; name = 'GMname'+'stereotypename'UM.GM.beginnerno = 0UM.GM.intermediateno = 0UM.GM.advancedno = 0

// …)

Extended LAG: initialization (ex.2)

• // as long as still general concepts available, make those readable• while GM.Concept.label == null • ( • PM.GM.Concept.show = true• UM.GM.Concept.first = true• )

• // compute number beginner texts• // as long as still beginner concepts available, make those readable• while GM.Concept.label == beg • ( • UM.GM.beginnerno += 1 • PM.GM.Concept.show = true• UM.GM.Concept.first = true• )

Extended LAG: initialization (ex.2)

// compute number of intermediate textswhile GM.Concept.label == int ( UM.GM.intermediateno += 1 UM.GM.Concept.first = true )

// compute number of advanced textswhile GM.Concept.label == adv ( UM.GM.advancedno += 1 UM.GM.Concept.first = true )

Extended LAG: implementation (ex.2)

implementation (

// IMPLEMENTATION// remove already access itemsif enough( UM.GM.Concept.access == true UM.GM.Concept.first == true GM.Concept.label == beg , 3 ) then ( UM.GM.beginnerno -= 1 UM.GM.Concept.first = false )

…)

Extended LAG: implementation (ex.2)

// change from beginner to intermediate if it is appropriateif (UM.GM.beginnerno == 0) then UM.GM.stereotype1 = int

// show to intermediate only what is relevantif enough( GM.Concept.label == int UM.GM.stereotype1 == int , 2 ) then ( PM.GM.Concept.show = true )

Extended LAG: implementation (ex.2)

// remove already access itemsif enough( UM.GM.Concept.access == true GM.Concept.label == int UM.GM.Concept.first == true , 3 ) then ( UM.GM.intermediateno -= 1 UM.GM.Concept.first = false )

// change from intermediate to advanced if it is appropriateif (UM.GM.intermediateno == 0) then UM.GM.stereotype1 = adv

Extended LAG: implementation (ex.2)

// show to advanced only what is relevantif enough( GM.Concept.label == adv UM.GM.stereotype1 == adv , 2 ) then ( PM.GM.Concept.show = true ) )

Another example (Ex.3)initialization ( while true ( PM.GM.Concept.show = false ) '\Neural Networks II\Neural Networks I\title'.show = true)implementation (

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

if UM.GM.Concept.parent.access then ( GM.Concept.show = true

))

LAG Grammar & Semantics

• Grammar:– http://www.dcs.warwick.ac.uk/~acristea/M

OT/help/LAGgrammar%5B2%5D.doc

• Semantics: – http://www.dcs.warwick.ac.uk/~acristea/M

OT/help/LAGgrammarSemantics.doc

LAG grammarPROG DESCRIPTION VARIABLES INITIALIZATION IMPLEMENTATIONDESCRIPTION // “text”VARIABLES // “text” INITIALIZATION initialization ( STATEMENT )IMPLEMENTATION implementation ( STATEMENT )STATEMENT IFSTAT | WHILESTAT | FORSTAT | BREAKSTAT | GENSTAT |

SPECSTAT | (STATEMENT)* STATEMENT |ACTION IFSTAT if CONDITION then (STATEMENT)+ | if CONDITION then

(STATEMENT) + else (STATEMENT)+WHILESTAT while CONDITION (STATEMENT)+ [TARGETLABEL]ACTION ATTRIBUTE OP VALUECONDITION enough((CONDITION)+, VALUE) | PREREQPREREQ ATTRIBUTE COMPARE VALUEATTRIBUTE GENCONCEPTATTR | SPECCONCEPTATTRSPECCONCEPTATTR ‘\SPECCONMAP\SPECCON\SPECATTR\

ATTR’.ATTRATTRLAOSCM, LAOSCONCEPTMAP DM | GM | UM | PM | CMATTR Attribute | title | keywords | text | introduction | conclusion | exercise | child | parent | Relatedness | ATTR.ATTR |

CONCEPT.ATTR |label | weight | “text”ATTRATTR type | order | next | ToDo | menu | show | access | visited | “text”

Grammar + SemanticsPROG DESCRIPTION VARIABLES INITIALIZATION IMPLEMENTATION • PROG: A LAG strategy or procedure, containing a set of instructions (programming

constructs) defining the user and presentation adaptation in an adaptive hypermedia environment.

• DESCRIPTION: The description of PROG; contains a natural language description of the behavior of the adaptive strategy; it serves as the label (meta-description) for the whole strategy. It is important, as laic (non-programmer) authors should be able to extract from it the necessary elements to make a decision about using this adaptation or not.

• VARIABLES: The variables of PROG; contains the list of variables that are used in the adaptive strategy. This information can be used by a laic (non-programmer) author to decide what attributes of the GM (goal and constraints model) should be filled-in for this strategy.

• 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)

INITIALIZATION initialization ( STATEMENT )IMPLEMENTATION implementation ( STATEMENT )STATEMENT IFSTAT | WHILESTAT |

(STATEMENT)*STATEMENT |ACTION • STATEMENT: The LAG language is a simple language built of a number

of programming constructs, or statements, as follows:– 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.

Grammar + Semantics (cont)

IFSTAT if CONDITION then (STATEMENT)+ | if CONDITION then (STATEMENT) +

else (STATEMENT)+WHILESTAT while CONDITION (STATEMENT)+ACTION ATTRIBUTE OP VALUE OP = | += | -= | .=VALUE true | false | “text”

Grammar + Semantics (cont)

CONDITION enough((CONDITION)+, VALUE) | PREREQPREREQ ATTRIBUTE COMPARE VALUE

ATTRIBUTE GENCONCEPTATTR | SPECCONCEPTATTR

COMPARE == | < | > VALUE “number”

• CONDITION: for CA or ECA rules, specified by 1-enough prerequisites– enough: number VALUE of conditions should be fulfilled.

• ATTRIBUTE: appears in conditions or actions; can be a generic attribute of DM, GM, UM or PM (e.g., UM.DM.Concept.knowledge); or can be specific (e.g., ‘\Neural Networks Map\Learning\Introduction\Weight’.show). For reusability use generic!

Grammar + Semantics (cont)GENCONCEPT ATTR LAOS.CONCEPT.ATTR |

LAOS.CONCEPT.ATTR.ATTRATTR | LAOS.ATTR | LAOS.LAOS.ATTRATTR | LAOS.LAOS.CONCEPT.ATTR.ATTRATTR

SPECCONCEPTATTR ‘\SPECCONMAP\SPECCON\SPECATTR\ATTR’.ATTRATTR

LAOS DM | GM | UM | PMCONCEPT Concept | “text”ATTR Attribute | title | keywords | text | introduction | conclusion | exercise | child | parent | Relatedness | ATTR.ATTR | CONCEPT.ATTR |

label | weight | “text”ATTRATTR type | order | next | ToDo | menu | show | access | visited | “text”SPECCONMAP “text”SPECCON “text”SPECATTR “text”

Contents

• Motivation– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

How to create an adaptation language?• Adaptation Language as an Intermediate

Platform (between authoring environment and adaptation engine)

• 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 style

Global overview first, then details

Presentation for Visual+Global Learner

Presentation for Verbal+Analytic Learner

Ordering information

Active style

Learn by doing things actively

Reflective style

Learn by looking at examples

Contents

• Motivation– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

• Adaptation Language as an Intermediate Platform• Having found the elements of course dynamics, we

need to find out what variation we have in terms of:

–Types of adaptive strategies

Types of Adaptive Strategies

• Instructional strategies- selection of media items

- ordering information or providing different navigation paths

• Instructional meta-strategies – inference or monitoring strategies. Preferences for:- certain types of information (e.g. text vs. image)

- reading order (e.g. breadth-first vs. depth-first)

Contents• Motivation

– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)

Authoring of learning styles in LAG and AHA!• Conclusion

• Adaptation Language as an Intermediate Platform

• Having found the elements of course dynamics, and the types of adaptation strategies, we need to find out the:–Classification of actions in adaptive

strategies

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

Basic actions on items Selection

Showing the content of an item

Showing a link to an item

Hierarchical actions on items Actions on child items

Actions 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

Contents

• Motivation– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• LAG-XLS (XML LS adaptation language) (& AHA!) • LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

AHA! Adaptive Hypermedia Architecture

WWW server

User(student)

Author

DM/AMlocal

pages

Manager

Authoring tools

ConceptEditorGraph Author

Java Applets

AHA! engine

Java servlets

DM - Domain ModelAM - Adaptation ModelUM - User Model

Pages from externalWWW servers

UM

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

Basic actions on items Selection

Showing the content of an item

Showing a link to an item

Hierarchical actions on items Actions on child items

Actions 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– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• 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 (old) LAG-XLS

<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 ImageLAG LAG-XLS

Contents

• Motivation– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• 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

Contents

• Motivation– “Authoring problem” & solutions– Comparison of 2 adaptation languages, focus on learning styles

(LS)

• Adaptation Language as an Intermediate Platform– Elements of course dynamics– Types of adaptive strategies– Classification of actions in adaptive strategies

• AHA! & LAG-XLS (XML LS adaptation language)• LAOS & LAG (generic adaptation language)• Authoring of learning styles in LAG and AHA!• Conclusion

• Questions?

Recommended