lag language
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 PresentationTRANSCRIPT
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?