45
Using MAJAX and Google Book Classes in Mashups Annette Bailey University Libraries Virginia Tech April 29, 2008

Using MAJAX and Google Book Classes in Mashups

Embed Size (px)

DESCRIPTION

Using MAJAX and Google Book Classes in Mashups. Annette Bailey University Libraries Virginia Tech April 29, 2008. Mashups. Are hybrid web applications that combine information drawn from various web sources Simple example: A library web page that includes a news feed. Mashup Example. - PowerPoint PPT Presentation

Citation preview

Page 1: Using  MAJAX and  Google Book Classes in Mashups

Using MAJAX and Google Book Classes in

Mashups

Annette BaileyUniversity Libraries Virginia Tech

April 29, 2008

Page 2: Using  MAJAX and  Google Book Classes in Mashups

Userreviews

Facetedbrowsing

RSS feeds

Mashups

Wikis

Blogs

Tagging

LibX

Library 2.0

Page 3: Using  MAJAX and  Google Book Classes in Mashups

Mashups

• Are hybrid web applications that combine information drawn from various web sources

• Simple example:• A library web page that

includes a news feed

Page 4: Using  MAJAX and  Google Book Classes in Mashups

Mashup Example

Library Homepage

LatestLibraryNewsItems

Page 5: Using  MAJAX and  Google Book Classes in Mashups

Mashup Sources

• RSS Feeds• Web services, e.g. Google API,

Amazon API• StrikeIron is a market place that

matches providers and users

• How can the III Millennium system become an information source for mashups?• That’s where MAJAX comes in

Page 6: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Overview

• Millennium AJAX is software that allows mixing catalog data into web pages• Freely available from VT• Simple to install & use• No III support required• No plug-in for users to install

Page 7: Using  MAJAX and  Google Book Classes in Mashups

New Books List

• Library publishes a list of newly acquired books every month

• We would like to include up-to-the-minute circulation information in this list

Page 8: Using  MAJAX and  Google Book Classes in Mashups

New Books List Demo

Page 9: Using  MAJAX and  Google Book Classes in Mashups

New Books List

Page 10: Using  MAJAX and  Google Book Classes in Mashups

MAJAX

• Millennium AJAX• Asynchronous

• Query the catalog without the user having to wait

• JavaScript • Run in client’s browser to construct page

content • And • XML

• (Really HTML) – comes from a web service: here, Millennium’s MARC display

Page 11: Using  MAJAX and  Google Book Classes in Mashups

Screen Scraping MARC

Page 12: Using  MAJAX and  Google Book Classes in Mashups

Course Page Demo

A professor wants to offer a list of books on his course page, along with full bibliographic and up-to-the-minute holdings information

about each book

Page 13: Using  MAJAX and  Google Book Classes in Mashups

Course Page Demo

• Screen Shot

Page 14: Using  MAJAX and  Google Book Classes in Mashups

The Pyramid of Web Skills

PhP,Ruby, …

JavaScript

HTMLLibrarians

Programmers

Page 15: Using  MAJAX and  Google Book Classes in Mashups

Installing & Using MAJAX

• To install MAJAX at your institution, upload two files to your catalog’s /screens directory:• majax.js• majax.html

• To use MAJAX in web pages• include <script> tag once• include <span> tags wherever library

catalog information should be inserted

Page 16: Using  MAJAX and  Google Book Classes in Mashups

Course Page HTML

<script type="text/javascript" src="http://yourlibrarycatalog/screens/majax.js"></script>

<script type="text/javascript" src="http://yourlibrarycatalog/screens/majax.js"></script>

<span title="i0596002556" class="majax-harvard-reference majax-newline majax-ebook"></span><span title="i0596002556" class="majax-showholdings majax-linktocatalog"></span>

<span title="i0596002556" class="majax-harvard-reference majax-newline majax-ebook"></span><span title="i0596002556" class="majax-showholdings majax-linktocatalog"></span>

Page 17: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Identifiers• <span title=“IDENTIFIER”

class=“MAJAX-CLASSES”></span>

• IDENTIFIER can refer to ISBN, Bibrecord #, OCLC #, or Book Title

ISBN ‘i’ i006073132X

Bibrecord ‘.b’ .b2275560

OCLC # ‘o’ o57207630

Title ‘t’ tfreakonomics

Page 18: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Alternative Syntax

• <span title=“T*” class=“MAJAX-CLASSES”>IDENTIFIER

</span>• T can be ‘i’, ‘o’, ‘t’, or ‘.b’• IDENTIFIER as defined on previous slide

without leading character

