University Libraries and Dep. Of Computer Science Virginia Tech

Slides:



Advertisements
Similar presentations
The Marketing and Instruction of New Tools for Libraries: LibX a Case Study Kyrille Goldbeck College Librarian for Natural Resources LOEX MAY 2007 Uncharted.
Advertisements

Using Google Book Classes in Mashups Excerpt from talk given at IUG 2008 in Washington, D.C Annette Bailey University Libraries Virginia Tech April 29,
Enhancing Access to Library Collections Kyrille Goldbeck College Librarian for Natural Resources NRIC 2007.
LibX – Putting Millennium and WebBridge in Firefox Annette Bailey Newman Library, Virginia Tech May 21, 2006.
1 LibX – Connecting Users and Libraries Annette Bailey LITA National Forum October 2007.
LibX an Open Source, Community Platform for Delivering Library Services Code4Lib 2009 Godmar Back University Libraries and Dep. Of Computer Science.
LibX an Open Source, Community Platform for Delivering Library Services Code4Lib 2009 Preconference Godmar Back and Mike Doyle Virginia Tech.
Rene Tanner and Debbie Flitner Arizona State University Building a Library Toolbar with LibX.
The KB on its way to Web 2.0 Lower the barrier for users to remix the output of services. Theo van Veen, ELAG 2006, April 26.
香港中文大學圖書館系統 University Library System The Chinese University of Hong Kong Power up your browser: an example of using LibX at CUHK Libraries Kevin Leung.
Explore the Dreamweaver Workspace View a Web page and use Help Plan and Define a Web site Add a Folder and Pages, and set the Home page Create and View.
High Performance Faceted Interfaces Using S2S Eric Rozell, Tetherless World Constellation.
Chapter 1 Getting Started With Dreamweaver. Explore the Dreamweaver Workspace The Dreamweaver workspace is where you can find all the tools to create.
UWWD In our quest to eliminate bad websites, we present…. HALLELUJAH!!
1 of 7 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Web Services & Widgets Godmar Back. Mash-Ups Applications that combine information from different sources in one web page Different architectural choices.
Paul Trani Adobe Certified Instructor/Expert Resources:
Presented by…. Group 2 1. Programming language 2Introduction.
CIT 256 Organizing Large Websites: Divs, DW Templates Dr. Beryl Hoffman.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Classroom User Training June 29, 2005 Presented by:
Yahoo! User Interface (YUI) Library Natly Mekdara.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
Copyright © Allyn & Bacon 2008 POWER PRACTICE Chapter 7 The Internet and the World Wide Web START This multimedia product and its contents are protected.
WEB DESIGN USING DREAMWEAVER. The World Wide Web –A Web site is a group of related files organized around a common topic –A Web page is a single file.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Tutorial 7 Creating Forms. Objectives Session 7.1 – Create an HTML form – Insert fields for text – Add labels for form elements – Create radio buttons.
Domain 3 Understanding the Adobe Dreamweaver CS5 Interface.
Presentation title: 32pt Arial Regular, black Recommended maximum length: 1 line My Library Phase 3 concepts.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
Chapter 11 Adding Media and Interactivity. Chapter 11 Lessons Introduction 1.Add and modify Flash objects 2.Add rollover images 3.Add behaviors 4.Add.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
Irakli Garibashvili Director, National Scientific Library in Georgia.
Pimp your web browser at the library! - Mozilla Firefox and creative marketing of library services Roman Koshykar RIT Libraries Upstate New York Science.
COMP 143 Web Development with Adobe Dreamweaver CC.
| 1 EBSCOadmin EBSCO Support EDS Wiki Renata Wlodarczyk | EBSCO.
How to Apply PDF in Flipbook on Website. Description If you are finding solution for applying PDF in flipbook mode on website, and adding multimedia items.
Section 10.1 Define scripting
Advanced HTML Tags:.
Developing Online Tools To Support The Visualization Of Ocean Data For Educational Applications Poster #1767 Michael Mills, S. Lichtenwalner,
Architecture Review 10/11/2004
Working with Links and Navigation
Creating a Flash Web Site
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Interact 2: Options for organising and presenting content
Objective % Select and utilize tools to design and develop websites.
GALILEO Support Services
Cms Full-featured Flexible Web Content Management System for All Your Needs.
Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals Wikis are collections of searchable,
CMS I – BASIC WEB EDITING INTRODUCTION TO THE CMS
How to use.
Personal Website Final Project
CARA 3.10 Major New Features
Google Web Toolkit Tutorial
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
COP3530- Data Structures JSFiddle
CHAPTER 8 Multimedia Authoring Tools
Objective % Select and utilize tools to design and develop websites.
Understand Windows Forms Applications and Console-based Applications
Tutorial Introduction to support.ebsco.com.
Oracle Sales Cloud Sales campaign
Tutorial 6 Creating Dynamic Pages
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
SEEM4570 Tutorial 5: jQuery + jQuery Mobile
CIS 133 mashup Javascript, jQuery and XML
PDS, Primo, Aleph, MetaLib, SFX General workflow
Tutorial Introduction to help.ebsco.com.
Presentation transcript:

