320 likes | 534 Views
LibX 2.0 - A Community Platform for Developing Library Services. LITA National Forum 2009 Annette Bailey. 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
E N D
LibX 2.0 - A Community Platform for Developing Library Services LITA National Forum 2009 Annette Bailey
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 LITA National Forum 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 LITA National Forum 2009
Library Resources are Local • Libraries provide different services • Local resources: catalog types, OpenURL resolver, e-Journals lists, local databases, subject pages/guides, consortia catalogs, licensed citation software • Many custom settings (“search scopes,” local indices, local ERM) that reflect local circumstances LITA National Forum 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 650 editions as of now, new ones created at a pace of 20/month • Huge human investment • 10’s of thousands of end users LITA National Forum 2009
The LibX Edition Builder LITA National Forum 2009
LibX Enduser Communities Edition Builder Community Database adapts offers consults updates feeds back copy and share OCLC Registries consults tests External Resources probes manages publishes Edition Repository builds downloads and installs LibX Edition Maintainers LITA National Forum 2009
LibX Edition Statistics • http://www.libx.org/stats/ • We’re counting: • Firefox installations • Internet Explorer installations • Sum of installations – “Both” • Only Live editions • Not necessary for edition to be Public LITA National Forum 2009
LibX 2.0 • Motivation • Overview and Goals • Preliminary Demos • Description of new framework • Future work LITA National Forum 2009
Where to go from here? • A toolbar is great, but… • Emerging technology trends • ILS increasingly integrated with the web • Service-oriented architectures, web services interfaces • Data mash-ups; HTML widgets • Educational trends: librarians, educators, and users create • Online tutorials, subject guides, visualizations • Social OPACs: tagging, reviews, recommender services LITA National Forum 2009
World Wide Web LibX 2.0 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
Why A Community Platform? • LibX developers can’t possibly support all emerging services for all local communities • Must make it easy for community to contribute support for new services in a way that can be shared • Goal: Enable LibX maintainers to become meta-designers • Meta-Design: • Software that enables users who are not trained programmers to design tools • see Fischer, G., et al. “Meta-design: a manifesto for end-user development” [2004] LITA National Forum 2009
Goals for LibX 2.0 • Simple integration with existing services • ILS, OpenURL resolvers, databases, etc. • Localization • Services must meet the needs of the targeted community • Reuse • Librarians will be able to share the services they create • Browser Independence • Librarians should be shielded from browser incompatibilities (as much as possible) • Simple hosting and deployment • Librarians should have the ability to develop, adapt, manage and deploy services directly to their community with minimal effort LITA National Forum 2009
Usage Case 1: Extending the librarian’s presence • Users often have difficulties with database user interfaces • Librarians create tutorials, tips, etc. • LibX 2.0 allows librarians to offer their materials directly where users need them • Example: Assistance with Engineering Village LITA National Forum 2009
Usage Case 2: Offering library resources intelligently • Users often use search engines instead of the library catalog. • LibX 1.0 already places links • LibX 2.0 will integrate search results from library resources (OPACs) smartly into user’s page • Example: Google LITA National Forum 2009
LibX 2.0 – Search Integration Example LITA National Forum 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 LITA National Forum 2009
LibX 2.0 – Roles LITA National Forum 2009
Module = Code + Metadata • Code • will be written by developers • JavaScript code written to LibX 2.0 API • Metadata of a module can include: • Identifier: URL (published as Atom <entry>) • Creator • Description of functionality • Includes/excludes: which pages should it run on? • Dependencies on other modules LITA National Forum 2009
yazproxy Z39.50 Gateway ILS-DI/libxessjangle ILS snapshot Presearch Service Tuple Space Embedded Display (,,) Keyword Scraper (keyword: “Firefox Hacks”, location:, …) How Modules Communicate LibApp Service Module Modules communicate by placing data into a shared space LITA National Forum 2009
Usage Case 3: Intelligent COinS Processing • COinS: Context Object in <Span> • Metadata embedded in many pages (Wikipedia, etc.) • See http://ocoins.info • LibX 1.0 processes them and links to OpenURL resolver • LibX 2.0 actually contacts OpenURL resolver and places direct link to fulltext, if available <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"> LITA National Forum 2009
COinS Module 1: Collecting COinS Metadata: Runs on all pages Include: /.*/ Description: Find COinS Produces: { coins } Require: jquery $(“span.Z3988").each(function () { libx.space.write({ coins: this, contextobj: this.getAttribute('title') }); }); Code: Find all coins, Place information In tuple space LITA National Forum 2009
COinS Module 2: Processing COinS Metadata: Runs on all pages where a COinS was found Include: /.*/ Description: Link COinS Guarded-By: { coins: ANY } Require: legacy-cues var cue = new libx.cues.StandardCoins(tuple.contextobj); cue.insertBefore(tuple.coins); var link360 = libx.services.link360.getLink360(libx.edition); if (link360) link360.getMetadata({ … }); Code LITA National Forum 2009
LibX 2.0 Project Timeline Step 1:Build Core Step 2: Metadesign Step 3:Services • Build client side execution env • Document Developer API • Define how to publish Libapps • Prototype modules & libapps • Define Metadata Schema for Libapps • Implement LibAppBuilder,Web-Based Interface to manage Modules, Libapps & Packages • Developers implement modules • Edition maintainers create new libapps % Complete % Complete % Complete LITA National Forum 2009
Step 1: The LibX Core • Transition of code from LibX 1.0 to LibX 2.0 • Complete redesign of LibX client code • Make code fully browser-independent • Hot updatable • Document full API to allow outside developer to contribute • Document Atom format for publishing LibX libapps • Developer Website • http://developers.libx.org • Mailing List • libx-dev@googlegroups.com LITA National Forum 2009
Step 2: LibApp Builder • Meta-design Engine • Extension of the LibX Edition Builder • Contains database of modules, libapps, and packages • Allow searching, reuse • Consistency checking • Allows edition maintainer to offer packages to their users • Facilitates incremental deployment of libapps LITA National Forum 2009
Step 3: Services • We will develop a “LibX Core” package of libapps, including but not limited to: • All existing LibX 1.0 functionality • Support for obtaining holdings & availability from major OPACs • Looking for your ideas: where would you like to see the library’s presence on the web? LITA National Forum 2009
LibX Team • Annette Bailey • Godmar Back • Kyrille Goldbeck • Travis Webb • Alumni • Nathan Baker • Mike Doyle • Tilottama Gaat • Tobias Wieschnowsky LITA National Forum 2009