LAG language

24
LAG language Dr. Alexandra Cristea [email protected] http://www.dcs.warwick.ac.uk/ ~acristea/

description

LAG language. Dr. Alexandra Cristea [email protected] http://www.dcs.warwick.ac.uk/~acristea/. LAG Grammar & Semantics. Grammar: http://wwwis.win.tue.nl/~acristea/MOT/help/LAGgrammar%5B2%5D.doc Semantics: http://wwwis.win.tue.nl/~acristea/MOT/help/LAGgrammarSemantics.doc. - PowerPoint PPT Presentation

Transcript of LAG language

Page 1: LAG language

LAG language

Dr. Alexandra [email protected]

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

Page 2: LAG language

Invited Tutorial, Madrid, Spain April 2008

LAG Grammar & Semantics

• Grammar:– http://wwwis.win.tue.nl/~acristea/MOT/help/

LAGgrammar%5B2%5D.doc

• Semantics: – http://wwwis.win.tue.nl/~acristea/MOT/help/

LAGgrammarSemantics.doc

Page 3: LAG language

Invited Tutorial, Madrid, Spain April 2008

What does the LAG adaptation LAG adaptation languagelanguage do?• Captures adaptation patterns, typical for

AHS, for reuse• We start with a set of desired adaptive

behavior:– WhileWhile, ForFor + BreakBreak, GeneralizeGeneralize, SpecializeSpecialize– ConditionsConditions, EnoughEnough conditions– Inherited from direct adaptation

techniques: If, Action

Page 4: LAG language

Invited Tutorial, Madrid, Spain April 2008

Extended LAG for MOT

• For more expressivity and addressing different attributes of concepts, some extensions were performed:– Addressing of concepts & their contents was

improved– Global structure of the strategy was improved

Page 5: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 6: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 7: LAG language

Invited Tutorial, Madrid, Spain April 2008

Special attributes• 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

• also should not be used: – showability

Page 8: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 9: LAG language

Invited Tutorial, Madrid, Spain April 2008

Type & Order & Label of Attributes• Type of Attributes (in Lessons) usage

– GM.Concept.type = title

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

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

Page 10: LAG language

Invited Tutorial, Madrid, Spain April 2008

Overall structure of the adaptation strategy// Description

// Variables

initialization (

// what the user sees first

)

implementation (

// how the user interacts with the system

)

Page 11: LAG language

Invited Tutorial, Madrid, Spain April 2008

Example strategies• http://prolearn.dcs.warwick.ac.uk/• http://www.dcs.warwick.ac.uk/~acristea/

HTML/USI/MOT/MOT2AHA!/mot2aha-v4.txt• http://

www.dcs.warwick.ac.uk/~acristea/HTML/USI/MOT/MOT2AHA!/mot2aha-beg-int-adv.txt

• http:// www.dcs.warwick.ac.uk/~acristea/HTML/USI/MOT/MOT2AHA!/mot2aha-beg-int-adv.txt

Page 12: LAG language

Invited Tutorial, Madrid, Spain April 2008

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”

Page 13: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 14: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 15: LAG language

Invited Tutorial, Madrid, Spain April 2008

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.parent.child.beenthere >= GM.Concept.weight GM.Concept.label == showafter ,2) then ( PM.GM.Concept.show = true ))

Page 16: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 17: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

// …)

Page 18: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 19: LAG language

Invited Tutorial, Madrid, Spain April 2008

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 )

Page 20: LAG language

Invited Tutorial, Madrid, Spain April 2008

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 )

…)

Page 21: LAG language

Invited Tutorial, Madrid, Spain April 2008

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 )

Page 22: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 23: LAG language

Invited Tutorial, Madrid, Spain April 2008

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

Page 24: LAG language

Invited Tutorial, Madrid, Spain April 2008

• Questions?