University Libraries and Dep. Of Computer Science Virginia Tech LibX 2.0 - an Open Source, Community Platform for Delivering Library Services Code4Lib 2009 Godmar Back University Libraries and Dep. Of Computer Science Virginia Tech

LibX 1.0 Toolbar and right-click context menu Adaptive and user-configurable context menus OpenURL support Magic Button (Google Scholar support) Web Localization via Embedded Cues Autolinking Off-campus access via EZProxy or WAM Support for CiteULike Support for COinS Support for xISBN Show/Hide Hotkey 4/10/2019 Code4Lib 2009

LibX 1.0 Toolbar and right-click context menu Adaptive and user-configurable context menus OpenURL support Magic Button (Google Scholar support) Web Localization via Embedded Cues Autolinking Off-campus access via EZProxy or WAM Support for CiteULike Support for COinS Support for xISBN Show/Hide Hotkey 4/10/2019 Code4Lib 2009

The LibX Edition Builder A configuration management tool for creating customized versions of LibX Customized version of LibX = LibX edition Edition configuration includes descriptions of community-local resources: OPACs, OpenURL, Proxy, Databases, Links, Branding, … Edition Builder is easy to use Makes heavy use of OCLC registries Uses sophisticated auto-detection techniques Usable by librarians, not just programmers Anybody can create, share, and manage editions Over 550 edition as of now, new ones created at a pace of 20/month Huge human investment 10’s of thousands of end users 4/10/2019 Code4Lib 2009

Where to go from here? A toolbar is great, but… Emerging technology trends Service-oriented architectures, web services interfaces – soon even to ILS! Data mash-ups; HTML widgets Educational trends: librarians, educators, and users create Online tutorials, subject guides, visualizations Social OPACs: tagging, reviews, recommender services 4/10/2019 Code4Lib 2009

But who will create those modules? World Wide Web But who will create those modules? Library Resources and Web Services LibX 2.0 plugin: executes Libapps, merging library information into pages. LibX 2.0 Users: decide to which library services to subscribe, see expanded view of the web Librarians: create or adapt Libapps from reusable, shareable modules 4/10/2019 Code4Lib 2009

The LibApp Model How can the interaction of LibX with web content be modeled? Typical tasks involve Examination of the page and extraction of information Processing of information Modification of the page A Module is a small piece of JavaScript code along with a metadata description of its input and/or output A Libapp is a group of modules A Package is a folder of libapps and packages 4/10/2019 Code4Lib 2009

Modules Modules are named using a URL and published via REST/AtomPub Modules can reference JavaScript libraries (e.g., jQuery) and CSS stylesheets Execute in a parallel environment to the client page Modules are trusted, with full access to LibX API, including edition configuration and user preferences Modules communicate with each other via tuple space 4/10/2019 Code4Lib 2009

LibX Tuple Spaces tuple = TAKE(template) WRITE (tuple) If a tuple matching template exists in the tuple space, remove it and return it If no tuple exists, wait until a matching tuple is written, remove it and return it Write a tuple into the space If a TAKE is pending with a matching template, complete the TAKE Tuples and Templates are JavaScript objects in JSON notation. Tuple example: { isbn: “0743226720” } Template example: { isbn : * } // any tuple with ‘isbn’ field 4/10/2019 Code4Lib 2009

Jangle Tuple Space ISBN Lookup Display Result { display: “ISBN 223.. is on the shelf” } ISBN Scraper { isbn: 2234532134 } Guarded-By: { isbn: *} Guarded-By: { display: * } Tuple Space 4/10/2019 Code4Lib 2009

Rationale for Tuple Spaces Software Engineering Handling Asynchrony Low coupling between modules Independent composition Simplicity Suitable for meta-programming User actions happen asynchronously Information arrives asynchronously from external sources Execution order independence 4/10/2019 Code4Lib 2009

LibAPP DEMO 1 Create a PRESENCE for THE LIBRARY 4/10/2019 Code4Lib 2009

4/10/2019 Code4Lib 2009

4/10/2019 Code4Lib 2009

