SlideShare a Scribd company logo
Creating Library Web
      Services:
  Mashups and APIs
        Karen A. Coombs
   lirbarywebchic@gmail.com
About Me



• ~ 10 Years library web stuff
• Self taught coder who loves to play
• Work with developers regularly
About You

• Name
• Institution
• Techie skills
 • HTML, Javascript, DOM, XML,
   Server side scripting (PHP, ASP, Rails,
   Coldfusion...)
• What you want to learn today
What Is A Mashup?



• a Web application that uses and/or
  combines data from multiple sources
  within a single tool
Why Create A Mashup
• Want to bring together disparate data
  sources
• Want to enhance a existing source of
  data
• Want to improve usability and user
  interfaces
• Want to make a web page more
  dynamic and engaging
Some Library Mashups
• LibraryFind
• Repository 66
• Scriblio
• Terrapod Project
• Texas A&M Geologic Atlas of the US
• VuFind implementations
• WorldCat Search plugin for FCKEditor
Mashups Don’t have to
    Be Read Only
• Web Services can be capable of read/
  write
• A mashup could write data as part of its
  functionality
• Examples
 • Flickr Manager plugin for Wordpress
 • Kaltura plugin for Wordpress
How Do Mashups Work?


• Take existing data within a system
• Retrieve data from another source(s)
  typically via a web service
• Mix these datasets together for UI
  purposes
Technologies Behind
      the scenes


• Web Services (REST, SOAP, XML-RPC)
• Some server side or client side scripting
  language
• Data formated in XML or JSON
What are Web Services?

• Machine readable data or procedures
  access via HTTP
• On a remote/external system (usually)
• Use structured data for data exchange
  (often XML)
• Come in 3 flavors : RPC, SOAP, REST
REST Primer

• Easiest web service style
• Readable by Humans
• Most popular form of web services
  today
• Create, Read, Update Delete
• POST, GET, PUT, DELETE
What is JSON?

• Javascript Object Notation
• Text file used to pass information from
  one system to another
• Javascript treats it as an object
  • which makes it easily navigated and
    specific pieces cherry-picked
ProcessGBSBookInfo({
  "ISBN0765304368":{
      "bib_key":"ISBN0765304368",
      "info_url":"http://books.google.com/books?
id=gfg13CM_kU8C&source=gbs_ViewAPI",
      "preview_url":"http://books.google.com/books?
id=gfg13CM_kU8C&printsec=frontcover&sig=jIrSb_Skc
QRhy_VvtnKbTXjmvos&source=gbs_ViewAPI",
      "thumbnail_url":"http://books.google.com/books?
id=gfg13CM_kU8C&pg=PP1&img=1&zoom=5&sig=LsT
wGVAsy_qWYMPM6HVDTPAMokg",
      "preview":"full"
      }
  });
XML Data Manipulation

• XPath
• Little bit like the DOM but more
  complex and smart
• Allows you to cherry pick info in XML
  documents
• Learn more about XPath - http://
  www.w3schools.com/xpath
XML XPATH EXAMPLE



• Want to get the feed name
• Want to get the item title, description,
  and url
The XPath


• Feed Title - /feed/title
• Item title - //entry/title or /feed/
  entry/title
• Item Content - //entry/content
• Item Url - //entry/link@href
Cross Server Scripting
        Issues
• AJAX doesn’t allow you to access
  “scripts” across servers
 • XML, PHP or other scripting
   languages
• Can access JSON across servers
 • Reason why JSON popular
• Workaround
Cross Server Scripting
    Workarounds

• Proxy the script via the webserver
 • Apache mod_proxy
• Use an intermediary to transform
  content into JSON
 • Use PHP to convert XML to JSON
Possible Types Of Data
• Bibliographic Data
• Book Covers
• Digital Library metadata and objects
• Reviews
• Ratings
• Library Information
• Map Data
Data Sources For
         Mashups
• Feeds from library catalog, Amazon or other
  sources
• Covers, Ratings and Reviews from
  LibraryThing
• ISBNdb.com
• Preview or fulltext from GoogleBooks
• Info from Wikipedia
• Data from Talis platform
• Data from Open Library
Other Library Vendor
         Web Services
• Serial Solutions - http://journal.code4lib.org/
  articles/108
