GALE: The GRAPPLE Adaptive Learning Environment
description
Transcript of GALE: The GRAPPLE Adaptive Learning Environment
GALE:The GRAPPLE Adaptive Learning Environment
Paul De BraEindhoven University of Technology
January 24, 2011GRAPPLE Public Event Slide 1
January 24, 2011GRAPPLE Public Event Slide 2
January 24, 2011GRAPPLE Public Event Slide 3
Main GALE Functionality• Concept access
1. user model updates2. determine adaptive layout3. retrieve and adapt a “page” (xml file)• conditional inclusion of fragments/objects• adapt destination+presentation of links
4. generate additional parts: header, footer, accordion menu, …
January 24, 2011GRAPPLE Public Event Slide 4
January 24, 2011GRAPPLE Public Event Slide 5
January 24, 2011GRAPPLE Public Event Slide 6
Creating Adaptive Courses• Creating conceptual adaptation models– using authoring tools– understanding prerequisites
• Creating content (pages) for GALE– using templates and layout definitions– user model operations within pages
• Setting up the GRAPPLE infrastructure– combining an LMS with GALE– exchanging user model information
January 24, 2011GRAPPLE Public Event Slide 7
Authoring Pages Separately
January 24, 2011GRAPPLE Public Event Slide 8
Template-Based Authoring
January 24, 2011GRAPPLE Public Event Slide 9
The GALE course model• A course consists of concepts and relationships• A concept has– properties: value given by the author– attributes:
• value determined by adaptation rules;• properties, includes data type, persistence, …• event code: what to do when the value changes
– a resource (selector): a URL or an expression to determine a URL
– event code: what to do when the concept is accessed
January 24, 2011GRAPPLE Public Event Slide 10
GALE Code• An author need not use any GALE code
(adaptation rules and expressions)• An author can use GALE code to make a
course more adaptive (than without code)– conditions for inclusion of fragments– insert value of a property or attribute in
the page– complex stuff like generate lists of links
January 24, 2011GRAPPLE Public Event Slide 11
Conditional Inclusion of Fragments
• Example from the course “hypermedia structures and systems” taught at the TU/e:– Before reading about Xanadu the URL page
shows:…In Xanadu (a fully distributed hypertext system, developed by Ted Nelson at Brown University, from 1965 on) there was only one protocol, so that part could be missing.…
– After reading about Xanadu this becomes:…In Xanadu there was only one protocol, so that part could be missing.…
January 24, 2011GRAPPLE Public Event Slide 12
Conditional Inclusion of Fragments
• Use the GALE <if>, <then>, <else> tags• Write a GALE expression
…In <gale:a href=“xanadu”>Xanadu</gale:a><gale:if expr=“${xanadu#knowledge}<90”><gale:then>(a fully distributed hypertext system, developed by Ted Nelson at Brown University, from 1965 on)</gale:then></gale:if>there was only one protocol, so that part could be missing.…
January 24, 2011GRAPPLE Public Event Slide 13
GALE Shorthand Code• URI syntax, # for attributes, ? for
properties• ${…} for expressions, #{…} for
assignments– ${#suitability}– ${#image?title}– ${->(parent)?type}– #{->(parent)#visited, ${->(parent)#visited}
+1};– "page".equals(${->(parent)?type})– #{gale://gale.tue.nl/personal#history,
gale.conceptUri()}; January 24, 2011GRAPPLE Public Event Slide 14
Including Course/User Info
January 24, 2011GRAPPLE Public Event Slide 15
Including Course/User Info• Show the user’s name:
<gale:variable name="gale://gale.tue.nl/personal#name" />
• Include info generated by a plug-in:<gale:count method="done” uri="gale://gale.tue.nl/cam/MilkyWay />
• Show title of current concept:<gale:variable expr="${?title}"/>
• Include the image with URL from “image” property:<img width=“300”><gale:attr-variable name="src” expr="${?image}"/></img>
January 24, 2011GRAPPLE Public Event Slide 16
Complex Page Constructs• We consider one example: generting a list
of links:
January 24, 2011GRAPPLE Public Event Slide 17
Complex Page Constructs• The <for> tag generates bits of xhtml
from a list of objects:<ul> <gale:for var="concept" expr="${<-(isMoonOf)}”> <li><gale:a> <gale:variable expr="${%concept?title}"/> <gale:attr-variable name="href” expr=""%concept""/> </gale:a> </li> </gale:for></ul>
January 24, 2011GRAPPLE Public Event Slide 18
Link Adaptation in GALE• Standard schema:– links are good, neutral or bad;– link classes are used by a CSS stylesheet to
create the presentation color scheme• Implementation:– default: gale://gale.tue.nl/config/link#classexpr– #link.classepr attribute of the current concept– (${#suitability}?($
{#visited}>0?\"neutral\":\"good\"):\"bad\")• Icons can be configured as well
January 24, 2011GRAPPLE Public Event Slide 19
Adaptive Link Destinations• Several pages for one concept– create several resources;– define an expression for each resource• Url: gale:/tutorial/readme.xhtml
Property (name): exprValue: ${#visited}==1 • Url: gale:/tutorial/welcome.xhtml
Property (name): exprValue: true
(${#visited)==1 ? ”gale:/tutorial/readme.xhtml” : "gale:/tutorial/welcome.xhtml")
January 24, 2011GRAPPLE Public Event Slide 20
Adaptive Layout in GALE• A course has a layout with different frames or
“cells” (header, menu, footer, page)• Default layout is defined in
gale://gale.tue.nl/config/presentation#layout<struct cols="250px;*”> <view name="static-tree-view" /> <struct rows="60px;*;40px”> <view name="file-view" file="gale:/header.xhtml" / <content /> <p><hr />Next suggested concept to study: <view name="next-view" /></p> </struct></struct>
January 24, 2011GRAPPLE Public Event Slide 21
“Complex” Layout Example• The “hypermedia” course has adaptive layout:
(escaping not done to make it easier to read)
(${gale://wwwis.win.tue.nl/2ID65/introductorypart#done} ? ("page".equals(${?type}) ? “<struct cols="20%;*”> <view name="static-tree-view"/> <content/> </struct>” : “” ) : “” )</default>
• If introductorypart is done then there is a non-trivial layout for pages, else there is no layout.
January 24, 2011GRAPPLE Public Event Slide 22
Extensibility in GALE• Add modules to handle different XML tags• Add processors to handle different formats
(other than XML)• Create your own views• Add plug-ins (generate fragments or
pages)• Change code language (expression
syntax)• Add login managers• Add more Domain services (compile from
other formats besides CAM) January 24, 2011GRAPPLE Public Event Slide 23