Nieuwe aanwinsten 2.0 update
In mijn vorige post schreef ik:
Op mijn to do-lijstje staat nog het koppelen van de records aan andere webservices zoals PiCarta, Amazon en dergelijke. Van die laatste zou ik ook graag de cover-afbeeldingen binnenhalen, maar daar moet ik eens goed voor gaan zitten.
En dat heb ik gedaan ook. De koppelingen zijn geactiveerd, en ook de Amazon covers worden -indien beschikbaar- automatisch binnengehaald. Het resultaat daarvan is iets minder spectaculair dan wat ik me er vooraf van had voorgesteld. Er worden bij de Fontys mediatheken niet erg veel Engelstalige boeken aangeschaft, waardoor er maar weinig cover-afbeeldingen vanuit Amazon worden opgehaald. Maar goed, de techniek werkt in ieder geval en dat mag een wonder heten. Het doorgronden van de xsl-opmaakcode heeft me bloed, zweet en tranen gekost. Speciaal ingewikkeld was het opbouwen van de op het ISBN-nummer gebaseerde Amazon-koppeling. Probleem daarbij was de niet-consequente wijze waarop het ISBN-nummer verpakt zat in het aangeleverde XML-bestand. Wie even door een willekeurige aanwinstenlijst scrollt, ziet items als ‘ISBN 90-232-3870-2*geb.’ en ‘ISBN 0-415-24889-2 : £60.00’.
Om een werkende koppeling te krijgen met Amazon, dient alle ‘rommel’ eruit gefilterd te worden, totdat er niet meer over is dan het tien-cijferige ISBN-nummer. Uiteindelijk is me dat gelukt, door gebruik te maken van deze constructie:
<xsl:element name="img">
<xsl:attribute name="src">http://images.amazon.com/images/P/
<xsl:value-of select=
"substring(translate(isbn/isbnprim, '-:.()*abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWYZ€$£ ', ''), 1, 10)"/>.01._SCMZZZZZZZ_.jpg
</xsl:attribute>
</xsl:element>
Het lijkt complex, maar dat valt best mee (zegt hij achteraf...). De oplossing zit ‘m in de combinatie van de functies ’substring‘ en ’translate‘. De eerste zorgt er voor dat niet meer dan tien karakters getoond mogen worden, vanaf de eerste positie. De tweede functie ’translate‘ wordt gebruikt om alle niet numerieke karakters te filteren (behalve de hoofdletter X, die mag weer wel in het ISBN-nummer(!) voorkomen). Door beide functies te nesten, wordt ‘ISBN 07-506-7774-0*geb.’ netjes geconverteerd naar ‘0750677740’. De uiteindelijke URL ziet er dan zo uit: http://images.amazon.com/images/P/0750677740.01._SCMZZZZZZZ_.jpg. En dat levert dan vanzelf een mooi plaatje op:
Nu kan ik verder niets meer bedenken, behalve misschien nog wat visuele aanpassingen en een RSS-feed. Maar mocht je nog goede ideeën hebben, ik luister…