Step 1: Arrangement Description: Display a Help icon on the ACM page that plays a video when clicked. Include: /portal\.acm\.org.*/ Require: jquery // Place the current edition's icon into the ACM portal page, next to the // current search button. libx.space.write ( { needsuserbutton: $('input[src="http://portal.acm.org/images/search_small.jpg"]'), image: libx.edition.options.icon, text: "Click for a short tutorial", action: function () { // When user clicks, offer to show a YouTube clip libx.space.write ( { youtube: "ehkfEcQ5YnQ"} ); } } ); 4/10/2019 Code4Lib 2009

Step 2: Place UI Button Description: Place a clickable image into a page Include: /.*/ Guarded-By: { needsuserbutton: libx.space.WILDCARD, action: libx.space.WILDCARD } Require: jquery // Create a link with an embedded image var a = $("<a href='javascript:void(0);'/>"); a.append('<img border="0" src="' + tuple.image + '"/>'); a.attr( 'title', tuple.text || ""); // Insert link after element where a 'user button' is wanted $(tuple.needsuserbutton).after(a); // Associate onclick handler and animate $(a).click(tuple.action).fadeOut("slow").fadeIn("slow"); 4/10/2019 Code4Lib 2009

Step 3: Create Youtube Clip Description: Create a notification to play a YouTube video, based on Video ID Include: /.*/ Guarded-By: { youtube: libx.space.WILDCARD } // Create HTML based on tuple.youtube libx.space.write ( { notify : '<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/'+tuple.youtube+'&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+tuple.youtube+'&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>', options: { width: '450px' } } ); 4/10/2019 Code4Lib 2009

Step 4: Display HTML Notification Description: Display HTML notifications via an embedded panel using jGrowl Include: /.*/ Guarded-By: { notify: libx.space.WILDCARD } Require: jquery Require: jgrowl Require: jgrowl.css // Set sticky:true unless provided in tuple.options var jGrowlOptions = $.extend({}, {sticky:true}, tuple.options); // Display notification $.jGrowl( tuple.notify, jGrowlOptions ); 4/10/2019 Code4Lib 2009

LibAPP DEMO 2 “Get Full Text Links for COinS” 4/10/2019 Code4Lib 2009

4/10/2019 Code4Lib 2009

COinS, the LibX 2.0 way <span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft_id=info:pmid/16646082&rft.genre=article"> Include: /.*/ Description: Find COinS Require: jquery $(“span.Z3988").each(function () { libx.space.write({ coins: this, contextobj: this.getAttribute('title') }); 4/10/2019 Code4Lib 2009

COinS, the LibX 2.0 way Include: /.*/ Description: Link COinS Guarded-By: { coins: libx.space.WILDCARD } Require: legacy-cues var cue = new libx.cues.StandardCoins(tuple.contextobj); cue.insertBefore(tuple.coins); 4/10/2019 Code4Lib 2009

4/10/2019 Code4Lib 2009

Add Link/360 direct link var link360 = libx.services.link360.getLink360(libx.edition); if (link360) link360.getMetadata({ query: tuple.contextobj, type: 'article', hasFullText: function (xmlDoc, url, databaseName) { cue.setAttribute('href', url); cue.setAttribute('title', "Users of " + libx.edition.links.primary.label + " click here for full text via " + databaseName); cue.setImageAttribute('src', 'http://www.lib.vt.edu/images/getvtext.gif'); cue.animate(); }, }); 4/10/2019 Code4Lib 2009

Transitioning from LibX 1.0 to 2.0 Complete redesign of LibX client code Browser-independent, strictly object-oriented JavaScript code with proper namespacing and encapsulation Provide full documentation (via jsdoc, accessible in about:libx) Provide built-in interactive reflection of data structures Include unit tests (run via Rhino) Hot updatable 4/10/2019 Code4Lib 2009

LibX 2.0 – Roles LibX 2.0 Developers – make services available and write modules and libapps LibX 2.0 Adapters – combine modules into libapps, reuse and adapt libapps, bundles and share libapps as packages LibX 2.0 User Community - subscribes to packages or libapps they like 4/10/2019 Code4Lib 2009

LibX 2.0 Community Repository Based on tuple space model, create metadata descriptions for modules Create a repository of modules, libapps, and packages Editable like a Wiki Integrate repository into Edition Builder Include consistency checking This will be done during the next 2 years (but libapps can already be created now) 4/10/2019 Code4Lib 2009

Call for Developers Launched Developer Website Launched mailing list http://developers.libx.org Launched mailing list libx-dev@googlegroups.com Transition path: update from LibX 1.5 Agile roll-out, no “releases” We invite you to try and play with it! 4/10/2019 Code4Lib 2009

LibX Team Annette Bailey Godmar Back Kyrille Goldbeck Mike Doyle Arif Khokar Travis Webb Alumni Nathan Baker Tilottama Gaat Tobias Wieschnowsky 4/10/2019 Code4Lib 2009