Title: Using Adaptive Hypermedia for Web-based Education
1Using Adaptive Hypermedia for Web-based Education
- Paul De Bra
- Eindhoven Univ. of Technology
- Peter Brusilovsky
- Carnegie Mellon University
2Topics
- Why adaptive hypermedia systems (AHS)?
- Adaptive hypermedia design
- Implementation issues for AH on the Web
- The AHA system
- Authoring for AHA
- AHA demo
- Authoring for Interbook
- Interbook demo
3Why Adaptive Hypermedia?
- Adaptive hypermedia has two purposes
- prevent users from getting lost by means of
individualized navigation and orientation
support. - adapt the information on the pages to each user,
depending on the order in which pages are read. - Adaptive hypermedia systems therefore offer
- adaptive maps (fish-eye views) of the overall
link structure (and indication where the user
is). - manipulation of the links (annotation, hiding,
...) - conditional inclusion (or emphasis or
modification) of parts of a pages contents.
4Adaptive hypermedia design
- We follow the AHAM reference model
- domain model describes the subject domain at the
conceptual level. - user model describes the users knowledge,
preferences, background, experience, etc. - teaching model describes how adaptation should
be done, depending on the domain model and the
user model.
5Domain model
- It describes the subject domain in terms of
concepts. - atomic concept fragment of information, that
cannot be changed by the AHS. - page (concept) a collection of atomic concepts
(or fragments), structured in some way (e.g. a
sequence) fragments are conditionally included
in a presentation. - composite concept a collection of other
composite concepts and/or pages, structured in
some way.
6Structure of a composite concept
WWW
HTML
HTTP
(set of pages)
what
tags
specials
request
response
(sequence of fragments)
(sequence of fragments)
7Constraints for concepts
- A concept may not contain itself (directly or
indirectly). - A composite concept may only contain other
composite concepts or pages, not atomic concepts. - A page may contain only fragments.
- A concept may occur in different composites.
- A fragment (atomic concept) may appear on
different pages.
8Concept relationships
- Concepts relate to each other in different ways
- link relationship there may be a hypertext link
from a concept to another concept. - prerequisite relationship the user should read
(or learn about) some concept(s) before starting
on some other concept(s). - inhibitor relationship once a user has read (or
learnt about) some concept(s) some other
concept(s) become irrelevant. - there may be many more relationship types...
9Constraints for concept relationships
- For each type of concept relationship there are
- different constraints
- A link must have at least one source and one
destination. - A concept must never be a prerequisite for
itself, either directly or indirectly. - A concept must never inhibit itself, either
directly or indirectly. - There may be many more constraints for these or
other relationship types.
10Notes about domain model
- Composite concepts must have a structure when
the concept is the destination of a link the
structure is used to determine a sub-concept as
the actual destination. - Pages must also have a structure when presenting
a page the structure determines in which order to
present the fragments. - Concept relationships do not indicate how they
influence the adaptation the teaching model
expresses the adaptation.
11User Modeling
- An adaptive hypermedia system is usually also
adaptable some aspects of the user model can be
explicitly set by the user (through a form or
questionnaire). - The adaptive features normally concentrate on the
knowledge about concepts. An AHS monitors the
users actions - requests for pages
- reading time per page
- results for (multiple-choice) tests
12User Modeling (cont.)
- A user model is more or less a table
- for each user and each concept a number of
- attribute values are stored. Example
...
name
knowledge
read
ready-to-read
WWW
learned
false
false
HTML
well-learned
true
true
HTTP
not-known
false
true
...
...
13User modeling (cont.)
- There are three common ways to represent the
users knowledge about a concept - Boolean model a concept is known or not-known.
- Discrete model there are a few values, e.g.
well-known, well-learned, learned, not-known. - Continuous model there is a range of values,
e.g. the interval 0..1, or a percentage (values
between 0 and 100) as an approximation. - Beware of too much detail the source of
user-model information is not reliable.
14User modeling (cont.)
- The representation of knowledge influences the
granularity of the domain model - With the Boolean model every page is associated
with a domain model concept there is
little use for composite concepts. - With the discrete model there is limited use for
composite concepts. - With the continuous model pages may contribute a
different amount of knowledge to a composite
concept. The reading time (per page) may be
taken into account as well.
15User modeling (cont.)
- other attributes in a user model
- read this stores information about what was read
by the user. For a composite concept nothing is
read. For a page read may be - Boolean read or not read.
- access times as in a log file.
- reading time actually display time.
- ready-to-read stores information about whether
the user is ready to learn about this concept.
May be Boolean, discrete or continuous (0..1).
16The teaching model
- an AHS performs adaptation based on the domain
model and the user model. It follows certain
rules, e.g. - When there is a link from C1 to C2 then there
must be a link anchor in C1 for a link to C2. - When C1 is a prerequisite for C2 then links to C2
are not desirable until enough knowledge about C1
is acquired. - When a page is read that is desirable more
knowledge is acquired than when reading an
undesirable page.
17The teaching model (cont.)
- there are two kinds of rules
- Some rules are executed before the presentation
of the next page. They can be used for - determining which page to display.
- selecting and ordering fragments to display.
- selecting how to present anchors to which
concepts. - Some rules are executed after the presentation of
the next page. They are used for - updating the user model.
18The teaching model (cont.)
- Selecting a link destination involves
- When the destination is a composite concept one
or more sub-concepts must be chosen to be the
actual destination to presented. - This process is repeated until the actual
destination is a page. - When the (actual) destination is a page the
content of the page is constructed by selecting
fragments and possibly sorting them (if the page
structure is not already a sequence).
19The teaching model (cont.)
- Constructing a page is done by
- For each fragment it is decided whether or not it
is desirable. This is done by checking
prerequisite, inhibitor and possibly other
requirements. - The selected fragments are sorted. If the page
has a sequence structure then the order of the
fragments is fixed. But other structures are
possible which require the order of fragments to
be computed in some way.
20The teaching model (cont.)
- Whether or not a concept is desirable is
determined by rules like - if C1.knowledge lt 0.8 and C1 is prerequisite for
C2 then C2 is not desirable. - if C1.knowledge gt 0.8 and C1 is inhibitor for C2
then C2 is not desirable. - There are propagating (transitive) effects
- if C1 is prerequisite for C2 and C2 is
prerequisite for C3 then C1 is prerequisite for
C3. So when C1 is not known then C3 is not
desirable.
21The teaching model (cont.)
- There are four ways to deal with anchors for
links leading to undesirable concepts - hiding the anchor is hidden by making it
indistinguishable from normal content (text). - annotation the anchor is presented differently
from anchors of links to desirable concepts. (The
color may be different for instance.) - removal the anchor is removed from the content
of the page. (May disrupt the content.) - disabling the anchor does not activate a link,
but it may still look like a link anchor.
22The teaching model (cont.)
- Link manipulation (annotation) can be expressed
by rules, e.g. - if A1 is anchor of link from C1 to C2
- and C2 is desirable
then if C2 was not read then A1.color green
- else A1.color yellow
- else A1.color red
- Link hiding is like link annotation, but the
undesired color is black (or whatever the color
of normal text is).
23The teaching model (cont.)
- The rules for updating the user model are
executed after generating a page.
Example (for concept C of page P) - if P is just read
- then if C is desirable then
- C.knowledge 0.8
- else C.knowledge 0.5
- else C.knowledge remains unchanged
- There may be other rules for changing / storing
read, desirable and other values.
24The teaching model (cont.)
- Rules may be built into the AHS or written by the
author. - Rules may be generic for all relationships of a
certain type, or specific for some specific
concepts.
Specific rules may be
intended to create exceptions to generic rules.
25Implementing AH on WWW
- There are three well-known and general
server-side technologies - CGI-scripts a process is executed for each
HTTP-request it generates one HTML page. There
is process and communication overhead. - Fast-CGI a script-server process handles each
HTTP-request it generates the HTML pages. There
is only communication overhead. - Servlets some Java code is added to the
Web-server it generates the HTML pages. - Programming for these technologies is similar.
26Implementing AH on WWW (cont.)
- An adaptive engine works as follows
- 1. First the stored user model is retrieved from
disk (from a file or database). - 2. Other attributes used in rules are
initialized. - 3. The requested concept is resolved to a page.
- 4. Rules are executed to select the fragments to
be presented (and possibly to sort them). - 5. Rules are executed to manipulate the link
anchors (like annotate or hide them). - 6. Rules are executed to update the user model.
- 7. The user model is saved (in file or database).
27Dealing with adaptive content
- A generated HTML page (containing the information
and the links) may be different each time it is
requested. - The browser must request the page (from the
server) each time the user requests it. - Intermediate proxies must not cache the page.
- One solution is to use a different URL each time
the page is requested. This makes it impossible
to bookmark a page. - A better solution is to force browser and
proxies to not do caching.
28Link manipulation in HTML
- Different links on the same page need to be
displayed in a different way (to indicate whether
the destination is desirable. - Interbook annotates anchors with colored dots
and arrows . - AHA uses colored link anchors. It uses cascading
style sheets (CSS) to color links depending on a
link class. - Links can be hidden by removing the anchor tag
ltA...gt.
29Working with Frames Interbook
table of content
naviga-tion help
pre-requisite concepts
infor-mation page
generated concepts
30Working with Frames Interbook
- Interbook uses a fixed layout with five frames
four are generated by Interbook and one is
(mostly) written by the author. The automatic
generation of auxiliary frames makes authoring
easy. - Each time a request is made from one frame four
frames must be updated, through four HTTP (almost
simultaneous) requests to the server. This puts a
heavy load on the server.
31Working with Frames AHA
- AHA does not enforce any frames structure.
- AHA does not offer automatic generation of frames
(structure or content). - In each frame one can display a generated header
and footer, or omit them. - JavaScript (or VBscript) code is used to
synchronize updates to frames. Updating different
frames puts a heavy load on the server.
32The AHA system
- Each concept corresponds to a page.
- For each page there is a precondition which is
expressed in terms of concepts. - Each page generates knowledge about one or more
concepts. - Fragments of content (text) are included based
upon preconditions per fragment. - Conditional links are hidden when the
precondition for their destination is not
fulfilled. This can be changed to annotation.
33The AHA system (cont.)
- Content is authored as HTML files with special
comments - lt!-- requires readme and intro but not www --gt
- lt!-- generates html --gt
- lt!-- header --gt
- This page becomes desirable when the readme
- and intro have been read and www has not.
- The page generates knowledge about html.
- The text appears between a header and a footer.
- lt!-- footer --gt
34The AHA system (cont.)
- Text fragments are conditionally included
- lt!-- if www and not (html or http) --gt
- This text sometimes appears
- lt!-- elseif www and not (html and http) --gt
- and sometimes this
- lt!-- else --gt
- and otherwise this
- lt!-- endif --gt
- These if statements can be nested.
35The AHA system (cont.)
- AHA generates a CSS style sheet for links
- ltstyle typetext/cssgt
- A.good color 0000ff
- A.bad color 202020
- A.neutral color 7c007c
- lt/stylegt
- The HTML contains conditional links
- lta classconditional href...gtanchor textlt/agt
- This is turned into (in case of a desired link)
- lta classgood href...gtanchor textlt/agt
36AHA components
- The AHA system document consists of
- a Makefile to generate concept and dependency
lists. - a welcome file with registration form.
- a header file with references to progress report
and adaptable features. - a footer file with reference to the Stop
applet. - a html directory containing the pages.
- an icons directory containing standard images.
- an images directory containing other images.
- an applets directory containing the Stop
applet. - a reference to the servlet doing the adaptation.
37AHA components (cont.)
- The welcome file must contain (something like)
- Welcome to this AHA document.ltbrgt
- ltform methodpost actionservlet-namegt
- name ltinput typetext namename size40gtltbrgt
- email ltinput typetext nameemail
size40gtltbrgt - id ltinput typetext nameid size10gtltbrgt
- password ltinput typepassword namepasswd
size10gtltbrgt - ltinput typesubmit valuego!gt
- lt/formgt
38AHA components (cont.)
- The header file looks like
- lta href...gtltimg src/.../icons/smalltue.gifgtlt
/agt - lta href/.../cgi/get/ID/config/generategt
- ltimg src/2M350/icons/config.gifgtlt/agtltbrgt
- AHA adds references to a progress report
- ltbgtJohn Doe has read 47/159 pages.lt/bgt
- (lta href__done__gt these readlt/agt,
- lta href__todo__gtthese still to dolt/agt.)
39AHA components (cont.)
- The footer file can contain anything.
- AHA adds a Stop applet
- ltapplet codeStop.class codebase/.../applets
width2 height2gt - ltparam namestopurl value/.../stop/pagenamegt
- ltparam namehost value127.0.0.1gt
- ltparam nameport value8001gt
- lt/appletgt
- The Stop applet sends a request to the server
when the user leaves the page.
40AHA components (cont.)
Example of what a header may look like
Example of what a footer may look like
Note that the Stop applet does not show.
41AHA components (cont.)
- How the Stop applet works
- A Java applet is initialized when its page is
loaded. This is done through the init method. - The applet is started each time its page is
displayed. This is done through the start method. - The applet is stopped each time its page is
replaced by another one. The applet can still do
something before really stopping the stop method
is called. - In the AHA Stop applet the stop method sends a
request to the server, with the name of the page
the user has stopped reading.
42AHA components (cont.)
- The AHA servlet uses the following files to
generate file x.html for user doe - The set of existing concepts is read from a file
knowlist. - The set of concept relationships (dependencies)
is read from a file doclist. - The users knowledge is read from doe_model.
- The users logfile (with all access and stop
times) is read from doe_log. - The html file x.html, icons, images, etc. are
read and turned into an html file for
presentation.
43Authoring for AHA
- Authoring requires the following steps
- Creating (copying and modifying) a welcome page,
header, footer, and possibly an index page with
the frameset. - Writing the content, using any html editor or
generator. The editor must support html comments
and link classes. - Removing possible html headers, and adding the
lt!-- requires --gt lt!-- generates --gt,
lt!-- header --gt and lt!-- footer --gt tags where
appropriate.
44Configuring the Servlet
- The servlet needs six parameters
- HTDOCS path of the documentroot of the
Web-server. - LOGS path of the log directory of the
Web-server. - TITLE the title for the whole adaptive
hyperdocument. It is added to every page. - COURSE the name of the directory (relative to
documentroot) which holds the adaptive document. - BACKGROUND the name of a background image.
- LANGUAGE for progress report (default English).
45Setting up the browser
- In order to use AHA the browser must be
configured as follows - The browser must accept text colors and link
colors specified in the html pages. (Some
browsers let you disable this.) - The browser must not underline links. (AHA hides
links by making the text almost black, but
underlining links would make them visible.) - You must ensure that the browser requests a page
each time it is needed. (AHA generates expired
pages, but a browser may sometimes ignore this.)
46Example page from course 2L690
47Example page from course 2M350