Title: Adaptive Hypermedia 2ID20
1Adaptive Hypermedia2ID20
2Reference Architecture
- Purpose
- formal framework for describing system behavior
- modular description of AHS separation of
concerns - basis for comparison of Web-based AHS
- basis for translation of applications between AHS
- Our basis the Dexter reference model for
hypermedia - concentrates on the hypermedia structures and
server-side functionality (implementation
independent) - provides an abstract hypermedia layer
- describes interfaces with user-interface and with
implementation-dependent storage and retrieval
functionality
3AHAMAdaptive Hypermedia Application Model
4AHAM Domain Model (DM)
- Concept (component)
- has a unique object identity (uid)
- has concept information (cinfo)
- a set of attribute-value pairs
- a sequence of anchors
- a presentation specification
- atomic and composite concepts
- atomic concepts represent fragments, cannot be
adapted - page and abstract composite concepts, consist of
either only atomic concepts (page) or only
composite concepts (abstract) - consists is implemented through an attribute
children
5AHAM Domain Model (cont.)
- Concept relationship
- has a unique identity (uid)
- is a generalization of the hyperlink
- has a sequence of specifiers (like relationship
endpoints) - lt uid, aid, dir, pres gt
- aid anchor id (see later), indicates where in
the concept uid the relationship is anchored - dir FROM, TO, BIDIRECT or NONE
- has cinfo just like concepts
- set of attribute-value pairs, must contain type
- a presentation specification
6AHAM Domain Model (cont.)
- Anchors
- have a unique identity (aid)
- have an anchor value
- describes how to locate the anchor within the
concept - anchor values of atomic concepts belong to the
within-component layer - anchor values of composite concepts can be
uid-aid pairs, indicating the uid of a
sub-concept and the aid of an anchor within that
sub-concept
7AHAM Accessing a Concept
- Resolver function
- translates a description of a concept to the
uid of a concept - can be used to find a page when accessing an
abstract concept (by traversing down the concept
hierarchy) this enables us to implement
hyperlinks to abstract concepts, not just to
pages - when traversing the hierarchy to find a page the
resolver has to choose which page to select,
hence the name page selector - Accessor function
- retrieves the content of a concept, given its
uid. - for a fragment this accessed the within-component
layer - for a page or abstract concept this recursively
finds descendents, down to the fragment level,
and it must construct a page out of the
fragments, hence the name page constructor
8AHAM User Model (UM)
- represents all aspects of a user
- uses concepts with a unique id
- concept structure with attribute-value pairs
- contains an overlay model to represent how user
relates to domain model concepts - every concept may have different attributes
- commonly used attributes knowledge, interest,
visited, recommended
9AHAM Adaptation Model (AM)
- Adaptation rules
- event-condition-action (ECA) rules, or
- condition-action (CA) rules
- event user accesses a concept (follows a link)
- action an update to the user model, or setting
of a presentation specification - condition expression to decide whether the
action should be performed - propagation flag to enable the action to
trigger the execution of other adaptation rules - phase rules are grouped into execution phases
10AHAM Adaptation Model (cont.)
- Simple phase model
- IU initialization of (volatile) user model
attributes - UU-pre rules that update the user model before
generating the presentation - GA rules that set presentation specifications
- UU-post rules that update the user model after
generating the presentation - Some systems or application will need more phases
11AHAM Adaptation Model (cont.)
- Example Adaptation Rule
- Event access(C)
- Condition true
- Action C.visited true
- Propagate true
- Phase UU-pre
12AHAM Adaptation Model (cont.)
- Example Adaptation Rule
- Event visited(C)
- Condition C.recommended true
- Action C.knowledge well learned
- Propagate true
- Phase UU-pre
13AHAM Adaptation Model (cont.)
- Generic adaptation rules
- use variables for concepts and concept
relationships (of a specified type) - apply to all the concepts and concept
relationships of the right type - make authoring easy because few rules have to be
specified - Specific adaptation rules
- use concrete concepts
- are sometimes used to create exceptions to
generic adaptation rules - involve authoring at the atomic level, thus
very laborious
14AHAM Adaptation Engine (AE)
- The Adaptation Model does not completely define
the system behavior - many rules may be triggered by an event
- the execution order may determine the outcome
- an action may trigger several rules
- their execution order may also determine the
outcome - rules may trigger each other indefinitely
- the execution may not terminate
- an execution model or abstract adaptation engine
is needed to determine the actual system behavior - we study several execution models and the
problems of termination and confluence
15Detecting a Termination Problem
- Dynamic analysis
- one may keep track of UM instances and pending
rules to decide whether a situation reoccurs
(difficult) - one may limit the number of times a rule
(instance) is executed - one may limit the number of times an attribute of
a concept is updated - one may limit the total number of rule executions
- when a loop is detected, rule execution is
terminated - problem UM is not left in a desired state
- problem the end-user is confronted with a
problem not caused by him/her
16Detecting a Termination Problem
- Static analysis
- analysis of the defined adaptation rules
(together with the defined DM and AM), rather
than the running adaptation engine - goal detect whether infinite loops are
impossible under any possible circumstance. - problem how to decide which are the many
possible circumstances (many possible UM
instances) - approximation consider the whole UM space, not
just the UM instances that are really possible - problem the UM space is too large to actually
try every instance - solution analyze and prove properties of the
system without actually running the adaptation
engine
17Definitions
- We consider instantiated rules, i.e. specific
rules or generic rules with variables replaced by
concrete concepts and attributes - A rule execution is valid on a UM instance if the
rules condition is true in that instance - When a rule is triggered and the execution of the
rule is valid on a UM instance the rule is said
to be active (for that UM instance) - A rule execution sequence for a given UM instance
is a sequence of rule executions - A rule execution sequence is valid if each rule
execution in the sequence is valid and each rule
is active when executed - A rule execution sequence is complete if when it
ends there are no more active rules
18Definitions (cont.)
- A set of rules terminates if for every initial UM
instance and initial event every valid rule
sequence is complete - A rule execution state S is a pair (UM, R) where
UM is a user model instance and R is a set of
active rules - A set of rules is confluent if for every initial
UM instance and initial event every valid and
complete rule sequence results in the same final
execution state - This is a strong notion of termination and
confluence it does not depend on how the
adaptive engine queues pending triggered rules
19Static Analysis of ECA Rules
- General execution model
- compute the set of triggered rules
- repeat until there are no more active rules
- select a triggered rule r
- if rs condition is true
- then execute rs action
- (this may trigger more rules)
20Static Analysis of ECA Rules (cont.)
- Triggering Graph (for a rule set)
- each rule instantiation is a node
- there is an edge from each concept/attribute
updated by an instantiated rule to the rules with
that concept/attribute in its triggering event - Theorem if there are no cycles in the triggering
graph then the rule set is guaranteed to
terminate - Note cycles in the triggering graph do not imply
that the rule set can cause an infinite loop the
theorem is very conservative because it does not
consider the event
21Static Analysis of ECA Rules (cont.)
- Confluence analysis
- Execution graph (EG) union of all possible
valid rule execution sequences from a given
initial execution state - Si ? Sj denotes one step, Si ? ? Sj represents
many steps - Lemma (Path Confluence) Suppose that for any
three states S, Si and Sj in an arbitrary
execution graph such that S ? ? Si and S ? ? Sj
there exists a fourth state S such that Si ? ?
S and Sj ? ? S then that EG has only one final
state - unfortunately this lemma is difficult to check
because there are very many possibilities to check
22Static Analysis of ECA Rules (cont.)
- Confluence analysis
- Lemma (Edge Confluence) Suppose that for any
three states S, Si and Sj in an arbitrary
execution graph such that S ? Si and S ? Sj
there exists a fourth state S such that Si ? ?
S and Sj ? ? S, then for any three states
S, Si and Sj such that S ? ? Si
and S ? ? Sj there exists a fourth state S such
that Si ? ? S and Sj ? ? S, hence that EG has
only one final state - this lemma can be verified more efficiently
- unfortunately this lemma is still difficult to
check because there are still very many
possibilities to check
23Static Analysis of ECA Rules (cont.)
- Confluence Requirement
- Let R be a set of rules, ri, rj ? R, let T(ri) be
the set of rules triggered by ri, let P be the
priority relation. We constructLet Ri ri
and Rj rj initiallyRepeat until R1 and R2
no longer change Ri Ri ? r ? R r ? T(r1)
for some r1 ? Ri and r gt r2 ? P for some r2 ?
Rj and r ? rj Rj Rj ? r ? R r ? T(r2)
for some r2 ? Rj and r gt r1 ? P for some r1 ?
Ri and r ? ri The confluence requirement says
that for every pair of rules ri, rj ? R and for
any r1 ? Ri and r2 ? Rj r1 and r2 must commute - Theorem If R satisfies the confluence
requirement and there are no infinite execution
graphs for R then R is confluent
24Condition-Action Rules
- In many adaptation rules the event is tied to
the condition - pseudo CA rules, do not actually need the event
- In Condition-Action rules a change to the
condition is the triggering event - a CA rule becomes active when its condition
becomes true. (rule is activated) - a CA rule becomes inactive when its condition
becomes false. (rule is deactivated) - when a CA rule (action) is executed all the
conditions are checked. Rules whose condition
becomes true (and was false) are queued for
execution - when a CA rule is executed the rule only
activates itself if its condition remain true and
some attribute value in that condition has changed
25Condition-Action Rules (cont.)
- General execution model
- compute the initial set of active rules and place
them in a collection (set, queue, stack) - repeat until there are no more rules in the
collection - select a rule r
- if rs condition is true
- then execute rs action
- and add newly activated rules to the collection
- Note an activated rule may become inactive
before it is executed
26Static Analysis of CA Rules
- The activation graph contains a node for each CA
rule (instance) r. It contains an edge ri ? rj
iff the action of ri updates a concept/attribute
used in the condition of rj - The activation graph only represents changes to
the condition. It may not be an activation and it
may even be a deactivation - Theorem If there are no cycles in the activation
graph then the rule execution is guaranteed to
terminate - This is a conservative way to guarantee
termination - Improvement look at what the action does, and at
the condition - More improvement look at rule sequences from
initial state
27Static Analysis of CA Rules (cont.)
- Lemma two distinct rules ri and rj commute if
- ri cannot activate rj
- ri cannot deactivate rj
- conditions 1 and 2 with i and j reversed
- ris action and rjs action commute
- Theorem a rule set R is confluent if all pairs
of rules in R commute
28AHAM Rule Language
- We use AHAM to describe adaptive hypermedia
systems - AHAM ECA or CA rule language (we write the rules
using a condition and action but the condition
contains an event and the action can be quite
complex with a condition of its own) - SQL-like syntax
- used for generic or specific rules
- it is a description language, not an
implementation language - independent of the actual execution model
- We introduce the language through examples
29AHAM Rule Language (cont.)
- Example 1 decide when to show a fragment
- C select P.accessA update F.pres show
where Fragment(P, F) and F.relevant true - the where clause is shorthand for
- CR.cinfo.type Fragment and CR.ss1.uid
P and CR.ss2.uid F and CR.cinfo.dir1
FROM and CR.cinfo.dir2 TO and
CR.ss.length 2 and CR.ss2.relevant true - through P.access we monitor whether page P is
accessed (it becomes true on access)
30AHAM Rule Language (cont.)
- Example 2 knowledge update
- C select P.access where P.ready trueA
update P.knowledge well known - We see here that there is a condition, separate
from the event we only set the knowledge value
to well known if the page is considered
ready.
31AHAM Rule Language (cont.)
- Example 3 handling prerequisites
- C select C1.knowledge where C1.knowledge ?
knownA update C2.ready true where
Prerequisite(C1, C2) and not exists ( select
C3 where Prerequisite(C3, C2)
and C3.knowledge lt known ) - This rule expresses that a concept becomes
ready when all its prerequisites are satisfied.
This rule has an instance for each prerequisite
of a concept
32Execution of AHAM CA rules
- The rule language does not specify the system
behavior - an execution semantics is still needed
- most systems use a queue for pending rule
executions - in most systems not all actions trigger or
activate rules - we must introduce execution phases in order to
describe some systems behavior - In another part of this course will see how to
describe actual system behavior using AHAM CA
rules.