More Library Mashups
After the guest post last week, I got this email about more library mashups! Will Kurt, Applications Development Librarian at University of Nevada, Reno is working on two mashup projects that he will soon release into the wild:
I have 2 projects in the works that I thought you might be interested in:
The first is a mashup between the Google Books API+Library Catalog+ILL requests UNR BookFinder (http://www.youtube.com/watch?v=qaqcUSTtdVk)
and the other is a mashup between Brown’s FreeCite and OpenURL (also iLLiad) One Box Citation Finder (http://www.youtube.com/watch?v=QZw9GJUro5M)
I didn’t provide direct links because both projects are in the testing phase right now. Likewise for the source. Eventually I plan on releasing the source for these, but it still needs a little clean up
![]()
Feel free to send me your success stories, tips & tricks, or other mashup related news and I will post it here.
Library Mashup Success Story: Using importXML to scrape the OPAC
The following is a guest post from Kim Gormley.
I’m a librarian at the West Chester Public Library who’s just beginning to teach myself some programming, inspired by the projects in Library Mashups and elsewhere. Thank you for compiling such a great resource – I never thought I would be excited about coding!
I’d like to share a beginner-level trick that has helped us tremendously: using the importXML feature in Google Spreadsheets to make a dynamic list of required summer reading books that are on the shelf right now at WCPL. Does it still count as a mashup if we’re only using one data source? I’ll assume it does and plow on ahead.
The Problem: Most kids coming in for summer reading books just want to know which titles we have now and how to get their hands on them as quickly as possible. Unfortunately, our OPAC doesn’t group all editions of a work or allow you to sort by shelf status, so the search takes ages, even if you’re a whiz at using the catalog. Which you’re not, because no one is.
The Solution: tinyurl.com/wcplsr2010
Yes, there are probably much better ways to do this (Ajax? JavaScript?). It’s a kludge, but a surprisingly simple and effective kludge. The spreadsheet recovers quickly from its occasional loading problems, and doing 200+ imports every two minutes hasn’t hurt our server. For a non-programmer newbie (like me) it’s an easy win. You can set up a list in a matter of days, bask in the gratitude of patrons and librarians alike, and do it all with just three Spreadsheet formulas.
Other possible uses: “Reading Olympics” books, princess books (we get that one all the time), new music CDs, new DVDs, bestsellers, Oprah’s picks, etc.
Here’s a bit of the cheat sheet I made for my coworkers, just in case you want it. It has the three formulas.
1. An import function looking for any copies of 1984 that are on our shelves
=importXml(“http://catalog.ccls.org/search~S1?/Xt:%281984%29+and+a:%28orwell%29&searchscope=1&l=eng&m=a&b=wc&SORT=D/Xt:%281984%29+and+a:%28orwell%29&searchscope=1&l=eng&m=a&b=wc&SORT=D&SUBKEY=t%3A%281984%29%20and%20a%3A%28orwell%29/1,1,1,B/holdings&FF=Xt%3A%281984%29+and+a%3A%28orwell%29&1,1,”&”?workaround=”&INT(NOW()*1E3)&REPT(GoogleFinance(“GOOG”);0);”//td[contains(.,'ON SHELF') or contains(.,'Recent')]/ancestor::tr/td[contains(.,'WC')]/following-sibling::td[1]“)
You will have to repeat this formula for each edition with a separate catalog record. Group all of these imports into one block so that you can easily use…
2. A formula to grab the import information from #1 and smoosh all the unique call numbers neatly into one cell
=arrayformula(concatenate(unique(substitute(D2:E20;”field v”;CHAR(13)))))
(I imported the field elements in #1 so I could transform them into carriage returns here.) Google limits you to 50 import functions per spreadsheet, so large lists have to be chunked into several “feeder” documents, which are then meta-scraped by the final document. Formulas #1 and #2 are in a feeder document.
Put all the #2 formula cells into one column so that you can import the whole range into the final document using…
3. A final import formula to get the call number data from the feeder
=arrayformula(if(importrange(“0AvLMkghcvzfedDFiTVFIVmFfd24wbF9yY3BpWndaNUE&hl=en”&”?workaround=”&INT(NOW()*1E3)&REPT(GoogleFinance(“GOOG”);0);”Feed!B2:B41″)=”#VALUE!”;”Not on Shelf”;if(importrange(“0AvLMkghcvzfedDFiTVFIVmFfd24wbF9yY3BpWndaNUE&hl=en”&”?workaround=”&INT(NOW()*1E3)&REPT(GoogleFinance(“GOOG”);0);”Feed!B2:B41″)=”";”Not on Shelf”;concat(concat(“On Shelf:”,CHAR(13)),importrange(“0AvLMkghcvzfedDFiTVFIVmFfd24wbF9yY3BpWndaNUE&hl=en”&”?workaround=”&INT(NOW()*1E3)&REPT(GoogleFinance(“GOOG”);0);”Feed!B2:B41″)))))
The feeder document contained 40 titles, with the #2 formula cells collected in B2:B41. Titles not on the shelf could result in either a blank cell or a VALUE! error, so I had to account for both possibilities.
That’s it. Just copy and paste the formulas, changing the URLs and data ranges as necessary.
Book Signing at ALA
I mentioned earlier that I would be speaking on Mashups at ALA this year, but I forgot to mention that after my talk I will be in the exhibit hall at the Information Today booth signing copies of the book. If you have a copy or want a copy, stop by the Information Today booth (#4016) on the 25th from 5:30pm-6:30pm and I’ll be happy to sign a copy for you.
Technorati Tags: ala2010
Library Mashups at ALA

Coming to ALA Annual in DC this year? If you want to learn more about mashups I’ll be giving a pre-conference sponsored by ACRL on the 25th.
Friday, June 25
1:00 – 4:30 p.m.
Madison Hotel (1177 15th St. NW)
Montpelier Room
Can’t wait to see some of you there!
Technorati Tags: ala2010
Mashups Book Signing at SLA 2010
Are you coming to SLA 2010 in New Orleans? Do you have a copy of Library Mashups or want one? I’ll be signing and selling copies of Library Mashups at the SLA Marketplace after my hands-on mashups CE course on Sunday, 13 June from 3:00-3:45pm. Stop by to get your book signed, to a buy a copy or just to say hi!
Technorati Tags: sla2010
Mashup Excel Data with Google Maps
There are are many ways to create Google Maps for integration in your library website. The newest edition to this list of map making tools is BatchGeo. Using this tool you can enter address info into an Excel Spreadsheet and paste it into BatchGeo and generate a Google Map. After you have created your map, BatchGeo will email you the code needed to embed the map into your site.
You can give it a whirl using the sample data that BatchGeo has on its homepage.
Trulia Adds Apartment Search
In my mashups workshops I teach attendees about Trulia. It only makes sense that I update you all (those who have attended my workshops) on the fact that Trulia is now adding apartment listings and other rental listings. This from the press release:
Trulia.com (www.trulia.com), smart real estate search to help consumers make better decisions, today announced the launch of its advanced search for rental listings. Trulia users can now take advantage of Trulia’s smart search engine to find the perfect home to rent or buy. In addition to more than 4 million homes for sale, consumers will now have access to millions of rentals across the United States.
Thanks to Lifehacker for pointing this upgrade out to me.
Library Mashups at SLA2010
I’ll be giving a hand on mashups workshop at this year’s SLA annual conference.
Sunday, 06/13/2010 8:00AM -12:00PM
Learn what mashups are and how they can be used, plus share examples from libraries around the world. Attendees will learn what tools to use to mash up library data with content from the web to reach more patrons. This hands-on workshop includes examples such as using maps to enhance library data, using Flickr for digital collections, and creating library websites with data from several information sources.
This workshop is for CE credit and if there aren’t enough registrants by the 27th of April it will be canceled. If you’re interested register soon!! The registration link can be found via the Conference Planner on the SLA site.
Mashups 5 Years Old
Programmable Web had a post a couple weeks about announcing the 5th birthday of the first web mashup:
Five years ago Paul Rademacher reverse engineered Google Maps to put Craigslist homes and rentals on a map on his site. The site essentially pre-launched the map mashup category, because there was no Google Maps API at the time. Even now, Paul’s HousingMaps.com is the prototypical example mashup and still used by many to find their new homes (and our HousingMaps profile is of course one of the first mashups added to our directory back in 2005). Since then, as we’ve seen, the Google Maps API has gone on to be the most popular API to use.
I have to admit that in all of my research, I didn’t realize that HousingMaps.com was the first ever web mashup. Learn more on ProgrammableWeb.
Book Signing A Success
Thank you to all who came to the book signing at Computers in Libraries. I got to talk to a bunch of awesome librarians – all excited to improve services at their libraries using what they learned in the book!

If you missed it but want a copy of the book, just visit the InfoToday site and make your purchase.
Technorati Tags: cil2010


