Virtual Contribution to the Seattle Mashathon

2009 November 6
by Karen

I’m really bummed I couldn’t attend the OCLC mashathon in Seattle this week. I’ve had a tons new mashup ideas running loose in my head. To that end some of the folks here put our heads together and did a quick neat mashup with Serial Solutions E-Journal list/360Link and data from xISSN. The script uses the JQuery library. For every ISSN the script finds it checks the xISSN service to see if the item is peer-reviewed. If it is it adds a “Peer Reviewed” indicator.

You can check out the script to see how it works

The results looks like this when its applied

On the E-Journal results list page

peer_reviewed_1

On the OpenURL result page

peer_reviewed_2

We’re still testing and need to get approval to implement this here. So don’t expect to see it in our live Serial Solutions, yet.

14 Responses leave one →
  1. 2009 November 6

    Awesome!! We put your post up on screen and will walk people through it at 3 for the Show and Tell. Thanks Karen!!

  2. 2009 November 6

    If people have questions feel free to have them post them here as a comment or collect them, send me an email and I’ll post a response post. I didn’t go into how to add this to Serial Solutions in their administrative tool but it isn’t that difficult.

  3. 2009 November 6
    Godmar Back permalink

    The use of .ajax is a bit awkward – jQuery supports a function call .getJSON() you should use instead.

    Instead of

    $(‘#CitationJournalIssnValue’).each(
    function (i){
    var ISSN = $(this).html();
    $.ajax({
    type: “GET”,
    url: “http://xissn.worldcat.org/webservices/xid/issn/”+ ISSN +”?method=getMetadata&format=json&fl=peerreview&callback=markPeerReview2″,
    dataType: “script”
    });
    }
    );

    function markPeerReview2(data){
    if (data.group[0].list[0].peerreview == ‘Y’){
    $(‘td #CitationJournalIssnValue’).append(‘ Peer Reviewed‘)
    }
    }

    use

    $(‘#CitationJournalIssnValue’).each(
    function (i){
    var ISSN = $(this).html();
    var self = this; // capture this
    $.getJSON( “http://xissn.worldcat.org/webservices/xid/issn/”+ ISSN +”?method=getMetadata&format=json&fl=peerreview&callback=markPeerReview2″,
    function (data) {
    if (data.group[0].list[0].peerreview == ‘Y’){
    $(self).append(‘ Peer Reviewed‘)
    });

    });

  4. 2009 November 6
    Godmar Back permalink

    ps: that should be “callback=?” not “callback=markPeerReview2″

  5. 2009 November 9

    This is way cool, Karen.

  6. 2009 November 9
    Mike Beccaria permalink

    Karen,
    Very cool! As you know, I’ve been trying to get this to work for awhile. I have a couple of questions:
    1. I assume this only works on campus due to limitations in xISSN (IP Address ranges)?
    2. Do you expect to run into a problem with the 10,000 hits a day to xISSN? Have you worked that out with OCLC?
    2. I’m not a javascript guy. How do you call the getISSNs function? I don’t know what the “$” stuff is about in front of the function.

    Tried:
    $(document).ready(function () {
    getISSNs();
    });

    but it didn’t work.
    Thanks!
    Mike

  7. 2009 November 9

    If you get this working and get approval for it, please share the code!

  8. 2009 November 9

    Anna,

    It works as it is. It just has to be put on a server and linked to in the Serial Solutions template. I’ll put up directions when I get a chance (which might not be soon I’m swamped).

  9. 2009 November 13
    Adam permalink

    Karen,

    Great script! I was tinkering with it and it certainly does work as is!

    However, there’s once piece I think other tinkerer’s may want to add to the xissn query if they are already a WorldCat affiliate:

    url: “http://xissn.worldcat.org/webservices/xid/issn/”+ ISSN +”?method=getMetadata&format=json&fl=peerreview&callback=markPeerReview&ai=[youraffiliateloginIDhere]“,

    I really dig it, although xISSN still blocks you with a “stat”:”overlimit” response after 100 requests without paying for more. The error doesn’t effect the load of the page itself, although there is some slowness in the script once that limit is hit. Haven’t quite figured out the solution yet, but working on it!

    Cheers!

  10. 2009 November 20
    Mike Beccaria permalink

    Adam/Karen,
    How is it activated? I tried putting the code in the header “as is” and it didn’t work. Do you call the getISSNs function somewhere?
    Thanks

  11. 2009 November 20

    Mike,

    I talked with some of my contacts at OCLC about your questions to make sure my thoughts were correct.

    1. You can access xISSN from anywhere it isn’t limited to a particular IP range.

    2. No, I don’t think the limit will be a problem because javascript is executed at the client side and the limits are from a particular IP, I believe. Xiaoming at OCLC said that “with Javascript callback, xISSN will see client-side IP addresses, right now OCLC has a 100 requests/IP/day limit by default and should be sufficient for most browser users. The 10,000 or other high volume usage are really targeting server-side processing.”

    I’m not sure if I put the script on a server and access it via a script tag if this will cause the hits to all come from the server where the script is mounted. If it does and created a problem then I’d see if OCLC would increase our quota. I don’t think that they have a problem with increasing people’s quota, at least this is the impression I’ve been given. The limit is there so that OCLC can understand usage and if necessary throttle demand.

    3. Adding the script to Serial solution is pretty easy. I’ll be posting directions shortly.

  12. 2011 June 10

    I was hoping to take a look at this script, but the link to it is broken here. I tried to send a note from your Contact form, but that appears to be broken as well (the Captcha token isn’t recognized). As a newbie coder who has run into a few basic problems with the xISSN (and WorldCat Search) API, I’d love to see what you did here. Thanks in advance.

  13. 2011 June 13

    You can check the script out here – http://www.librarywebchic.net/wp-content/uploads/2009/11/peer_issn.js

    Also if you are looking for other code examples using OCLC Web services you can check out the Developer Network code repository – http://www.worldcat.org/devnet/code/devnetDemos/trunk/

Trackbacks & Pingbacks

  1. print holdings & javascript « eclectic librarian

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS