1 / 74

Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia

Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia . Dr. Alexandra Cristea a.i.cristea@warwick.ac.uk http://www.dcs.warwick.ac.uk/~acristea/. LAOS Model. Adaptation granularity. lowest level : direct adaptation techniques :

keefer
Download Presentation

Generic Adaptation Languages Explicit Intelligence in Adaptive Hypermedia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GenericAdaptation Languages Explicit Intelligence in Adaptive Hypermedia • Dr. Alexandra Cristea • a.i.cristea@warwick.ac.uk • http://www.dcs.warwick.ac.uk/~acristea/

  2. LAOSModel

  3. 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

  4. 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

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

  6. How to create an adaptation language? • 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:

  7. Selection of Media Items • Visual style • Diagrams • Illustrations • Graphs • Flowcharts • Animations+ audio • Verbal style • More text • Possibly audio

  8. Providing navigation paths Sequential style Linear step-by-step learning process Global style Global overview first, then details

  9. Presentation for Visual+Global Learner

  10. Presentation for Verbal+Analytic Learner

  11. Ordering information Reflective style Learn by looking at examples Active style Learn by doing things actively

  12. Types of Adaptive Strategies • Instructional strategies - selection of media items - ordering information / different navigation paths • Instructional meta-strategies– monitoring e.g., preferences for: - certain types of information (e.g. text vs. image) - reading order (e.g. breadth-first vs. depth-first)

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

  14. LAG language

  15. What does the LAG adaptation language 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 • Conditions, Enough conditions • We add more, depending on adaptivity requirements

  16. If, enough ifUM.knowledge > 1 then (PM.GM.Concepts.show = true) for-eachenough(GM.Concept.weight > 2GM.Concept.label== interesting,1) (PM.GM.Concept.show = true)

  17. Select • selecting concept representation • In MOT, given by attributes, so LAG has: • DM.Concept.attribute • GM.Concept • E.g., presentation only: • PM.DM.Concept.attribute.show • PM.GM.Concept.show • PM.GM.Concepts.show

  18. Sort • Sequencing concept representation • Content is sorted alphanumerically on the Concept’s “order” variable • Order of the current concept: • PM.GM.Concept.order • Defaults to Null

  19. Show Content/Link • Showing content of a concept • PM.DM.Concept.attribute.show • PM.GM.Concept.show • Showing the concept in a specific area of the presentation: • PM.MENU.GM.Concept.show • PM.CONTENT.GM.Concept.show

  20. Show Links • Displaying a link to a concept • No difference, only in the navigational areas can they be made available: • PM.TODO.GM.Concept.show • Navigational areas are displayed by default. To switch them off we need: • PM.MENU = false

  21. setDefault • setting defaults FOR-EACH true ( PM.GM.Concept.show[label = ‘’] = true)

  22. Hierarchical actions • Hierarchy attributes: • Parent: the parent concept of a given concept: GM.Concept.parent • Child: the child concept of a given concept: GM.Concept.child GM.Concept.parent.child GM.Concept.group

  23. updates • updating the User Model Overlay variable: UM.GM.Concept.knowledge = 1 Free variable: UM.knowledge += 1

  24. Actions on groups of items • for-each GM.Concept.label == mylabel (    if GM.Concept.weight > 1 then (PM.GM.Concept.show = false)) • PM.GM.Concepts.show = true

  25. Dealing with multiple labels • Example of LIKE     if (GM.Concept.label LIKE *text*) then (PM.GM.Concept.show = false)

  26. 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

  27. Concepts & their contents Stressing the overlay structure of presentation model on top of • Lessons (GM): • PM.GM.Concepts.show = true • UM.GM.knowledge

  28. 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 • PM.GM.Concept.order = 3 • Labels, weights of attributes (in Lessons) usage • GM.Concept.label == beg • GM.Concept.label LIKE *beg*

  29. Special attributes • Event attributes: • Access: a concept is currently been accessed: UM.GM.Concept.access = true • Accessed: display count for a GM concept UM.GM.Concept.accessed > 1

  30. Multiple Selection & Actions • Show all concepts that have not been accessed by the user • PM.GM.Concepts[UM.accessed<1].show = true • That shows all concepts in the GM where UM.GM.Concept.accessed < 1

  31. Layout Adaptation

  32. Layout Adaptation • Menu • Progress Bars • List • Text

  33. Default Layout Progress Bars Menu List Text

  34. Layout Adaptation • Set the layout for an area • Layout[E].type = todo • Layout[E].title = “Todo List” • Set a HTML/Text Layout • Layout[S].type = text • Layout[S].content = “<imgsrc=logo.jpg/>”

  35. Dimming • Example of Dimming content     if (GM.Concept.label == “dimthis”) then (PM.GM.Concept.dim = true )

  36. Overall structure of a LAG adaptation strategy // Description // Variables initialization( // what the user sees first ) implementation( // how the user interacts with the system )

  37. Meta-strategies • strategy “[Stored Strategy Name]” “[Code to Execute]” • Meta-Strategy Exampleinitialization(  strategy "qoeSetup" "initialization")implementation(  strategy "qoeSetup" "implementation"  strategy "qoeQOS" "implementation"  strategy "qoeMM" "implementation")

  38. LAG resources • LAG Example Strategies: http://adaptive.dcs.warwick.ac.uk/ • LAG Guide including Semantics and examples: http://adaptive.dcs.warwick.ac.uk/lagGuide.pdf • LAG Grammar: • http://adaptive.dcs.warwick.ac.uk/LAGGrammar.txt

  39. LAG Example: Rollout 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)

  40. Rollout Visual Example

  41. LAG Example: Rollout Code 1/2 • Initialization (UM.GM.Concepts.beenthere = 0PM.GM.Concepts.show = true  for-each GM.Concept.label == showafter (    if GM.Concept.weight > 1 then (PM.GM.Concept.show = false    )  ))

  42. LAG Example: Rollout Code 2/2 implementation (for-eachUM.GM.Concept.access == true (UM.GM.Concept.beenthere += 1 )  for-each enough(UM.GM.Concept.beenthere >= GM.Concept.weightGM.Concept.label == showatmost ,2) (PM.GM.Concept.show = false  )  for-each enough(UM.GM.Concept.beenthere >= GM.Concept.weightGM.Concept.label == showafter ,2) (PM.GM.Concept.show = true  ))

  43. LAG Example: BegIntAdv • This strategy 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

  44. LAG Example: BegIntAdv 1/4 initialization(PM.next = truePM.ToDo = truePM.menu = true UM.GM.knowlvl = beg...

  45. LAG Example: BegIntAdv 2/4   for-each (true) (    if ( GM.Concept.label == "beg") then (PM.GM.Concept.show = trueUM.GM.begnum += 1    ) elseif (GM.Concept.label == "int") then (PM.GM.Concept.show = falseUM.GM.intnum += 1    ) elseif (GM.Concept.label == "adv") then (PM.GM.Concept.show = false    ) else (PM.GM.Concept.show = true    )  ))

  46. LAG Example: BegIntAdv 3/4 implementation (  for-each ( UM.GM.Concept.access == true ) (    if (UM.GM.Concept.accessed == 1) then (      if (GM.Concept.label == beg) then (UM.GM.begnum -= 1      ) elseif (GM.Concept.label == int) then (UM.GM.intnum -= 1      )     )) ...

  47. LAG Example: BegIntAdv 4/4   if (UM.GM.begnum < 1 and UM.GM.knowlvl == beg) then (UM.GM.knowlvl = intPM.GM.Concepts[GM.label == UM.GM.knowlvl].show = true  ) elseif (UM.GM.intnum < 1 and UM.GM.knowlvl == int) then (UM.GM.knowlvl = advPM.GM.Concepts[GM.label == UM.GM.knowlvl].show = true  ))

  48. LAG Example: instance usage initialization ( PM.GM.Concepts.show = false '\Neural Networks II\Neural Networks I\title'.show = true )

  49. LAG Example: Parent/Child implementation ( // if you visited the parent you should be able to visit the child for-each (UM.GM.Concept.parent.access == true) then ( GM.Concept.show = true ) )

  50. LAG Example: Positioning 1/2 initialization ( PM.CONTENT.GM.Concepts.show = true for-each (GM.Concept.label == menu) then ( PM.MENU.GM.Concept.show = true ) for-each (GM.Concept.label == todo) then ( PM.TODO.GM.Concept.show = true ) for-each (GM.Concept.label == next) then ( PM.NEXT.GM.Concept.show = true ) )

More Related