<span title=“i*" class="majax-showholdings">0596002556</span>

<span title=“i*" class="majax-showholdings">0596002556</span>

Page 19: Using  MAJAX and  Google Book Classes in Mashups

MAJAXClasses

Holdings Relatedmajax-showholdingsmajax-showholdings-briefmajax-showholdings-divmajax-ebookmajax-showholdings locations

Bibliographic Informationmajax-marc-???majax-marc-???-?majax-harvard-referencemajax-endnotemajax-endnote-switchmajax-endnote-import

Miscellaneousmajax-syndetics-*majax-linktocatalogmajax-reportfailuremajax-newlinemajax-space

Page 20: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Examples (1)

MAJAX class MAJAX outputmajax-harvard-reference Levitt, Steven D., Dubner, Stephen J.,

2005, Freakonomics : a rogue economist explores the hidden side of everything / 1st ed., New York, William Morrow, xii, 242 p. ;

majax-showholdings-div Copy 1: availableCopy 2: due 05-10-07Copy 3: due 07-22-07

majax-marc-050 HB74.P8 L479 2005

Page 21: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Examples (2)

MAJAX class MAJAX outputmajax-ebook [Electronic Book]

majax-marc-050 majax-linktocatalog

HB74.P8 L479 2005

majax-syndetics-vtech

Page 22: Using  MAJAX and  Google Book Classes in Mashups

• Create a new file: majaxcustomize.js• Include the file using a <script> tag on the

page where you want to use MAJAX

MAJAX Customization

• Define your customized variables

<script type="text/javascript" src="http://yourlibrarycatalog/screens/majaxcustomize.js"></script>

<script type="text/javascript" src="http://yourlibrarycatalog/screens/majaxcustomize.js"></script>

var singleCopyStatus = “Un exemplaire est %s”; var singleCopyStatus = “Un exemplaire est %s”;

Page 23: Using  MAJAX and  Google Book Classes in Mashups

Load Considerations• MAJAX uses caching and sends

exactly 1 request per unique item per page to the server• Regardless of the number of span tags

referencing an item• MAJAX imposes additional load on

your III system• Currently self-limiting to 100 requests per

second per page, which can be changed.• To turn MAJAX capabilities off, simply

remove majax.html & majax.js from the /screens directory.

Page 24: Using  MAJAX and  Google Book Classes in Mashups

Limitations

• MAJAX works only on web pages from within the same domain as your Millennium system

• If Millennium runs on addison.vt.edu, MAJAX can be used on all pages in *.vt.edu• www.lib.vt.edu Ok • courses.cs.vt.edu Ok • livejournal.com Not Ok (needs a proxy)

• MAJAX works in Internet Explorer 6.x and up, Firefox, and Safari browsers• Will fail silently on other browsers

Page 25: Using  MAJAX and  Google Book Classes in Mashups

MAJAX Summary

• MAJAX provides the ability to include live catalog information in any webpage on your domain• Without special server support, access or

programming• Without requiring end users to install any plug-

ins• It is easy to use, requiring only HTML skills• Free!• Has been adopted by a number of III

libraries• Users have contributed suggestions, bug fixes,

and help test it

Page 26: Using  MAJAX and  Google Book Classes in Mashups

Part 2

Google Book Classes

Page 27: Using  MAJAX and  Google Book Classes in Mashups

Mashing a Service into the III Catalog Display

• MAJAX mashes catalog data into other web pages

• Now we’ll mash data from another service into the library catalog

Page 28: Using  MAJAX and  Google Book Classes in Mashups

Google Book Search Book Viewability API

• Programmatic client-side access to small set of Google Book Search information• Provides thumbnails of book covers• Provides link to Google’s book

information, preview, or full text pages• Provides information on whether Google

has full text, partial preview, or no preview

• Indexed by ISBN#, OCLC#, LCCN#• Released March 2008

Page 29: Using  MAJAX and  Google Book Classes in Mashups

Goals

• We want to incorporate information from Google Book Search into our catalog• E.g., allow users to see a preview of

a book if one is available from Google

• Or use Google’s book covers• Without JavaScript coding• (even though Google’s API requires

JavaScript coding as it is)

Page 30: Using  MAJAX and  Google Book Classes in Mashups

Google Book Classes

Demo

Page 31: Using  MAJAX and  Google Book Classes in Mashups

Google Books Demo

Buttons appear if Google Book Search has a partial preview of book

Page 32: Using  MAJAX and  Google Book Classes in Mashups

Google Books Demo (2)

Buttons appears if Google has a partial preview of book