• SFX
• Gold Rush Link Resolver - http://
  grx.coalliance.org/grxtest/dsp/
  grx_documentation.pdf
• Lots of library database platforms
• Several library catalogs
OCLC Web Services
     for Mashups
• WorldCat Search API
• WorldCat Identities
• xID services
  • xISBN
  • xISSN
  • xOCLCNum
• Registry Search
• Registry Detail
WorldCat Search API


• Search WorldCat in a programmatic
  fashion
 • OpenSearch, SRU
• Get data back as XML
 • Atom, RSS, MARCXML, Dublin Core
xID Service
• Service for identifiers
 • OCLC number, ISSN, ISBN
• Send an identifier
• Get related identifiers back
• Get information about item
 • Peer Reviewed or not
 • RSS for Table of Contents
Worldcat Registry

• Data about libraries throughout the
  world
 • Name
 • Address
 • Catalog url
 • Type (public, academic, special ...)
Serial Solutions API

• OpenURL based
• Send an OpenURL
• Get back holdings information
• Uses
 • Crosslisting ebooks
 • Direct Links to Fulltext in LibraryFind
Serial Solutions API
       Response

• Citation
• Holdings Info
 • Provider - Proquest
 • Database Name - Safari Tech Books
 • Start & End Dates
• URL(s)
Serial Solution
       Response URLs
• Different types of URLs
• Depends on OpenURL sent
  • format
  • granularity
• Books - source, book
• Journal - source, article, journal,
  volume, issue
Crosslisting Ebooks
Direct Links to Fulltext
     in LibraryFind
Other APIs We’re Using
• Google Calendar API - http://
  code.google.com/apis/calendar/
  data/2.0/developers_guide.html
• Google Maps - http://
  code.google.com/apis/maps/
• Last.fm - http://www.last.fm.api
• Wikipedia API - http://
  en.wikipedia.org/w/api.php
Other APIs of Note

• Blip.tv API - http://wiki.blip.tv/index.php/
  Blip.tv_API
• Delicious API - http://delicious.com/help/api
• Flickr API - http://www.flickr.com/services/api/
• YouTube API - http://code.google.com/apis/
  youtube/overview.html
• Yahoo Maps API - http://developer.yahoo.com/
  maps/
The Simplest Mashups

• Widgets
 • Google Embedded Preview
 • LibraryThing Widgets
 • Flickr Widgets
 • WorldCat list widget
 • Yahoo Pipes
The Simplest Mashups
• Feeds
 • The poor man’s web services
 • XML
 • Can have schemas added to them
• Feed2JS
 • embed a feed in a web page
• Drupal and Wordpress can have feeds
  embedded into pages
Mashups Made Easy
    With Yahoo Pipes

• Drag and drop UI for creating mashups
• Free
• Lots of examples
• Some library examples
 • RSS of Books + Covers
 • Finding Alternative Copies of a Book
Why Use Pipes?
• Programming for non-programmers
• Good user community
• Clone!!
• End up with a variety of formats
 • Widgets
 • RSS
 • JSON
 • PHP
Feed Remix with Pipes


• Find several feed you want to mix
  together
• Get their feed urls
• Filter if you want
• New Feed output
WorldCat Search
     + Book Covers
• RSS + Cover Data + Yahoo Pipes
• ISBN essential
• How does it work?
 • RSS feed from WorldCat Search API
 • Extracts ISBN
 • Gets cover data
 • Builds new feed with covers
WorldCat Registry
     + Yahoo Maps

• Send registry request for data for a
  particular location (zip code, city)
• Retrieve results
• Send address information to Yahoo
  Maps
• Get library locations plotted on map
WorldCat Holdings
     + Yahoo Maps
• Send an OCLC number and location to
  WorldCat Search API
• Returns a list of libraries nearest that
  location with holdings (includes
  address)
• Send libraries’ address to Yahoo Maps
• See which libraries in that location have
  that book visualized
Crosslisting Content
    In the Catalog

• Serial Solutions OpenURL Resolver
 • API
• WorldCat Search API
• ISBN/ISSN
• Adds also available as link to ebook
  print book
Four Code
       Walkthroughs

• Google Calendar Embedding
• WorldCat Search + Book Covers +
  Ratings + Preview at Google Books
• WorldCat Search Holdings + Google
  Maps
• Journal List Enhancements
Web Services for
     Interoperability

