working with oxpoints

23
Ingredients Preparation Taking shape Proof of concept? Working with Oxpoints Janet McKnight

Upload: iwmw

Post on 20-Aug-2015

1.272 views

Category:

Education


0 download

TRANSCRIPT

Ingredients Preparation Taking shape Proof of concept

Working with Oxpoints

Janet McKnight

Ingredients Preparation Taking shape Proof of concept

Wheres my book

Find the nearest copy of a book from a reading list (bearing inmind which libraries you can use and the opening hours oflibraries)

Ingredients Preparation Taking shape Proof of concept

Ingredients

First catch your data

Ingredients Preparation Taking shape Proof of concept

What we had

bull Locations of (many) libraries already present in Oxpointsbull A list of libraries with unique codeshttpwwwliboxacuklibrariesbyoliscode

bull The OLIS search results page showing library holdingshttplibraryoxacukThis includes

bull Info about the availability of the bookbull Links to info about the individual libraries

Ingredients Preparation Taking shape Proof of concept

What we didnt have

bull Links between library codes and Oxpoints locationsbull Patron data (eg which libraries youre allowed to use)bull Opening hours (in a consumable form)

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Wheres my book

Find the nearest copy of a book from a reading list (bearing inmind which libraries you can use and the opening hours oflibraries)

Ingredients Preparation Taking shape Proof of concept

Ingredients

First catch your data

Ingredients Preparation Taking shape Proof of concept

What we had

bull Locations of (many) libraries already present in Oxpointsbull A list of libraries with unique codeshttpwwwliboxacuklibrariesbyoliscode

bull The OLIS search results page showing library holdingshttplibraryoxacukThis includes

bull Info about the availability of the bookbull Links to info about the individual libraries

Ingredients Preparation Taking shape Proof of concept

What we didnt have

bull Links between library codes and Oxpoints locationsbull Patron data (eg which libraries youre allowed to use)bull Opening hours (in a consumable form)

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Ingredients

First catch your data

Ingredients Preparation Taking shape Proof of concept

What we had

bull Locations of (many) libraries already present in Oxpointsbull A list of libraries with unique codeshttpwwwliboxacuklibrariesbyoliscode

bull The OLIS search results page showing library holdingshttplibraryoxacukThis includes

bull Info about the availability of the bookbull Links to info about the individual libraries

Ingredients Preparation Taking shape Proof of concept

What we didnt have

bull Links between library codes and Oxpoints locationsbull Patron data (eg which libraries youre allowed to use)bull Opening hours (in a consumable form)

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

What we had

bull Locations of (many) libraries already present in Oxpointsbull A list of libraries with unique codeshttpwwwliboxacuklibrariesbyoliscode

bull The OLIS search results page showing library holdingshttplibraryoxacukThis includes

bull Info about the availability of the bookbull Links to info about the individual libraries

Ingredients Preparation Taking shape Proof of concept

What we didnt have

bull Links between library codes and Oxpoints locationsbull Patron data (eg which libraries youre allowed to use)bull Opening hours (in a consumable form)

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

What we didnt have

bull Links between library codes and Oxpoints locationsbull Patron data (eg which libraries youre allowed to use)bull Opening hours (in a consumable form)

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Unconsumable ingredients

Example of opening hours

Term time Mon-Fri 900-2200 Sat 1000-1600 University ofOxford dates of full term Hilary 2009 Sunday 18January to Saturday 14 March Trinity 2009Sunday 26 April to Saturday 20 June Michaelmas2009 Sunday 11 October to Saturday 5December Hilary 2010 Sunday 17 January toSaturday 13 March Trinity 2010 Sunday 25 Aprilto Saturday 19 June

Vacation Mon-Fri 900-1900 Sat 1000-1600Closed Christmas Eve to New Years Day Good Friday to

Easter Monday August Bank Holiday weekend

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Preparation

Finely chop your data

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Screen-scrapingWalk through the table of OLIS codes

lttable class=olis border=0 cellpadding=4gtlttbodygtlttr class=library valign=topgtltthgtltpgtltbgtAll Sltbgt

ltpgtltthgtltthgtltpgtltbgtASCltbgt

ltpgtltthgtltthgtltpgtltbgtlta name=ASCgtAll Souls College Libraryltagtlta

href=httpwwwliboxacuklibrariesguidesASChtmltarget=_toptitle=Information about All Souls College

LibrarygtInformationltagt |lta

href=httpwwwall-soulsoxacuklibrarytarget=_toptitle=Website for All Souls College

LibrarygtWebsiteltagtltbgt

ltpgtltthgt

