Open Corpus Adaptation++ in GALE: Friend or Foe?
David SmitsPaul De Bra
Eindhoven University of Technology
June 6, 2011ACM Hypertext 2011
Slide 1
GALE Architecture
June 6, 2011ACM Hypertext 2011
Slide 2
GAM Language• Allows DM/AM descriptions in human
readable/writable format• In examples we use GALE enhanced Java
code• XML counterpart is GDOM• Example (fictitious) .gam file is
http://htmlcourse.org/htmlcourse.gam
June 6, 2011ACM Hypertext 2011
Slide 3
Example GAMwelcome.xhtml { #[visited]:Integer `0` event `#{#visited, ${#visited}+1};`}
• Full URI: http://htmlcourse.org/welcome.xhtml
• In welcome.xhtml:<p>Welcome <gale:if expr='${#visited} > 1'>back</gale:if> to the HTML course.</p>
June 6, 2011ACM Hypertext 2011
Slide 4
Example GAM (cont.)html.xhtml { #[visited]:Integer `0` event `#{#visited, ${#visited}+1};`}tables.xhtml { ->(extends) html.xhtml #suitability:Boolean !`${basic.xhtml#visited} > 0`}basic.xhtml {->(extends) html.xhtml}
June 6, 2011ACM Hypertext 2011
Slide 5
Example GAM (cont.)• In html.xhtml:<ul> <li><gale:a href="tables.xhtml"> Tables</gale:a></li> <li><gale:a href="basic.xhtml"> Basic HTML data types</gale:a></li></ul>
June 6, 2011ACM Hypertext 2011
Slide 6
Example GAM (cont.)• In http://gale.win.tue.nl/elearning.xhtml#[read]:Integer `0`#[visited]:Integer `0` { event `if (${#suitability} && ${#read} < 100) #{#read, 100}; else if (!${#suitability} && ${#read} < 35) #{#read, 35};`}#knowledge:Integer !`avg(new Object[] {${<=(parent)#knowledge},${#read}}).intValue()`#suitability:Boolean !`${#s-prereq}`#s-prereq:Boolean !`and(${<=(prerequisite)#known})`#known:Boolean !`${#knowledge} > 70`event `#{#visited, ${#visited}+1};` June 6, 2011
ACM Hypertext 2011Slide 7
Example GAM (cont.)html.xhtml { ->(extends) http://gale.win.tue.nl/elearning.xhtml}tables.xhtml {->(extends) html.xhtml <-(prerequisite) basic.xhtml}basic.xhtml {->(extends) html.xhtml}
June 6, 2011ACM Hypertext 2011
Slide 8
Distribution
June 6, 2011ACM Hypertext 2011
Slide 9
Security• Run the Java code in a secured
environment (using proven Java mechanics; protects server)
• Only allow reading/writing the user’s own user model (any application can read all info)
• Only allow modifying within the own application
June 6, 2011ACM Hypertext 2011
Slide 10
Questions• What adaptation to allow/disallow? Are the
security precautions enough?• Is it desirable to store this information on
the web?• How do we support group adaptation?• What can we do to make authoring easier?
http://gale.win.tue.nlThanks!
June 6, 2011ACM Hypertext 2011
Slide 11