Page 33: Using  MAJAX and  Google Book Classes in Mashups

Google Book Classes

• A JavaScript library and set of classes that simplify using the Google Book Search Book Viewability API• Can be used on any web page,

including inside the Millennium system

• Usage is much like MAJAX• Available from libx.org/gbs

Page 34: Using  MAJAX and  Google Book Classes in Mashups

Using Google Book Classes(on general web server)• Upload a copy of gbsclasses.js to your server• Include gbsclasses.js in a <script> tag in the

target page

• Include the class(es) in <span> tags

<script type="text/javascript" src="http://yourserver/yourpath/gbsclasses.js"></script>

<script type="text/javascript" src="http://yourserver/yourpath/gbsclasses.js"></script>

<span title=“ISBN:0596002556” class=“gbs-thumbnail”></span>

<span title=“ISBN:0596002556” class=“gbs-thumbnail”></span>

Page 35: Using  MAJAX and  Google Book Classes in Mashups

GBS Identifiers• <span title=“IDENTIFIER”

class=“GBS-CLASSES”></span>

• IDENTIFIER can refer to ISBN #, OCLC #, or LCCN#

• Alternate syntax: use * as IDENTIFIER

ISBN ISBN:006073132X

OCLC OCLC:57207630

LCCN LCCN:2004022563

Page 36: Using  MAJAX and  Google Book Classes in Mashups

Using Google Book Classes in Millennium1. Include gbsclasses.js in HTML

template file via <script> tag• E.g. toplogo.html

2. Use III fieldspec token to insert HTML that includes the Google Book Classes into the briefcit.html file

Page 37: Using  MAJAX and  Google Book Classes in Mashups

briefcit.html

briefCitPub <div>

Page 38: Using  MAJAX and  Google Book Classes in Mashups

A Google Preview Button

<div class="briefCitPub"><table><tr><td style="text-align:left" width="65%"><!--{fieldspec:Vbp260}--></td><td width="35%"><span style="display:none" title="*" class="gbs-link-to-info gbs-if-partial gbs-remove-on-failure"><!--{fieldspec:Vbi020}--> <img src="http://code.google.com/apis/books/images/api-example2.png"></span></td></tr></table></div>

<div class="briefCitPub"><table><tr><td style="text-align:left" width="65%"><!--{fieldspec:Vbp260}--></td><td width="35%"><span style="display:none" title="*" class="gbs-link-to-info gbs-if-partial gbs-remove-on-failure"><!--{fieldspec:Vbi020}--> <img src="http://code.google.com/apis/books/images/api-example2.png"></span></td></tr></table></div>

Inside “Publisher” box

Insert 1x2 HTML table

260 Field goes in left column

hide span initially Link to info page – but only ifGoogle has a partial view

Remove span if Google does not index this ISBN

III will put first 020 Field here

briefcit.html

Page 39: Using  MAJAX and  Google Book Classes in Mashups

Currently Supported Google Book Classes• Thumbnails Image

• gbs-thumbnail• Wrap span in a hyperlink

• gbs-link-to-preview• gbs-link-to-info• gbs-link-to-thumbnail

• Conditionals: only keep span if …• gbs-if-noview• gbs-if-partial-or-full• gbs-if-partial• gbs-if-full

• Remove if Google does not index book• gbs-remove-on-failure

• Multiple classes can be combined

Page 40: Using  MAJAX and  Google Book Classes in Mashups

Google Book Classes: Summary

• Google Book Classes allows the use of the Google Book Viewability API in mashups• Without requiring any

JavaScript or AJAX knowledge• Allows integration in places

(such as III briefcit.html) where control of a page is limited

Page 41: Using  MAJAX and  Google Book Classes in Mashups

Acknowledgements

• Dr. Godmar Back• Assistant Professor

Computer Science

Page 42: Using  MAJAX and  Google Book Classes in Mashups

Questions?

Thank you!

http://libx.org/majax

http://libx.org/gbs

Contact us:

[email protected]

Page 43: Using  MAJAX and  Google Book Classes in Mashups

WebBridge Example (1)

majaxresource 1

majaxresource 2

majaxresource 3

Page 44: Using  MAJAX and  Google Book Classes in Mashups

WebBridge Example (2)

majaxresource 1

majaxresource 2

majaxresource 3

Page 45: Using  MAJAX and  Google Book Classes in Mashups

Setting Up MAJAX for WebBridge • Add <script> tag to resserv_panel.html• WebBridge Management interface• Create 1 or more resources• Associate hasISBN or hasTitle data tests• Embed <span> tags in Link Display

field