LAG language

Post on 05-Jan-2016

22 views 0 download

description

LAG language. Dr. Alexandra Cristea a.i.cristea@warwick.ac.uk 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

LAG language

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

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

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

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

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

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

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

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

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

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

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

)

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

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”

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

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

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

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

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

// …)

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

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 )

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 )

…)

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 )

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

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

Invited Tutorial, Madrid, Spain April 2008

• Questions?