230 likes | 387 Views
GALE: The GRAPPLE Adaptive Learning Environment. Paul De Bra Eindhoven University of Technology. Main GALE Functionality. Concept access user model updates determine adaptive layout retrieve and adapt a “page” (xml file) conditional inclusion of fragments/objects
E N D
GALE:The GRAPPLE Adaptive Learning Environment Paul De Bra Eindhoven University of Technology GRAPPLE Public Event
Main GALE Functionality • Concept access • user model updates • determine adaptive layout • retrieve and adapt a “page” (xml file) • conditional inclusion of fragments/objects • adapt destination+presentation of links • generate additional parts: header, footer, accordion menu, … GRAPPLE Public Event
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 GRAPPLE Public Event
Authoring Pages Separately GRAPPLE Public Event
Template-Based Authoring GRAPPLE Public Event
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 GRAPPLE Public Event
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 GRAPPLE Public Event
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 Xanaduthere was only one protocol, so that part could be missing.… GRAPPLE Public Event
Conditional Inclusion of Fragments • Use the GALE <if>, <then>, <else> tags • Write a GALE expression …In <gale:ahref=“xanadu”>Xanadu</gale:a><gale:ifexpr=“${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.… GRAPPLE Public Event
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()}; GRAPPLE Public Event
Including Course/User Info GRAPPLE Public Event
Including Course/User Info • Show the user’s name:<gale:variablename="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:variableexpr="${?title}"/> • Include the image with URL from “image” property:<img width=“300”><gale:attr-variable name="src”expr="${?image}"/></img> GRAPPLE Public Event
Complex Page Constructs • We consider one example: generting a list of links: GRAPPLE Public Event
Complex Page Constructs • The <for> tag generates bits of xhtml from a list of objects:<ul> <gale:forvar="concept" expr="${<-(isMoonOf)}”><li><gale:a> <gale:variableexpr="${%concept?title}"/> <gale:attr-variable name="href”expr=""%concept""/> </gale:a> </li> </gale:for></ul> GRAPPLE Public Event
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 GRAPPLE Public Event
Adaptive Link Destinations • Several pages for one concept • create several resources; • define an expression for each resource • Url: gale:/tutorial/readme.xhtmlProperty (name): exprValue: ${#visited}==1 • Url: gale:/tutorial/welcome.xhtmlProperty (name): exprValue: true (${#visited)==1 ? ”gale:/tutorial/readme.xhtml” : "gale:/tutorial/welcome.xhtml") GRAPPLE Public Event
Adaptive Layout in GALE • A course has a layout with different frames or “cells” (header, menu, footer, page) • Default layout is defined ingale://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> GRAPPLE Public Event
“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. GRAPPLE Public Event
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) GRAPPLE Public Event