lttrgt[]

lttbodygtlttablegt

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Structuring

to get something more structured

ltxml version=10gtltlibsgtltlib code=VHLgtVere Harmsworth Library (Rothermere American

Institute)ltlibgtltlib code=NDAgtNuffield Dept of Anaestheticsltlibgtltlib code=SCAgtSocial and Cultural Anthropology Libraryltlibgt

[]

ltlibsgt

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Joining the dotsDifficulties

bull Different names - fuzzy matchingbull Different schemes of uids with notranslatorcorrespondence

bull Different concept of a unit between schemesbull Relationships between libraries (particularlyBodleianOULSetc)

Solution

bull Edit by hand (yes we can)

ltplace type=library olisCode=ASC xmlid=O_lib_ascgtltplaceNamegtAll Souls College LibraryltplaceNamegt

[]

ltplacegt

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Taking shape

bull Not really a mashup yetbull But it allows us to query Oxpoints by OLIS code

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Example queriesAll libraries

bull httpmoxacukoxpointstypeLibrarykmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointstypeLibrarykml

Individual libraries

bull httpmoxacukoxpointshasOLISCodeBODkmlbull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeBODkml

Combinations

bull httpmoxacukoxpointshasOLISCodeJES|EXE|LINkml

bull httpmapsgooglecoukz=17ampq=httpmoxacukoxpointshasOLISCodeJES7CEXE7CLINkml

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Joining the dots (again)With a bit of JavaScript on a page we can

bull pick out an OLIS code (by its location in the HTML)bull add a link to Google Maps with Oxpoints KML using thatcode

lttableborder=1width=100cellspacing=4class=data-holdingssummary=This table contains a row for each copy held with

columns for Location Shelfmark and Statusgt[]lttr valign=topgt

lttd align=leftgtBalliolltbrgtBLL Main Libr

ltbrgtlta

href=httpmapsgooglecoukq=httpmoxacukoxpointshasOLISCodeBLL+Main+LibrkmlgtShowlibrary on a mapltagt

lttdgtlttd align=left colspan=1gt0050e 007lttdgtlttd align=left colspan=1gtAvailablelttdgtlttdgtlta

href=httpwwwliboxacuklibrariesguidesBLLhtmltarget=_newgt

ltimgsrc=httpwwwliboxacuklibrariescommoninfogifheight=18border=0alt=library guide for BLLgt

ltagtlttdgt

lttrgt[]lttablegt

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

A pinch of JavaScript

Greasemonkey (Firefox extension) lets us add JavaScript topage

var bodDetails = codeTDinnerHTMLsplit(ltbrgt)bodCode = bodDetails[1]bodCode = bodCodereplace(newLines )if (bodCodematch( ))

encodedBodCode = bodCodereplace( g 252B)bodCode = bodCodereplace( g +)

if (bodCodematch(^[A-Z]3)) bodCodes[i-1] = bodCode

var oxpmaplink = lta href=httpmapsgooglecoukz=16ampq=httpmoxacukoxpointshasOLISCode + encodedBodCode + kmlgtcodeTDinnerHTML = codeTDinnerHTML + ltbrgt + oxpmaplink + Show library on a mapltagt

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install greasemonkey scriptolismapalluserjs

bull Show links working on library searchhttplibraryoxacuk

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Adding value

What else can we do

bull Show all these libraries on the same mapbull Add a map to the page itselfbull Show information about availability on the mapbull Add user location to the map

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Beyond Greasemonkey

bull Cant use Google maps API to add a map to the pagebull Cant pass much useful information into the KML

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

External map

bull Still using JavaScriptGreasemonkey to write in linksbull but these pass info to an external mapscriptbull Easier to manipulate data and control display

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Demo

bull Greasemonkey working on library searchhttplibraryoxacuk

bull All libraries on one (external) mapbull Availability

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Where are you

Google Gears can (sort of) tell your locationIn practice there are probably better ways of doing this

bull User setschooses location(s)bull Native apps for mobile devices which use onboard GPS

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Demo

bull Install Google Gearshttpgearsgooglecom

bull Back to library searchbull You are herebull Directions

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Proof of concept

Shows the general idea but doesnt include

bull Patron data (who are you amp can you borrow the book)bull Integration with book requestsbull Combining with other locationsbull

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept

Ingredients Preparation Taking shape Proof of concept

Is all this useful

bull Maybe more so in other contextsbull Useful as a demonstrationbull Quick prototyping of ideas - easier to visualisebull Shows the value of consumable data

  • Ingredients
  • Preparation
  • Taking shape
  • Proof of concept