• Lots of different ways in which people
  can access information
• Different devices
 • Mobile devices, computers, special
   purpose devices
• Machine access to data
Mobile Catalog
        Prototype
• WorldCat Search API
• Open Library/LibraryThing Covers
• Summary - ISBNdb.com
• Full text/Preview
 • Hathi Trust
 • Google Books
• Screenscrape Item data

More Related Content

What's hot

Austin Day of Rest - Introduction
Austin Day of Rest - IntroductionAustin Day of Rest - Introduction
Austin Day of Rest - Introduction
HandsOnWP.com
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
SPC Adriatics
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache Solr
Alexandre Rafalovitch
 
Demand, Media, and Search Analytics at AOL
Demand, Media, and Search Analytics at AOLDemand, Media, and Search Analytics at AOL
Demand, Media, and Search Analytics at AOL
Sean Timm
 
Ron
RonRon
New Ways of (Web) Content Management
New Ways of (Web) Content ManagementNew Ways of (Web) Content Management
New Ways of (Web) Content Management
SPC Adriatics
 
Fc3 integration strategies
Fc3 integration strategiesFc3 integration strategies
Fc3 integration strategies
GabrieleSani3
 
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed ContentHigh Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
Nicolle Morton
 
The WordPress University 2012
The WordPress University 2012The WordPress University 2012
The WordPress University 2012
Stephanie Leary
 
Islandora and Linked Open Data
Islandora and Linked Open Data Islandora and Linked Open Data
Islandora and Linked Open Data
eohallor
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
John Calvert
 
Slug: A Semantic Web Crawler
Slug: A Semantic Web CrawlerSlug: A Semantic Web Crawler
Slug: A Semantic Web Crawler
Leigh Dodds
 
Optimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content ManagementOptimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content Management
DocFluix, LLC
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
BigBlueHat
 
Smart crawler a two stage crawler
Smart crawler a two stage crawlerSmart crawler a two stage crawler
Smart crawler a two stage crawler
Rishikesh Pathak
 
Tips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding RequiredTips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding Required
Acquia
 
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
European Collaboration Summit
 
The original vision of Nutch, 14 years later: Building an open source search ...
The original vision of Nutch, 14 years later: Building an open source search ...The original vision of Nutch, 14 years later: Building an open source search ...
The original vision of Nutch, 14 years later: Building an open source search ...
Sylvain Zimmer
 
Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?
therealgaston
 
Beyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleighBeyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleigh
Glenn Ansley
 

What's hot (20)

Austin Day of Rest - Introduction
Austin Day of Rest - IntroductionAustin Day of Rest - Introduction
Austin Day of Rest - Introduction
 
Developing Search-driven application in SharePoint 2013
 Developing Search-driven application in SharePoint 2013  Developing Search-driven application in SharePoint 2013
Developing Search-driven application in SharePoint 2013
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache Solr
 
Demand, Media, and Search Analytics at AOL
Demand, Media, and Search Analytics at AOLDemand, Media, and Search Analytics at AOL
Demand, Media, and Search Analytics at AOL
 
Ron
RonRon
Ron
 
New Ways of (Web) Content Management
New Ways of (Web) Content ManagementNew Ways of (Web) Content Management
New Ways of (Web) Content Management
 
Fc3 integration strategies
Fc3 integration strategiesFc3 integration strategies
Fc3 integration strategies
 
High Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed ContentHigh Voltage - Building Static Sites With Wordpress-Managed Content
High Voltage - Building Static Sites With Wordpress-Managed Content
 
The WordPress University 2012
The WordPress University 2012The WordPress University 2012
The WordPress University 2012
 
Islandora and Linked Open Data
Islandora and Linked Open Data Islandora and Linked Open Data
Islandora and Linked Open Data
 
SharePoint 2013 APIs
SharePoint 2013 APIsSharePoint 2013 APIs
SharePoint 2013 APIs
 
Slug: A Semantic Web Crawler
Slug: A Semantic Web CrawlerSlug: A Semantic Web Crawler
Slug: A Semantic Web Crawler
 
Optimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content ManagementOptimizing SharePoint for Transactional Content Management
Optimizing SharePoint for Transactional Content Management
 
NoSQL: Why, When, and How
NoSQL: Why, When, and HowNoSQL: Why, When, and How
NoSQL: Why, When, and How
 
