240 likes | 356 Views
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.
E N D
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 Invited Tutorial, Madrid, Spain April 2008
What does the LAG adaptation language do? • Captures adaptation patterns, typical for AHS, for reuse • We start with a set of desired adaptive behavior: • While, For + Break, Generalize, Specialize • Conditions, Enough 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 grammar PROG DESCRIPTION VARIABLES INITIALIZATION IMPLEMENTATION DESCRIPTION // “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 VALUE CONDITION enough((CONDITION)+, VALUE) | PREREQ PREREQ ATTRIBUTE COMPARE VALUE ATTRIBUTE GENCONCEPTATTR | SPECCONCEPTATTR SPECCONCEPTATTR ‘\SPECCONMAP\SPECCON\SPECATTR\ATTR’.ATTRATTR LAOSCM, LAOSCONCEPTMAP DM | GM | UM | PM | CM 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” 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 example implementation ( 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 beginner UM.GM.stereotype1 = beg // initialize sets of lesson concepts for stereotypes // AHA! 'personal' variable; name = 'GMname'+'stereotypename' UM.GM.beginnerno = 0 UM.GM.intermediateno = 0 UM.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 texts while GM.Concept.label == int ( UM.GM.intermediateno += 1 UM.GM.Concept.first = true ) // compute number of advanced texts while 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 items if 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 appropriate if (UM.GM.beginnerno == 0) then UM.GM.stereotype1 = int // show to intermediate only what is relevant if 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 items if 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 appropriate if (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 relevant if enough( GM.Concept.label == adv UM.GM.stereotype1 == adv , 2 ) then ( PM.GM.Concept.show = true ) ) Invited Tutorial, Madrid, Spain April 2008
Questions? Invited Tutorial, Madrid, Spain April 2008