print $title;
print $subtitle;
print $author;
print $position;
print $institution;
$title = “harnessing free content with web service apis”;
$subtitle = “an ala editions workshop”;
$author = “jason paul michel”;
$position = “user experience librarian”;
$institution = “miami university libraries”;
agenda
• Discuss open web ecosystem
• Place of APIs in that ecosystem
• What is exactly is an API?
• An example from the programmer’s
perspective
• Real World examples
• Slice of available APIs
• What is needed for development
• Where to find and keep up with information
the “open” web ecosystem
• social web services are not social merely
because of the interactions between users
they facilitate.
• social web services are social because
they also are able to talk to one another on
a programmatic level.
the “open” web ecosystem
• thus, If This Then That (ifttt.com)
the “open” web ecosystem
• thus,
the “open” web ecosystem
• Achieved largely through the use of APIs
• API = Application Programming Interface
• Method of data transfer via HTTP
neighbor’s garage analogy
Open Source: take whatever you want, modify however you want,
use however you want
Proprietary: pay for each tool in the garage, use them as designed
API: utilize the services of the garage,
if you have authorization and ask the right way
Why APIs?
• Increase visibility of data / service
• Take advantage of the crowdsourcing
model to improve service, e.g. Tweetdeck
• From libraries’ perspective: its important to
integrate with wider web environment
Typical API Process
• Request API Key from Service
• Choose scripting language: PHP, Ruby on Rails etc.
• Using chosen language, submit data request via
available API methods
• Ingest that data in JSON, XML or other data type
• Transform the data to make it usable with scripting
language
• Upload data to a database
• Wrap data in HTML, CSS for user interface
api request example
https://api.twitter.com/1.1/search/tweet.json?q=book%20OR%20research
Base url
Each Web Service typically has several base urls depending on the type of
information you are seeking and each resource type has its own set of
parameters, e.g.:
https://api.twitter.com/1.1/followers/ids,
https://api.twitter.com/1.1/friendships/lookup
Data type
Parameters
api request example
[statuses] => Array
(
[0] => stdClass Object
(
[metadata] => stdClass Object
(
[result_type] => recent
[iso_language_code] => en
)
[created_at] => Sat Jul 20 16:25:22 +0000 2013
[id] => 3.58623679498E+17
[id_str] => 358623679497777153
[text] => This book just got too good! She said yes!! 👏 👏 #christiangrey
[source] => Twitter for iPhone
[truncated] =>
[in_reply_to_status_id] =>
[in_reply_to_status_id_str] =>
[in_reply_to_user_id] =>
[in_reply_to_user_id_str] =>
[in_reply_to_screen_name] =>
[user] => stdClass Object
(
[id] => 307066025
[id_str] => 307066025
[name] => Alicia Reece
[screen_name] => aaliciaaaajo
[location] =>
etc…..
api request example
• At this point you can send the data received
to a database or create a dynamic web
application on top of the live data.
try it
• https://graph.facebook.com/username or
• https://graph.facebook.com/pageid
working examples
twitter
• Programmatically capture, store & display
potentially relevant tweets in specific
geolocation to serve as a springboard for
proactive info services and social
interaction.
https://api.twitter.com/1.1/search/tweet.json?q=book%20OR%20research&geocode=39.5069974,-8
working examples
vimeo
• Upload video tutorials to Vimeo
• Utilizing API, bring your own video tutorials in
to your own web interface.
http://vimeo.com/api/v2/miamiulibraries/videos.json
working examples
vimeo
working examples
instagram
• Create a patron-generated gallery of
instagram images based on a pre-determined
hashtag or keyword
https://api.instagram.com/v1/tags/miamioh/media/recent
working examples
instagram
http://d.lib.ncsu.edu/myhuntlibrary
working examples
instagram
working examples
movieDB
• Utilizing the movieDB API, create a Netflix-
style application with available Movie posters
http://themoviedb.apiary.io/3/search/movie
working examples
movieDB
working examples
worldcat
• Utilizing OCLC’s WorldCat Basic API, pull in
citation information for catalog records.
http://www.worldcat.org/webservices/catalog/content/citations/isbn/1250012570?cfor
mat=turabian&wskey=key
working examples
worldcat
working examples
goodreads
• Utilizing goodreads API, enhance catalog
records with goodreads reviews.
http://www.goodreads.com/book/show?format=json&key=key&id=bookid
working examples
goodreads example
working examples
openlibrary/hathi/google books
• You don’t need to limit your catalog to
what you own / subscribe to…
• There are web services out there with
open content that your catalog can tap in
to.
http://openlibrary.org/api/books?bibkeys=OCLC:4942988&jscmd=data&format=json
http://catalog.hathitrust.org/api/volumes/full/oclc/381593.json
working examples
openlibrary/hathi/google books
working examples
openlibrary
• Enhance catalog with book covers.
http://covers.openlibrary.org/b/olid/OL7440033M-S.jpg
http://covers.openlibrary.org/b/$key/$value-$size.jpg
working examples
flickr
• Bulk uploading images and metadata from
repositories to flickr for wider audience
• Embedding flickr slideshows of own
imagery stored in flickr
• Bringing in safe flickr content from current
events / subjects
working examples
Possible API Usages
Social Tracking
Possible API Usages
Catalog Enhancements
Possible API Usages
evernote & dropbox
• Export catalog records / lists of catalog
records out to Evernote/Dropbox
• Export articles to Evernote/Dropbox
Possible API Usages
Catalog Enhancements
rotten tomatoes
• Enhance movie records with Rotten
Tomatoes reviews
• Retrieve cast, directors and movie posters
Possible API Usages
Catalog Enhancements
ny times bestseller
• Get links to reviews of NY Times
Bestsellers
• Get current NY Times Bestseller Lists and
link to catalog records if available..
Possible API Usages
Catalog Enhancements
DPLA
• Enhancing catalog records with DPLA content
• DPLA content includes images, text, video and
sound
• “an open, distributed network of comprehensive
online resources that would draw on the nation’s
living heritage from libraries, universities, archives,
and museums in order to educate, inform, and
empower everyone in current and future
generations.”
Possible API Usages
Catalog Enhancements
hoover’s
• Get Company data to match potential
company queries in catalog
Possible API Usages
Catalog Enhancements
cambridge dictionaries online/oed
• Get definitions as an additional piece of
content in catalog search
Possible API Usages
Catalog Enhancements
mendeley
• export citation data from catalog
Possible API Usages
Catalog Enhancements
OA APIs
• CORE Project – Open University
• ArXiv
• Hathi
• Open Library
Possible API Usages
Catalog Enhancements
Single Interface Utopia?
Possible API Usages
ILS & Discovery Layer APIs
• ILSs and Discover Layers are increasingly
adding APIs…
• Ebsco EDS
• Summon
• VUFind
• Koha
• These APIs allow developers to create
their own interfaces..
Possible API Usages
Single Interface
Publisher APIs
• IEEE Xplore
• Springer
• Elsevier: SciVerse (Scopus,
ScienceDirect, SciVerse Hub)
• Cambridge Journals
• Cambridge Dictionaries
• And more….
Possible API Usages
Single Interface
Vendor APIs
• Factiva – integrate all of factiva’s content
• Hoover’s – integrate company information
• And more…
Possible API Usages
Single Interface
OA APIs
• CORE Project – Open University
• arXiv
• Open Library
• Hathi Trust
Possible API Usages
Single User Interface
API Development : what is
needed?
• Programming expertise: PHP, Ruby, Python,
Javascript, XML, JSON, SQL, HTML, CSS
• Invest subject librarians in the process: what
APIs are available per discipline, which offers
value?
• Usability assessment
• Development tools: programming software
and hardware
Further resources
• Programmable Web
• Zite(app): APIs
• Web Service APIs and Libraries, ALA
Editions
• eCourse in October
• Twitter: @kinlane, @hackernews
thank you!
• micheljp@miamioh.edu
• @jpmichel
• gplus.to/jpmichel (G+)
References
• http://ifttt.com
• https://dev.twitter.com/
• https://developers.facebook.com/docs/reference/api/
• https://developer.vimeo.com/
• http://instagram.com/developer/
• http://www.themoviedb.org/
• http://oclc.org/developer/documentation/worldcat-basic-api/using-api
• http://www.goodreads.com/api
• http://openlibrary.org/developers/api
• http://www.hathitrust.org/data_api
• http://www.flickr.com/services/api/
• http://dev.evernote.com/
• https://www.dropbox.com/developers
• http://developer.rottentomatoes.com/
• http://developer.nytimes.com/docs
References
• http://dp.la/info/developers/codex/
• http://developer.hoovers.com/
• http://core.kmi.open.ac.uk/intro/api
• http://arxiv.org/help/api/index
• http://dictionary-api.cambridge.org/
• http://public.oed.com/subscriber-services/sru-service/
• http://dev.mendeley.com/
• https://www.ebscohost.com/discovery/api
• http://api.summon.serialssolutions.com/
• http://vufind.org/features.php
• http://dev.springer.com/
• http://ieeexplore.ieee.org/gateway/
• http://www.developers.elsevier.com/devcms/scopusintegration
• http://journals.cambridge.org/action/stream?pageId=9048&level=2
• http://www.factiva.com/CP_Developer/ProductHelp/FDK/FDK20/fdk_overvie
w/index.htm

Harnessing Free Content with Web Service APIs

  • 1.
    print $title; print $subtitle; print$author; print $position; print $institution; $title = “harnessing free content with web service apis”; $subtitle = “an ala editions workshop”; $author = “jason paul michel”; $position = “user experience librarian”; $institution = “miami university libraries”;
  • 2.
    agenda • Discuss openweb ecosystem • Place of APIs in that ecosystem • What is exactly is an API? • An example from the programmer’s perspective • Real World examples • Slice of available APIs • What is needed for development • Where to find and keep up with information
  • 3.
    the “open” webecosystem • social web services are not social merely because of the interactions between users they facilitate. • social web services are social because they also are able to talk to one another on a programmatic level.
  • 4.
    the “open” webecosystem • thus, If This Then That (ifttt.com)
  • 5.
    the “open” webecosystem • thus,
  • 6.
    the “open” webecosystem • Achieved largely through the use of APIs • API = Application Programming Interface • Method of data transfer via HTTP
  • 7.
    neighbor’s garage analogy OpenSource: take whatever you want, modify however you want, use however you want Proprietary: pay for each tool in the garage, use them as designed API: utilize the services of the garage, if you have authorization and ask the right way
  • 8.
    Why APIs? • Increasevisibility of data / service • Take advantage of the crowdsourcing model to improve service, e.g. Tweetdeck • From libraries’ perspective: its important to integrate with wider web environment
  • 9.
    Typical API Process •Request API Key from Service • Choose scripting language: PHP, Ruby on Rails etc. • Using chosen language, submit data request via available API methods • Ingest that data in JSON, XML or other data type • Transform the data to make it usable with scripting language • Upload data to a database • Wrap data in HTML, CSS for user interface
  • 10.
    api request example https://api.twitter.com/1.1/search/tweet.json?q=book%20OR%20research Baseurl Each Web Service typically has several base urls depending on the type of information you are seeking and each resource type has its own set of parameters, e.g.: https://api.twitter.com/1.1/followers/ids, https://api.twitter.com/1.1/friendships/lookup Data type Parameters
  • 11.
    api request example [statuses]=> Array ( [0] => stdClass Object ( [metadata] => stdClass Object ( [result_type] => recent [iso_language_code] => en ) [created_at] => Sat Jul 20 16:25:22 +0000 2013 [id] => 3.58623679498E+17 [id_str] => 358623679497777153 [text] => This book just got too good! She said yes!! 👏 👏 #christiangrey [source] => Twitter for iPhone [truncated] => [in_reply_to_status_id] => [in_reply_to_status_id_str] => [in_reply_to_user_id] => [in_reply_to_user_id_str] => [in_reply_to_screen_name] => [user] => stdClass Object ( [id] => 307066025 [id_str] => 307066025 [name] => Alicia Reece [screen_name] => aaliciaaaajo [location] => etc…..
  • 12.
    api request example •At this point you can send the data received to a database or create a dynamic web application on top of the live data.
  • 13.
    try it • https://graph.facebook.com/usernameor • https://graph.facebook.com/pageid
  • 16.
  • 17.
    twitter • Programmatically capture,store & display potentially relevant tweets in specific geolocation to serve as a springboard for proactive info services and social interaction. https://api.twitter.com/1.1/search/tweet.json?q=book%20OR%20research&geocode=39.5069974,-8 working examples
  • 19.
    vimeo • Upload videotutorials to Vimeo • Utilizing API, bring your own video tutorials in to your own web interface. http://vimeo.com/api/v2/miamiulibraries/videos.json working examples
  • 20.
  • 21.
    instagram • Create apatron-generated gallery of instagram images based on a pre-determined hashtag or keyword https://api.instagram.com/v1/tags/miamioh/media/recent working examples
  • 22.
  • 23.
  • 24.
    movieDB • Utilizing themovieDB API, create a Netflix- style application with available Movie posters http://themoviedb.apiary.io/3/search/movie working examples
  • 25.
  • 26.
    worldcat • Utilizing OCLC’sWorldCat Basic API, pull in citation information for catalog records. http://www.worldcat.org/webservices/catalog/content/citations/isbn/1250012570?cfor mat=turabian&wskey=key working examples
  • 27.
  • 28.
    goodreads • Utilizing goodreadsAPI, enhance catalog records with goodreads reviews. http://www.goodreads.com/book/show?format=json&key=key&id=bookid working examples
  • 29.
  • 30.
    openlibrary/hathi/google books • Youdon’t need to limit your catalog to what you own / subscribe to… • There are web services out there with open content that your catalog can tap in to. http://openlibrary.org/api/books?bibkeys=OCLC:4942988&jscmd=data&format=json http://catalog.hathitrust.org/api/volumes/full/oclc/381593.json working examples
  • 31.
  • 34.
    openlibrary • Enhance catalogwith book covers. http://covers.openlibrary.org/b/olid/OL7440033M-S.jpg http://covers.openlibrary.org/b/$key/$value-$size.jpg working examples
  • 35.
    flickr • Bulk uploadingimages and metadata from repositories to flickr for wider audience • Embedding flickr slideshows of own imagery stored in flickr • Bringing in safe flickr content from current events / subjects working examples
  • 36.
  • 37.
  • 38.
  • 39.
    evernote & dropbox •Export catalog records / lists of catalog records out to Evernote/Dropbox • Export articles to Evernote/Dropbox Possible API Usages Catalog Enhancements
  • 40.
    rotten tomatoes • Enhancemovie records with Rotten Tomatoes reviews • Retrieve cast, directors and movie posters Possible API Usages Catalog Enhancements
  • 41.
    ny times bestseller •Get links to reviews of NY Times Bestsellers • Get current NY Times Bestseller Lists and link to catalog records if available.. Possible API Usages Catalog Enhancements
  • 42.
    DPLA • Enhancing catalogrecords with DPLA content • DPLA content includes images, text, video and sound • “an open, distributed network of comprehensive online resources that would draw on the nation’s living heritage from libraries, universities, archives, and museums in order to educate, inform, and empower everyone in current and future generations.” Possible API Usages Catalog Enhancements
  • 43.
    hoover’s • Get Companydata to match potential company queries in catalog Possible API Usages Catalog Enhancements
  • 44.
    cambridge dictionaries online/oed •Get definitions as an additional piece of content in catalog search Possible API Usages Catalog Enhancements
  • 45.
    mendeley • export citationdata from catalog Possible API Usages Catalog Enhancements
  • 46.
    OA APIs • COREProject – Open University • ArXiv • Hathi • Open Library Possible API Usages Catalog Enhancements
  • 47.
  • 48.
    ILS & DiscoveryLayer APIs • ILSs and Discover Layers are increasingly adding APIs… • Ebsco EDS • Summon • VUFind • Koha • These APIs allow developers to create their own interfaces.. Possible API Usages Single Interface
  • 49.
    Publisher APIs • IEEEXplore • Springer • Elsevier: SciVerse (Scopus, ScienceDirect, SciVerse Hub) • Cambridge Journals • Cambridge Dictionaries • And more…. Possible API Usages Single Interface
  • 50.
    Vendor APIs • Factiva– integrate all of factiva’s content • Hoover’s – integrate company information • And more… Possible API Usages Single Interface
  • 51.
    OA APIs • COREProject – Open University • arXiv • Open Library • Hathi Trust Possible API Usages Single User Interface
  • 52.
    API Development :what is needed? • Programming expertise: PHP, Ruby, Python, Javascript, XML, JSON, SQL, HTML, CSS • Invest subject librarians in the process: what APIs are available per discipline, which offers value? • Usability assessment • Development tools: programming software and hardware
  • 53.
    Further resources • ProgrammableWeb • Zite(app): APIs • Web Service APIs and Libraries, ALA Editions • eCourse in October • Twitter: @kinlane, @hackernews
  • 54.
    thank you! • micheljp@miamioh.edu •@jpmichel • gplus.to/jpmichel (G+)
  • 55.
    References • http://ifttt.com • https://dev.twitter.com/ •https://developers.facebook.com/docs/reference/api/ • https://developer.vimeo.com/ • http://instagram.com/developer/ • http://www.themoviedb.org/ • http://oclc.org/developer/documentation/worldcat-basic-api/using-api • http://www.goodreads.com/api • http://openlibrary.org/developers/api • http://www.hathitrust.org/data_api • http://www.flickr.com/services/api/ • http://dev.evernote.com/ • https://www.dropbox.com/developers • http://developer.rottentomatoes.com/ • http://developer.nytimes.com/docs
  • 56.
    References • http://dp.la/info/developers/codex/ • http://developer.hoovers.com/ •http://core.kmi.open.ac.uk/intro/api • http://arxiv.org/help/api/index • http://dictionary-api.cambridge.org/ • http://public.oed.com/subscriber-services/sru-service/ • http://dev.mendeley.com/ • https://www.ebscohost.com/discovery/api • http://api.summon.serialssolutions.com/ • http://vufind.org/features.php • http://dev.springer.com/ • http://ieeexplore.ieee.org/gateway/ • http://www.developers.elsevier.com/devcms/scopusintegration • http://journals.cambridge.org/action/stream?pageId=9048&level=2 • http://www.factiva.com/CP_Developer/ProductHelp/FDK/FDK20/fdk_overvie w/index.htm

Editor's Notes

  • #12 Go to web page if possible to show….