Smart crawler a two stage crawler
Smart crawler a two stage crawlerSmart crawler a two stage crawler
Smart crawler a two stage crawler
 
Tips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding RequiredTips for Tuning Solr Search: No Coding Required
Tips for Tuning Solr Search: No Coding Required
 
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
ECS19 - Laura Kokkarinen - Everything you need to know about SharePoint site ...
 
The original vision of Nutch, 14 years later: Building an open source search ...
The original vision of Nutch, 14 years later: Building an open source search ...The original vision of Nutch, 14 years later: Building an open source search ...
The original vision of Nutch, 14 years later: Building an open source search ...
 
Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?Do you need an external search platform for Adobe Experience Manager?
Do you need an external search platform for Adobe Experience Manager?
 
Beyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleighBeyond WP-CONTENT | #WCRaleigh
Beyond WP-CONTENT | #WCRaleigh
 

Similar to Library Mashups & APIs

Building Software Backend (Web API)
Building Software Backend (Web API)Building Software Backend (Web API)
Building Software Backend (Web API)
Alexander Goida
 
Library Mashups: What's New
Library Mashups: What's NewLibrary Mashups: What's New
Library Mashups: What's New
Nicole Baratta
 
Library Mashups: What's New
Library Mashups: What's NewLibrary Mashups: What's New
Library Mashups: What's New
Nicole Baratta
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
QueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web ServicesQueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web Services
Matt Butcher
 
Drupal and Apache Stanbol
Drupal and Apache StanbolDrupal and Apache Stanbol
Drupal and Apache Stanbol
Alkuvoima
 
Current and emerging trends in library services
Current and emerging trends in library servicesCurrent and emerging trends in library services
Current and emerging trends in library services
Nikesh Narayanan
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
Antonio Peric-Mazar
 
Analyzing Web Archives
Analyzing Web ArchivesAnalyzing Web Archives
Analyzing Web Archives
vinaygo
 
Swoogle
SwoogleSwoogle
NoSQL, Apache SOLR and Apache Hadoop
NoSQL, Apache SOLR and Apache HadoopNoSQL, Apache SOLR and Apache Hadoop
NoSQL, Apache SOLR and Apache Hadoop
Dmitry Kan
 
Widget Workshop
Widget WorkshopWidget Workshop
Widget Workshop
librarywebchic
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
Wen-Tien Chang
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
guest432cd6
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
Robert Douglass
 
Practical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+SolrPractical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+Solr
Jake Mannix
 
Practical Machine Learning for Smarter Search with Solr and Spark
Practical Machine Learning for Smarter Search with Solr and SparkPractical Machine Learning for Smarter Search with Solr and Spark
Practical Machine Learning for Smarter Search with Solr and Spark
Jake Mannix
 
Solr + Hadoop: Interactive Search for Hadoop
Solr + Hadoop: Interactive Search for HadoopSolr + Hadoop: Interactive Search for Hadoop
Solr + Hadoop: Interactive Search for Hadoop
gregchanan
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB Foxx
Michael Hackstein
 
Html5 histroy api
Html5 histroy apiHtml5 histroy api
Html5 histroy api
Muktadiur Rahman
 

Similar to Library Mashups & APIs (20)

Building Software Backend (Web API)
Building Software Backend (Web API)Building Software Backend (Web API)
Building Software Backend (Web API)
 
Library Mashups: What's New
Library Mashups: What's NewLibrary Mashups: What's New
Library Mashups: What's New
 
Library Mashups: What's New
Library Mashups: What's NewLibrary Mashups: What's New
Library Mashups: What's New
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
QueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web ServicesQueryPath, Mash-ups, and Web Services
QueryPath, Mash-ups, and Web Services
 
Drupal and Apache Stanbol
Drupal and Apache StanbolDrupal and Apache Stanbol
Drupal and Apache Stanbol
 
Current and emerging trends in library services
Current and emerging trends in library servicesCurrent and emerging trends in library services
Current and emerging trends in library services
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Analyzing Web Archives
Analyzing Web ArchivesAnalyzing Web Archives
Analyzing Web Archives
 
Swoogle
SwoogleSwoogle
Swoogle
 