Nog effe en ik kan jou mailtjes gaan sturen als ik er niet uit kom met XSLT.
Nou nee, daarvoor moet ik me nog wat meer in de materie verdiepen. Overigens aan die tip van jou had ik niet zo veel, behalve dan dat er ergens op die pagina een linkje stond naar een xsl-forum waar ik uiteindelijk de oplossingsrichting gevonden heb.
Goed gedaan Gerard! Een afbeelding geeft de aanwinsten veel meer karakter en aantrekkingskracht. Is er geen Nederlandstalige leverancier waarvan je op dezelfde wijze covers kunt binnenhalen (vb. bol.com, boeknet??). Worden de aanwinstenlijsten automatisch op een bepaald tijdstip per maand aangemaakt? Kan het ook per nieuwe ingevoerde titel? Bovendien zou het ideaal zijn als ‘klant’ wanneer je de aanwinsten op maat kunt lezen (i.p.v. filteren uit een lange lijst) > RSS-feeds?
Goeie vraag, die over Bol.com. Ik zie dat ze ook het ISBN-nummer aan de afbeelding gekoppeld hebben, vraag is alleen of het mag. Heb direct maar een mailtje gestuurd aan de klantservice, dus wie weet.
Tjonge, nou weten we ook gelijk waarom je de laatste tijd zo weinig tijd overhoudt om te posten…
Gerard,
Bedankt voor je uitzoekwerk (had hier de ontwikkelaars al eens gewezen op de tips van Jonh Blyberg, maar dat maakte nog geen indruk). De paar regels code die jij geeft in je post, maakte ze meteen entousiast. Werkt inderdaad prima. Het is vanochtend bij ons al meteen in een interne database geimplementeerd. Ik denk dat er nog wat water door de Rijn moet voor we zoiets in de catalogus opnemen, ik zal je wel laten weten wanneer het zover is.
WoW!ter
Wow, WoWt!er, dat zou mooi zijn! Met welk bibliotheeksysteem werken jullie eigenlijk?
Gerard,
Wij hebben geen off-the-shelf LCMS, dat knutselen (met veel respect bedoel ik dit) de dame en heren zelf in elkaar. WaY is de eerste database die helemaal minisis vrij gemaakt wordt. Wat meer info over dit werk staat op onze liblab wiki
http://library.wur.nl/wiki/index.php?title=Wageningen_UR_Library_Content_Management_System
Wat betreft de mooie plaatjes, er ging wat mis met mijn eer-vorige post, maar hier staan wat boeken gelinkt die een boek-cover hebben met de techniek van Gerard: http://library.wur.nl/desktop/news/new.html
De Amazon-pagina opent na een klik op de afbeelding in een ‘knoploos’ pop-up venster, niet heel gebruiksvriendelijk. Maar verder ziet ‘t er goed uit, misschien moet ik maar eens patent aanvragen op dit xsl-truukje…
Hoi Gerard,
Kijk maar eens naar wat jij het mooiste plaatje in onze catalogus vindt: http://www.wowter.nl/blog/2006/04/plaatjes-in-onze-catalogus.html
groet
WoW!ter
Heel mooi dat het technisch allemaal werkt, maar hoe zit het auteursrechtelijk? Mag je de coverfoto’s zomaar “lenen” van Amazon? Of behoort het auteursrecht zelfs toe aan de boekuitgever?
Ik ben het er helemaal mee eens dat het een verrijking is van de instituutscatalogi, maar het lijkt me toch niets om over na te denken voordat je e.e.a. breed gaat inzetten.
Interessante vraag in dat kader is ook of het toegestaan is om zèlf een foto te nemen/scan te maken van de cover…
Zover ik heb kunnen nagaan vinden ze het bij Amazon.com wel prima dat hun afbeeldingen op andere plekken gebruikt wordt. Maar inderdaad, dat is een goede vraag, is het niet de boekuitgever (of de ontwerper, de auteur, ...) die eigenaar is van de boekcover? Ik heb geen idee.
Aan de andere kant, welke inbreuk maak je eigenlijk op het auteursrecht van de eigenaar als je in een bibliotheekcatalogus de boekcover toont naast de titelbeschrijving? Ik kan me moeilijk voorstellen dat er auteurs/uitgevers zijn die daar problemen mee zouden hebben.
Overigens zit die Amazon-cover bij Fontys alleen in de nieuwe aanwinsten, en niet in de catalogus. Wel wordt hier en daar regelmatig een boekcover ingescand. Of dat mag, tsja, misschien eens voorleggen aan een auteursrecht-expert. Suggesties anyone?
Het zal in dit geval allemaal niet zo’n vaart lopen, maar ik weet dat er websites zijn die bezwaar maken tegen dit soort deeplinking, niet eens zozeer vanwege auteursrechten maar wel vanwege het gebruik van bandbreedte.
Verder kan ik me herinneren dat er kort geleden een discussie was over het weergeven van te koop staande huizen van o.a. de Funda website. Daarbij zou je ook kunnen zeggen “wat kan een eigenaar er nu voor bezwaar tegen maken als hij vaker te vinden is” maar de NVM makelaars waren er duidelijk niet gelukkig mee (ze hebben die zaak overigens wel verloren).
Nog even terug naar de techniek: dat probleem wat je schetst met het eruitvissen van de ISBN-code: dat is het vakgebied van de “Regular expressions”. Zie o.a. http://www.gorissen.info/Pierre/item/2005/1/8/ik-haat-regexp . Lastige materie, maar je kan er erg veel mee. Net als met XSLT trouwens, moet ik me ook nog eens wat meer in verdiepen.
Hoi,
Ik zie deze pagina te laat want was zelf op zoek gegaan naar de mogelijkheden van Amazon. Goed werk, ik had me wat tijd kunnen bespare.
Alleen heb ik een opmerking over de manier waarop je de ISBN’s voor de Amazon URl bepaalt. Jij gebruikt:
substring(translate(isbn/isbnprim, '-:.()*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ€$£ ', ''), 1, 10)"/>.01._SCMZZZZZZZ_.jpg
maar het is wellicht handiger om gewoon twee keer translate te gebruiken., in de trent van
translate(string,translate(string,"0123456789X",''),'')met de eerste maak je een string waar alle nummers en X-en uit zijn gehaald, en die gebruik je dan om de rest weg te filteren.
en je kunt dit als je wilt substringen van 1 tot 10.
Beschouw dit maar als een hopelijk zinvolle suggestie om het gemis goed te maken dat ik niet naar jou gerefeerd heb op mijn log
Groet’n,
HEnk
Hoi Henk,
dat zou ook kunnen werken -denk ik, zal het eens uitproberen. Er leiden zoals altijd meerdere wegen naar Rome, er zijn er vast nog meer, maar ik ben met die van mij -als niet XSL-expert- toch heel tevreden.
En ik kan wel gaan Googlen, maar je log hierover, waar vind ik die?
Dag Gerard,
Ik kon die URL niet kwijt, maar zie nu plotseling hoe het wel kan. Het staat op
digilib.weblog.ub.rug.nl
De oplossing die ik gebruik om geen auteursrechtelijke problemen met BOL.com te krijgen is door gewoon aan het partnerprogramma mee te doen (heeft Amazon natuurlijk ook). Hoewel ik me kan voorstellen dat je het discutabel vindt voor een mediatheek om een ‘commerciële’ link naar een website op te nemen (in theorie kun je er geld mee verdienen), maar voor mijn weblog vond ik dat geen probleem (en dat geld verdienen is bij BOL.com echt alleen in theorie).
Michel: deepplinken of afbeeldingen ‘lenen’ is heel wat anders. Zonder toestemming is gebruik van de afbeelding simpelweg niet toegestaan.
@Pierre, reacties met drie maal dezelfde URL er in (BOL.com) worden automatisch tegengehouden. Nu met eentje minder werkt het wel.