280 likes | 469 Views
Auld Leaky: A Contextual Open Hypermedia Link Server. Danius T. Michaelides, David E. Millard, Mark J. Weal, David De Roure. FOHM to Auld Linky. The Fundamental Open Hypermedia Model (FOHM) Open Hypermedia Protocol (OHP) Open Hypermedia Systems Working Group (OHSWG).
E N D
Auld Leaky: A Contextual Open Hypermedia Link Server Danius T. Michaelides, David E. Millard, Mark J. Weal, David De Roure
FOHM to Auld Linky • The Fundamental Open Hypermedia Model (FOHM) • Open Hypermedia Protocol (OHP) • Open Hypermedia Systems Working Group (OHSWG) • FOHM is based on the OHP data model • It extends the model to be more generic to cover several domains of hypertext • Always intended to include Context and Behaviour • We are now using a simple notion of these (lists of key/value pairs)
FOHM to Auld Linky • Auld Linky (Leaky) serves FOHM structures • Stand alone process • Written in Perl • Cross-platform • Availability of code libraries • Eval for free • Uses XML representations of linkbases • Communicates over HTTP (module) • Query via pattern matching • Results are filtered by context
HTTP Communication • HTTP GET – sent with an id • Returns the object in the link base with that id • HTTP POST – sent with FOHM object as content • Pattern matched against linkbase and sub-linkbase returned • HTTP PUT – sent with FOHM object as content • Object is added to the linkbase • HTTP DELETE – sent with an id • Object with that id is removed from the linkbase
Pattern Matching • Natural way of specifying complex queries • Queries and structures are interchangeable • Store queries in a linkbase • Not tied to a query language • Interchangeable back-ends • Database back-end a possibility • Current version is self-contained (a single executable)
Variables and Constraints • To enable pattern matching we have added variables and constraints to the FOHM structures • Variable objects will match any other object of the same type • Constraints on variables add conditionsto that matching (currently these are specified in Perl but other languages could be supported in the future)
Context • Context objects can be attached at any point on the FOHM structure • They are simple lists of key/value pairs • A Context Object can also be attached to a query <context> <contextvalue key="location">office</contextvalue> <contextvalue key="time" state="variable"> <constraint> ( $_[0] gt "19:05");</constraint> </contextvalue> </context>
Link SRC DEST DEST DEST
Link SRC DEST DEST DEST
Link SRC DEST DEST DEST
Link SRC DEST
Behaviour • Behaviour is opaque to the Auld Leaky implementation, and is interpreted by the client • It allows hypermedia authors to specify how certain events, such as ‘follow link’, alter the users context, e.g. progressing them through a timeline
Applications : Short Story Engine • CGI based Hypertext Story Engine • Constructs short stories for the reader on the fly • It maintains a user profile, in the form of a context, that it uses to find the next appropriate story fragment • Readers move through the story and Behaviour objects alter their context (or profile) accordingly • Thus we enable some form of narrative structure over otherwise loosely coupled story fragments
Link Link Link Link Link Link SRC SRC SRC SRC SRC SRC DEST DEST DEST DEST DEST DEST Story Story Story Story Story Story Fragment Fragment Fragment Fragment Fragment Fragment
Link Link SRC DEST SRC DEST Link SRC DEST Story Fragment Story Fragment Story Fragment Link SRC DEST Link Link Story SRC DEST Fragment SRC DEST Story Story Fragment Fragment
Link Link SRC DEST SRC DEST Link SRC DEST Story Fragment Story Fragment Story Fragment Link SRC DEST Link Link Story SRC DEST Fragment SRC DEST Story Story Fragment Fragment
Link SRC DEST Link SRC DEST Story Fragment Story Fragment Link SRC DEST Story Fragment
Applications : Glasgow Applet • Generates a dynamic document about the History of Glasgow • Based on user interests (e.g. Government, Culture) • We have now re-written the applet as a servlet (to enable outside access through our firewall!)
Tours and LoDs Tour (list) 1 2 3 LoD (list) LoD (list) LoD (list) 1 2 3 1 2 1 2 3 text text text text text text text text
Tours and LoDs Tour (list) 1 2 3 LoD (list) LoD (list) LoD (list) 1 2 3 1 2 1 2 3 text text text text text text text text
Tours and LoDs Tour (list) 1 2 3 LoD (list) LoD (list) LoD (list) 1 2 3 1 2 1 2 3 text text text text text text text text
Tours and LoDs Tour (list) 1 2 3 LoD (list) LoD (list) LoD (list) 1 2 1 3 text text text text
Tours and LoDs Tour (list) 1 2 3 LoD (list) LoD (list) LoD (list) 1 2 1 3 text text text text
Future Work • More complex model of Context and Behaviour (perhaps an ontology) • Explore a peer to peer architecture • Distributed query • Naming strategies • Caching issues • Narrative structures • E.g. replacing the linear tour of Glasgow with a more dynamic structure similar to the short story engine www.equator.ecs.soton.ac.uk