NoSQL, Apache SOLR and Apache Hadoop
NoSQL, Apache SOLR and Apache HadoopNoSQL, Apache SOLR and Apache Hadoop
NoSQL, Apache SOLR and Apache Hadoop
 
Widget Workshop
Widget WorkshopWidget Workshop
Widget Workshop
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
 
State-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache SolrState-of-the-Art Drupal Search with Apache Solr
State-of-the-Art Drupal Search with Apache Solr
 
Practical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+SolrPractical Machine Learning for Smarter Search with Spark+Solr
Practical Machine Learning for Smarter Search with Spark+Solr
 
Practical Machine Learning for Smarter Search with Solr and Spark
Practical Machine Learning for Smarter Search with Solr and SparkPractical Machine Learning for Smarter Search with Solr and Spark
Practical Machine Learning for Smarter Search with Solr and Spark
 
Solr + Hadoop: Interactive Search for Hadoop
Solr + Hadoop: Interactive Search for HadoopSolr + Hadoop: Interactive Search for Hadoop
Solr + Hadoop: Interactive Search for Hadoop
 
Rapid API Development ArangoDB Foxx
Rapid API Development ArangoDB FoxxRapid API Development ArangoDB Foxx
Rapid API Development ArangoDB Foxx
 
Html5 histroy api
Html5 histroy apiHtml5 histroy api
Html5 histroy api
 

More from librarywebchic

Open Source CMS Playroom
Open Source CMS PlayroomOpen Source CMS Playroom
Open Source CMS Playroom
librarywebchic
 
Building a Drupal-driven Intranet
Building a Drupal-driven IntranetBuilding a Drupal-driven Intranet
Building a Drupal-driven Intranet
librarywebchic
 
Real Life Experiences With Library APIS
Real Life Experiences With Library APISReal Life Experiences With Library APIS
Real Life Experiences With Library APIS
librarywebchic
 
Drupal Open Source Everything
Drupal Open Source EverythingDrupal Open Source Everything
Drupal Open Source Everything
librarywebchic
 
IFLA 2009 Web Cast - Creating a Successful Internet Presence
IFLA 2009 Web Cast - Creating a Successful Internet PresenceIFLA 2009 Web Cast - Creating a Successful Internet Presence
IFLA 2009 Web Cast - Creating a Successful Internet Presence
librarywebchic
 
ELAG - Mashing Up and Remixing the Library Website
ELAG - Mashing Up and Remixing the Library WebsiteELAG - Mashing Up and Remixing the Library Website
ELAG - Mashing Up and Remixing the Library Website
librarywebchic
 
Xml Applications Libraries
Xml Applications LibrariesXml Applications Libraries
Xml Applications Libraries
librarywebchic
 
Website Mashup
Website MashupWebsite Mashup
Website Mashup
librarywebchic
 
Open Source CMS
Open Source CMSOpen Source CMS
Open Source CMS
librarywebchic
 

More from librarywebchic (9)

Open Source CMS Playroom
Open Source CMS PlayroomOpen Source CMS Playroom
Open Source CMS Playroom
 
Building a Drupal-driven Intranet
Building a Drupal-driven IntranetBuilding a Drupal-driven Intranet
Building a Drupal-driven Intranet
 
Real Life Experiences With Library APIS
Real Life Experiences With Library APISReal Life Experiences With Library APIS
Real Life Experiences With Library APIS
 
Drupal Open Source Everything
Drupal Open Source EverythingDrupal Open Source Everything
Drupal Open Source Everything
 
IFLA 2009 Web Cast - Creating a Successful Internet Presence
IFLA 2009 Web Cast - Creating a Successful Internet PresenceIFLA 2009 Web Cast - Creating a Successful Internet Presence
IFLA 2009 Web Cast - Creating a Successful Internet Presence
 
ELAG - Mashing Up and Remixing the Library Website
ELAG - Mashing Up and Remixing the Library WebsiteELAG - Mashing Up and Remixing the Library Website
ELAG - Mashing Up and Remixing the Library Website
 
Xml Applications Libraries
Xml Applications LibrariesXml Applications Libraries
Xml Applications Libraries
 
Website Mashup
Website MashupWebsite Mashup
Website Mashup
 
Open Source CMS
Open Source CMSOpen Source CMS
Open Source CMS
 

Recently uploaded

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 

