LAG Alexandra I. Cristea UNESCO workshop “Personalization in Education” Feb’04
Overview: LAG What is LAG LAG components Why LAG? New adaptation rules Adaptation strategies
What is LAG?
What is LAG ? a generalized adaptation model for generic adaptive hypermedia authoring First paper: http://wwwis.win.tue.nl/~alex/Conferences/02/AH02/calvi-cristea-final-w-header-ah2002.pdf Second (referring) paper: http://wwwis.win.tue.nl/~alex/Conferences/02/ELEARN02/Cristea-Adaptation-Adaptability.pdf Third paper: http://wwwis.win.tue.nl/~alex/HTML/Minerva/papers/UM03-cristea-calvi-accepted.doc
LAG components
LAG components Direct adaptation Techniques Adaptation Language Adaptation Strategies
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: more 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 (but same strategy for different goals) Adaptation Function calls
Why LAG?
Motivation LAG Authoring with different complexity degrees (beginner authors vs. advanced) Re-usage at each level Better semantics standardization
New adaptation rules proposed (Adaptation Language)
Adaptation ‘Programming’ language level rule: IF ENOUGH(<PREREQUISITES>) THEN<ACTION> temporal rule: WHILE <CONDITION> DO <ACTION> repetition rule: FOR <i=1..n> DO <ACTION> interruption command: BREAK <ACTION> generalization command: GENERALIZE (COND, COND1, …, CONDn) specialization command: SPECIALIZE (COND, COND1, …, CONDn) This type of relaxation of the prerequisites is intuitive, in the sense that it allows the author to write simplified rules, instead of writing a great number of complex ones; the idea is derived from game levels.
A level rule IF ENOUGH(<PREREQUISITES>) THEN<ACTION> ENOUGH = fct. of no. & quality of prerequisites; true if, e.g., a given no. of prerequisites from a set is fulfilled Ex: PREREQUISITES = time_spent; ACTION = “go to next level” Rule becomes: IF ENOUGH (time_spent on crt. level) THEN “go to next level” Where ENOUGH is defined, e.g., as follows: ENOUGH (time) = 30 time units; time (advanced topic) = 10 (time units per topic); ENOUGH (medium topic) = 5 (time units per topic); ENOUGH (beginner topic) = 2 (time units per topic); This type of relaxation of the prerequisites is intuitive, in the sense that it allows the author to write simplified rules, instead of writing a great number of complex ones; the idea is derived from game levels.
A temporal rule: action repeated as long as 1-more cond.s hold: WHILE <CONDITION> DO <ACTION> According to CM paradigm, concepts canned but assembled depending on UM & their attr.s ( more than mere addition/deletion of links) E.g, a warning is repeated that user search direction is wrong. Another cond. can trigger a service denial response if a threshold is passed. To capture unbound minimization, we add therefore the WHILE construct:
A repetition rule: a certain (simple / composed) action repeated for a no. of times predefined by author: FOR <i=1..n> DO <ACTION> describes the time this action has to last before reader can move on. This rule forces the user to reread a concept that is presented to her invariably. In non-educational contexts, this rule might have a lyrical effect– such as a refrain in a song.
An interruption command: user action is interrupted & s/he is forced to undertake a different one: BREAK <ACTION> represents an exacerbation of traditional behavior of AHS: user is “punished” if she doesn’t stick to learning pathways provided by system. The adoption of this rule might be due to lyrical reasons. This is the case in A life set for two [11], where the reader is forced to reach the end of the fiction once she has read a predefined percentage of it In educational contexts, this rule might be used by the author to constraint the user’s explorative behavior within predefined boundaries, i.e., those corresponding to the pedagogical rules implemented in the system.
A generalization command: new concept reader has reached is compared w. more general ones it refers to. As a result, the reader is pointed to related concept(s): GENERALIZE (COND, COND1, …, CONDn) So, the reader has selected a node that describes a certain concept in specific, individual terms. The system “interprets” this as interest about that particular notion & performs an inductive action to point her to more general ones.
A specialization command: if concept is general, system deductively points reader to more specific instantiations: SPECIALIZE (COND, COND1, …, CONDn) E.g, if student reads about “Model Reader” in a course on postmodern literature, she can be pointed to an extract from Calvino’s novel ‘Se una notte’, where this notion is exemplified. or to a further theoretical elaboration on the same topic (by, for example, Genette), or, again, to a description of how this idea is realized in hyperfiction.
Other commands comparison (concept analogy search) & difference both instances of generalization; duration – a rule related to repetition lyrical use of repetitions in hyperfiction has given rise to a particular design pattern
Adaptation Strategies
Adaptive strategies for cognitive styles
converger (abstract, active) medium_increase() : generate adaptive presentation with (obviously) increasing difficulty 1. Explanation: Convergers are abstract and active; they like to feel in control; start with course for intermediates at medium adaptivity level, repeat for a number of times: - evaluate state of learner and start increasing difficulty & decreasing adaptivity level if result=good - evaluate state of learner and start decreasing level if result=bad 2. Translation at medium level: (ENOUGH shows here that the result is above an average result) AdaptLevel= 5; N=AskUser(); # this is to let user feel and be in control; levels: (1=min to 10=max) FOR <I=1..N> DO { SPECIALIZE (ENOUGH(Result)); IF (AdaptLevel>1) AdaptLevel--; GENERALIZE (NOT(ENOUGH(Result))); IF (AdaptLevel<5) AdaptLevel++; } # Note that adaptation level is not allowed to increase too much 3. Translation at low level: (the average can be implemented but takes more space) DiffLevel = 3; AdaptLevel= 5; # note that here there is no predefined number of repetitions IF <ACTION> THEN # Note that above we don’t need the action of the user for triggering; { IF (Result1 +Result2)/2>5 AND DiffLevel<10 THEN # Note that ‘enough’ and specialize { DiffLevel++; IF (AdaptLevel>1) AdaptLevel--;} # must be redefined each time IF (Result1 +Result2)/2<5 AND DiffLevel>1 THEN {DiffLevel--; IF (AdaptLevel<5) AdaptLevel++;} }
diverger (concrete, reflective) low() : generate adaptive presentation with adaptively increasing difficulty Explanation: start with course for beginners at high level of adaptation, from general issues + examples, down + rest as in Table 1 2. Translation at medium level: (ENOUGH same as in Table 1) AdaptLevel= 10; GENERALIZE(); WHILE (not_finished) DO { SPECIALIZE (ENOUGH(Result)); IF (AdaptLevel>5) AdaptLevel--; # Note that we keep adaptation GENERALIZE (NOT(ENOUGH(Result))); IF (AdaptLevel<10) AdaptLevel++; } # level high here 3. Translation at low level: DiffLevel = 1; AdaptLevel= 10; IF <ACTION> THEN { IF (Result1 +Result2)/2>5 AND DiffLevel<10 THEN { DiffLevel++; IF (AdaptLevel>5) AdaptLevel--;} IF (Result1 +Result2)/2<5 AND DiffLevel>1 THEN {DiffLevel--; IF (AdaptLevel<10) AdaptLevel++;}}
assimilator (abstract, reflective) high() : generate adaptive presentation with high difficulty and little adaptivity 1. Explanation: start with course for intermediates at high level adaptation + similar Table 1 2. Translation at medium level: (ENOUGH same as in Table 1) SPECIALIZE(); AdaptLevel= 1; WHILE (not_finished) DO { GENERALIZE(ENOUGH(Result)); SPECIALIZE (NOT(ENOUGH(Result))); } 3. Translation at low level: DiffLevel = 10; AdaptLevel= 1; IF <ACTION> THEN { IF (Result1 +Result2)/2>5 AND DiffLevel<10 THEN DiffLevel++; IF (Result1 +Result2)/2<5 AND DiffLevel>1 THEN DiffLevel--; }
accommodator (concrete, active) medium_decrease() : generate adaptive presentation with (obviously) decreasing difficulty - 1. Explanation: Accomodators like to feel in control; they want first examples and then theory. 2. Translation at medium level: (ENOUGH same as in Table 1) AdaptLevel= 5; N=AskUser(); # this is to let user feel and be in control; FOR <I=1..N> DO { SPECIALIZE (ENOUGH(Result)); IF (AdaptLevel>1) AdaptLevel--; GENERALIZE (NOT(ENOUGH(Result))); IF (AdaptLevel<5) AdaptLevel++; } 3. Translation at low level: (the average can be implemented but takes more space) DiffLevel = 8; AdaptLevel= 5; IF <ACTION> THEN { IF (Result1 +Result2)/2>5 AND DiffLevel<10 THEN {DiffLevel++; IF (AdaptLevel>1) AdaptLevel--;} IF (Result1 +Result2)/2<5 AND DiffLevel>1 THEN {DiffLevel--; IF (AdaptLevel<5) AdaptLevel++;}}