View
214
Download
0
Embed Size (px)
Citation preview
Stelline 2009Stelline 2009
The Scripting LibraryThe Scripting LibraryCombining data and information in the libraryCombining data and information in the library
I servizi messi a disposizione con e per l'utenteCenfor Seminar
Milan, March 12th, 2009
Changing needsChanging needs
Rise of Rise of quantity, quality quantity, quality andand diversification diversification of of informationinformation
Desire and need of the users of Desire and need of the users of manipulatingmanipulating (modifying, trasforming, remixing) data(modifying, trasforming, remixing) data
In the In the point of interactionpoint of interaction between users and between users and data lies the data lies the mashup technologymashup technology
Mashup idea match Web 2.0 concepts of Mashup idea match Web 2.0 concepts of data as data as intel inside, hackability, the right to remix, intel inside, hackability, the right to remix, user-generated content, users as co-user-generated content, users as co-developersdevelopers
Mashup architectureMashup architecture
Combine Combine data and informationdata and information fromfrom two or more two or more sourcessources to build to build new applications and servicesnew applications and services
Often “mashup” is used to represent also a manipulation Often “mashup” is used to represent also a manipulation of data from only one source, utilized in new ways (or of data from only one source, utilized in new ways (or opened or (better) interlinked with information from opened or (better) interlinked with information from other sources)other sources)
Structured informationStructured information
Non structured information transformed in structured Non structured information transformed in structured informationinformation
Non structured information used at its best (e.g. screen Non structured information used at its best (e.g. screen scraping)scraping) Publishers begin to open their data: The
Guardian docet! “The cost? Free. 'We feel like we are fueling an ecosystem'"
API – Application Programming API – Application Programming InterfaceInterface
Set of Set of functionsfunctions, , procedures andprocedures and methodsmethods to to access an online applicationaccess an online application
There are also APIs for offline applicationsThere are also APIs for offline applications
API expresses:API expresses:
the logic with which the application is builtthe logic with which the application is built
its informative resourcesits informative resources
operations that can be performed from outside the operations that can be performed from outside the application / serviceapplication / service
From a software -not human- point of view
How practically invoke functions provided by How practically invoke functions provided by an API, utilize its resources, manage the data an API, utilize its resources, manage the data
and / or information exchange?and / or information exchange?
Web ServicesWeb Services
““A software system designed to support interoperable A software system designed to support interoperable machine-to-machine interaction over a network” (W3C)machine-to-machine interaction over a network” (W3C)
The The exchangeexchange takes place between a service that takes place between a service that exposes its information, data or servicesexposes its information, data or services
Service ProviderService Provider
And a service that asks for themAnd a service that asks for them
Service ConsumerService Consumer
Request formatted in XMLRequest formatted in XML or in other languages and or in other languages and sent usually sent usually via HTTPvia HTTP
Response formatted in XML, JSON, HTMLResponse formatted in XML, JSON, HTML or other or other languages and sent usually languages and sent usually via HTTPvia HTTP
RESTful Web ServicesRESTful Web Services
Resource-oriented architectureResource-oriented architecture
The client performs the request through a The client performs the request through a method of method of the HTTP protocolthe HTTP protocol
Often GETOften GET
The request of information or operations is built and The request of information or operations is built and launched by the program through alaunched by the program through a simple Url simple Url
Information sent in the response areInformation sent in the response are formatted in formatted in HTML or in other languagesHTML or in other languages
They can be rendered asThey can be rendered as web pages web pages or sent to or sent to other other applicationsapplications
(RESTful) Information Exchange(RESTful) Information Exchange
• Web application (Service Provider)Web application (Service Provider)
– API (what resources, operations, Url API (what resources, operations, Url language etc.)language etc.)
• REST InterfaceREST Interface• Mashup client (Service Consumer)Mashup client (Service Consumer)
– Builds request Url following REST Builds request Url following REST interface parametersinterface parameters
• Sends it via HTTP method(s)Sends it via HTTP method(s)– Gets information to display or Gets information to display or
push to other applicationspush to other applications
Hooks Hooks (and how to make your website (and how to make your website mashable!)mashable!)
RSS / Atom FeedRSS / Atom Feed
Image (Flickr)Image (Flickr)
VideoVideo (YouTube)(YouTube)
MapMap
Website (XHTML/CSS)Website (XHTML/CSS)
Open APIs
XMLXML
OAI-PMHOAI-PMH
JSONJSON
MicroFormats MicroFormats (iCal, (iCal, CoinS etc.)CoinS etc.)
RDFa/RDFeRDFa/RDFe
OpenUrlOpenUrl
UnAPIUnAPI
(Open) Linked Data(Open) Linked Data
Client-side scripting languagesClient-side scripting languages
Vital role of Vital role of JavaScriptJavaScript in (closed) applications in (closed) applications• TemplateTemplate
• Application logicApplication logic
• Middleware layerMiddleware layer
How to effect the closed applications' web pages: How to effect the closed applications' web pages: • DOMDOM
• JavaScript and JSONJavaScript and JSON
• CallbackCallback
– Dynamic Script TagDynamic Script Tag
The directory of The directory of Programmable WebProgrammable Web
Examples...Examples...
MetaBib @ BicoccaMetaBib @ Bicocca
BibliobarBibliobar (1) (1)
BibliobarBibliobar (2) (2)
BibliobarBibliobar (3) (3)
Library Lookup @ BicoccaLibrary Lookup @ Bicocca
Library Lookup by Jon UdellLibrary Lookup by Jon Udell
Javascript:var re=/([\ /-]|is[bs]n=)(\d{7,9}\dX])/i;Javascript:var re=/([\ /-]|is[bs]n=)(\d{7,9}\dX])/i;
if(re.test(location.href)==true)if(re.test(location.href)==true)
{var isbn=RegExp.$2;{var isbn=RegExp.$2;
void(win=window.open('http://opac.biblio.unimib.it'+'/F/?void(win=window.open('http://opac.biblio.unimib.it'+'/F/?func=scan&scan_code=ISBN&scan_start='+isbn,'Librarfunc=scan&scan_code=ISBN&scan_start='+isbn,'LibraryLookup','scrollbars=1,resizable=1,location=1,width=57yLookup','scrollbars=1,resizable=1,location=1,width=575,height=500'))}5,height=500'))}
http://opac.biblio.unimib.it/F/?http://opac.biblio.unimib.it/F/?func=scan&scan_code=ISBN&scan_start=1591585376func=scan&scan_code=ISBN&scan_start=1591585376
The power of bookmarklet
Biblioteche OggiBiblioteche Oggi REST interface REST interface
Free usage dataFree usage data
University of Huddersfield Libraries: data ofUniversity of Huddersfield Libraries: data of
• CirculationCirculation
• SuggestionsSuggestions
• ISBN linking (via ISBN linking (via LibraryThing ISBN APILibraryThing ISBN API))
– With an With an Open Data CommonsOpen Data Commons license license
Offered as XML files on the Web to everyone forOffered as XML files on the Web to everyone for• Global ranking of OPACs resultsGlobal ranking of OPACs results
• Augmented recommendation servicesAugmented recommendation services
• More effective collection development policiesMore effective collection development policies
• ......
From APIs to Linked Data?From APIs to Linked Data?
RDF Book MashupRDF Book MashupIntegrates Web 2.0 data sources in the Semantic WebIntegrates Web 2.0 data sources in the Semantic Web
Makes information about books, authors, reviews and bookshops Makes information about books, authors, reviews and bookshops available as semantic dataavailable as semantic data
Turn XML responses from Web 2.0 web services into RDFTurn XML responses from Web 2.0 web services into RDF
LIBRISLIBRIS: the Linked Bibliographic Data: the Linked Bibliographic DataDublin CoreDublin Core
SKOSSKOS
FOAFFOAF
BibliontologyBibliontology
Home made ontology for holdings, FRBR relationsHome made ontology for holdings, FRBR relations
““Weaving the WebWeaving the Web” on Tabulator (1)” on Tabulator (1)
““Weaving the WebWeaving the Web” on Tabulator (2)” on Tabulator (2)
The Scripting Library means...The Scripting Library means...
Requiring APIs or other standardized ways to access Requiring APIs or other standardized ways to access information from vendors and commercial suppliers information from vendors and commercial suppliers (libraries are users theirselves)(libraries are users theirselves)
Getting a more transparent, standardized and Web-like Getting a more transparent, standardized and Web-like approach to data (the Web is simple)approach to data (the Web is simple)
Commitment to open library data and information, sharing Commitment to open library data and information, sharing them (i.e. making them hackable) and letting users, them (i.e. making them hackable) and letting users, stakeholders and applications (e.g. Course Management stakeholders and applications (e.g. Course Management Systems, Facebook Apps, browser toolbar etc.) access Systems, Facebook Apps, browser toolbar etc.) access them (openness, addressability, discoverability)them (openness, addressability, discoverability)
(Right to) Manipulate, enhance, mash-up, remix, re-invent(Right to) Manipulate, enhance, mash-up, remix, re-invent
Using immagination and participation – togetherUsing immagination and participation – together
What's for?What's for?
The The Scripting LibraryScripting Library might become a means of might become a means of renewal and innovationrenewal and innovation
Offering all the richness of the data (also) in a Offering all the richness of the data (also) in a machine-readable format allows for datamachine-readable format allows for data
– Re-useRe-use
– EnhancingEnhancing
– ShowcasingShowcasing
And for better cooperation between librariesAnd for better cooperation between libraries
And between libraries and other organizationsAnd between libraries and other organizations
Towards a library *data* portabilityTowards a library *data* portability
FromFrom
"It isn't the cables, it is the computers which are "It isn't the cables, it is the computers which are interesting"interesting"
ToTo
““It isn't the computers, but the documents which It isn't the computers, but the documents which are interesting”are interesting”
ToTo
““It's not documents that are important but the It's not documents that are important but the things they are about which are important”things they are about which are important”
Tim Berners Lee Tim Berners Lee dixitdixit
Thank you!Thank you!
This talk is dedicated to Alberta ZanellaThis talk is dedicated to Alberta Zanella(for that story of 29th November...)(for that story of 29th November...)
Bonaria Biancu a.k.a. The Geek LibrarianBonaria Biancu a.k.a. The Geek Librarian
Library of the University of Milano-BicoccaLibrary of the University of Milano-BicoccaBlog: http://bonariabiancu.wordpress.com/Blog: http://bonariabiancu.wordpress.com/
E-mail: [email protected]: [email protected]
Mashup EditorsMashup Editors
Yahoo! PipesYahoo! Pipes
Open KapowOpen Kapow
Microsoft PopflyMicrosoft Popfly
Google mashup EditorGoogle mashup Editor (on the way to be shut (on the way to be shut down)down)
MashMakerMashMaker
DapperDapper
......
Enterprise softwareEnterprise software
Credits & NotesCredits & Notes
I got inspiration for the “Scripting Library” concept from Bruce I got inspiration for the “Scripting Library” concept from Bruce Sterling's “Scripting Architecture”Sterling's “Scripting Architecture”
The The script for Gbooks and LThing in Metalibscript for Gbooks and LThing in Metalib is made by is made by Ere MaijalaEre Maijala
Bibliobar was developed by Bibliobar was developed by Salvatore VassalloSalvatore Vassallo
Piero CavaleriPiero Cavaleri is the author of “Biblioteche Oggi” web service is the author of “Biblioteche Oggi” web service
----------------------------------------------------------------------------------------
Suggested readingsSuggested readings::
Library Mashup: exploring new ways to deliver library dataLibrary Mashup: exploring new ways to deliver library data, edited , edited by Nicole Engard, Information Today, 2009 (in press) *by Nicole Engard, Information Today, 2009 (in press) *
Pro Web 2.0 Mashup: remixing data and web servicesPro Web 2.0 Mashup: remixing data and web services, Raymond , Raymond Yee, Apress, 2008Yee, Apress, 2008
*Disclaimer: I am the author of one chapter of the book :-)*Disclaimer: I am the author of one chapter of the book :-)