Library Mashups & APIs

  • 1. Creating Library Web Services: Mashups and APIs Karen A. Coombs lirbarywebchic@gmail.com
  • 2. About Me • ~ 10 Years library web stuff • Self taught coder who loves to play • Work with developers regularly
  • 3. About You • Name • Institution • Techie skills • HTML, Javascript, DOM, XML, Server side scripting (PHP, ASP, Rails, Coldfusion...) • What you want to learn today
  • 4. What Is A Mashup? • a Web application that uses and/or combines data from multiple sources within a single tool
  • 5. Why Create A Mashup • Want to bring together disparate data sources • Want to enhance a existing source of data • Want to improve usability and user interfaces • Want to make a web page more dynamic and engaging
  • 6. Some Library Mashups • LibraryFind • Repository 66 • Scriblio • Terrapod Project • Texas A&M Geologic Atlas of the US • VuFind implementations • WorldCat Search plugin for FCKEditor
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. Mashups Don’t have to Be Read Only • Web Services can be capable of read/ write • A mashup could write data as part of its functionality • Examples • Flickr Manager plugin for Wordpress • Kaltura plugin for Wordpress
  • 18.
  • 19.
  • 20. How Do Mashups Work? • Take existing data within a system • Retrieve data from another source(s) typically via a web service • Mix these datasets together for UI purposes
  • 21. Technologies Behind the scenes • Web Services (REST, SOAP, XML-RPC) • Some server side or client side scripting language • Data formated in XML or JSON
  • 22. What are Web Services? • Machine readable data or procedures access via HTTP • On a remote/external system (usually) • Use structured data for data exchange (often XML) • Come in 3 flavors : RPC, SOAP, REST
  • 23. REST Primer • Easiest web service style • Readable by Humans • Most popular form of web services today • Create, Read, Update Delete • POST, GET, PUT, DELETE
  • 24. What is JSON? • Javascript Object Notation • Text file used to pass information from one system to another • Javascript treats it as an object • which makes it easily navigated and specific pieces cherry-picked
  • 25. ProcessGBSBookInfo({ "ISBN0765304368":{ "bib_key":"ISBN0765304368", "info_url":"http://books.google.com/books? id=gfg13CM_kU8C&source=gbs_ViewAPI", "preview_url":"http://books.google.com/books? id=gfg13CM_kU8C&printsec=frontcover&sig=jIrSb_Skc QRhy_VvtnKbTXjmvos&source=gbs_ViewAPI", "thumbnail_url":"http://books.google.com/books? id=gfg13CM_kU8C&pg=PP1&img=1&zoom=5&sig=LsT wGVAsy_qWYMPM6HVDTPAMokg", "preview":"full" } });
  • 26. XML Data Manipulation • XPath • Little bit like the DOM but more complex and smart • Allows you to cherry pick info in XML documents • Learn more about XPath - http:// www.w3schools.com/xpath
  • 27. XML XPATH EXAMPLE • Want to get the feed name • Want to get the item title, description, and url
  • 28. The XPath • Feed Title - /feed/title • Item title - //entry/title or /feed/ entry/title • Item Content - //entry/content • Item Url - //entry/link@href
  • 29. Cross Server Scripting Issues • AJAX doesn’t allow you to access “scripts” across servers • XML, PHP or other scripting languages • Can access JSON across servers • Reason why JSON popular • Workaround
  • 30. Cross Server Scripting Workarounds • Proxy the script via the webserver • Apache mod_proxy • Use an intermediary to transform content into JSON • Use PHP to convert XML to JSON
  • 31. Possible Types Of Data • Bibliographic Data • Book Covers • Digital Library metadata and objects • Reviews • Ratings • Library Information • Map Data
  • 32. Data Sources For Mashups • Feeds from library catalog, Amazon or other sources • Covers, Ratings and Reviews from LibraryThing • ISBNdb.com • Preview or fulltext from GoogleBooks • Info from Wikipedia • Data from Talis platform • Data from Open Library
  • 33. Other Library Vendor Web Services • Serial Solutions - http://journal.code4lib.org/ articles/108 • SFX • Gold Rush Link Resolver - http:// grx.coalliance.org/grxtest/dsp/ grx_documentation.pdf • Lots of library database platforms • Several library catalogs
  • 34. OCLC Web Services for Mashups • WorldCat Search API • WorldCat Identities • xID services • xISBN • xISSN • xOCLCNum • Registry Search • Registry Detail
  • 35. WorldCat Search API • Search WorldCat in a programmatic fashion • OpenSearch, SRU • Get data back as XML • Atom, RSS, MARCXML, Dublin Core
  • 36. xID Service • Service for identifiers • OCLC number, ISSN, ISBN • Send an identifier • Get related identifiers back • Get information about item • Peer Reviewed or not • RSS for Table of Contents
  • 37. Worldcat Registry • Data about libraries throughout the world • Name • Address • Catalog url • Type (public, academic, special ...)
  • 38. Serial Solutions API • OpenURL based • Send an OpenURL • Get back holdings information • Uses • Crosslisting ebooks • Direct Links to Fulltext in LibraryFind
  • 39. Serial Solutions API Response • Citation • Holdings Info • Provider - Proquest • Database Name - Safari Tech Books • Start & End Dates • URL(s)
  • 40. Serial Solution Response URLs • Different types of URLs • Depends on OpenURL sent • format • granularity • Books - source, book • Journal - source, article, journal, volume, issue
  • 42. Direct Links to Fulltext in LibraryFind
  • 43. Other APIs We’re Using • Google Calendar API - http:// code.google.com/apis/calendar/ data/2.0/developers_guide.html • Google Maps - http:// code.google.com/apis/maps/ • Last.fm - http://www.last.fm.api • Wikipedia API - http:// en.wikipedia.org/w/api.php
  • 44. Other APIs of Note • Blip.tv API - http://wiki.blip.tv/index.php/ Blip.tv_API • Delicious API - http://delicious.com/help/api • Flickr API - http://www.flickr.com/services/api/ • YouTube API - http://code.google.com/apis/ youtube/overview.html • Yahoo Maps API - http://developer.yahoo.com/ maps/
  • 45. The Simplest Mashups • Widgets • Google Embedded Preview • LibraryThing Widgets • Flickr Widgets • WorldCat list widget • Yahoo Pipes
  • 46.
  • 47. The Simplest Mashups • Feeds • The poor man’s web services • XML • Can have schemas added to them • Feed2JS • embed a feed in a web page • Drupal and Wordpress can have feeds embedded into pages
  • 48.
  • 49. Mashups Made Easy With Yahoo Pipes • Drag and drop UI for creating mashups • Free • Lots of examples • Some library examples • RSS of Books + Covers • Finding Alternative Copies of a Book
  • 50. Why Use Pipes? • Programming for non-programmers • Good user community • Clone!! • End up with a variety of formats • Widgets • RSS • JSON • PHP
  • 51. Feed Remix with Pipes • Find several feed you want to mix together • Get their feed urls • Filter if you want • New Feed output
  • 52. WorldCat Search + Book Covers • RSS + Cover Data + Yahoo Pipes • ISBN essential • How does it work? • RSS feed from WorldCat Search API • Extracts ISBN • Gets cover data • Builds new feed with covers
  • 53. WorldCat Registry + Yahoo Maps • Send registry request for data for a particular location (zip code, city) • Retrieve results • Send address information to Yahoo Maps • Get library locations plotted on map
  • 54. WorldCat Holdings + Yahoo Maps • Send an OCLC number and location to WorldCat Search API • Returns a list of libraries nearest that location with holdings (includes address) • Send libraries’ address to Yahoo Maps • See which libraries in that location have that book visualized
  • 55. Crosslisting Content In the Catalog • Serial Solutions OpenURL Resolver • API • WorldCat Search API • ISBN/ISSN • Adds also available as link to ebook print book
  • 56. Four Code Walkthroughs • Google Calendar Embedding • WorldCat Search + Book Covers + Ratings + Preview at Google Books • WorldCat Search Holdings + Google Maps • Journal List Enhancements
  • 57. Web Services for Interoperability • Lots of different ways in which people can access information • Different devices • Mobile devices, computers, special purpose devices • Machine access to data
  • 58. Mobile Catalog Prototype • WorldCat Search API • Open Library/LibraryThing Covers • Summary - ISBNdb.com • Full text/Preview • Hathi Trust • Google Books • Screenscrape Item data

Editor's Notes

  1. CD listing + CD covers + Last.fm data mashup Journal Listing Mashup with xISSN TiCToCs info