One Big Library. - openurl http://onebiglibrary.net/taxonomy/term/20/0 en The other end of the mic: OpenURL, Crossing Over http://onebiglibrary.net/story/the-other-end-of-the-mic-openurl-crossing-over <p>In case you didn't catch the updated text at the top of the <a href="http://onebiglibrary.net/story/rethinking-openurl">last post</a> here, <a href="http://blog.jonudell.net/">Jon Udell</a> kindly followed up on <a href="http://onebiglibrary.net/story/crossover-event-jon-udell-and-tony-hammond-on-doi-etc">a comment he left here recently</a> and <a href="http://blog.jonudell.net/2007/02/16/a-conversation-with-dan-chudnov-about-openurl-context-sensitive-linking-and-digital-archiving/">interviewed me</a> for his Friday podcast about OpenURL and other topics persistent and linkish.</p> <p>...in which I:</p> <ul> <li>try to explain <a href="http://www.niso.org/standards/standard_detail.cfm?std_id=783">OpenURL</a> linking</li> <li>fail to recognize or usefully distinguish the differences between <a href="http://archive.org/">archive.org</a> and <a href="http://arxiv.org/">arXiv.org</a> (I just heard "archive.org" and went with that even though Jon meant "arxiv.org", at least early on, I think)</li> <li>reference the <a href="http://garfield.library.upenn.edu/reversepub.html">50+-year research and publishing history of <a href="http://www.garfield.library.upenn.edu/">Eugene Garfield</a></li> <li>dredge up the old <a href="http://dspace.org/">DSpace</a> identifier wars</li> <li>discuss some issues with <a href="http://www.handle.net/">the Handle System</a> and the centralized/distributed governance spectrum</li> <li>describe <a href="http://ocoins.info/">COinS</a> and how to use <a href="http://curtis.med.yale.edu/dchud/resolvable/">COinS browser extensions at your library</a></li> <li>highlight the <a href="http://generator.ocoins.info/">COinS Generator</a>, the <a href="http://www.oclc.org/productworks/urlresolver.htm">OCLC OpenURL Resolver Registry</a>, and <a href="http://libraryfind.org/">LibraryFind</a> projects</li> <li>crib Jon's notion of a <a href="http://blog.jonudell.net/2007/02/02/who-can-see-which-parts-of-my-published-surface-area/">publishing surface area</a> and reference <a href="http://www.ifla.org/VII/s13/frbr/frbr.htm">FRBR</a> as a framework for considering the surface area of a distinct intellectual or artistic creation</li> <li>say "Mess is Lore" and reference the <a href="http://palimpsest.stanford.edu/byform/mailing-lists/exlibris/1996/02/msg00226.html">Book Arts Press valentines</a> the *week* of valentine's day without saying they're valentines</li> <li>mention the <a href="http://www.computerhistory.org/">Computer History Museum</a></li> <li>try to convince Jon that he should find an archives to work with to start collecting his papers (online and otherwise) and correspondence without actually saying that so succinctly or usefully</li> <li>give Jon the scoop about my upcoming new job</li> </ul> <p>It was a real pleasure to get to talk with someone whose writing I've read for many years and to appear on a podcast I've been listening to since its inception. Jon's long-time crossover interest in libraries (c.f. <a href="http://weblog.infoworld.com/udell/stories/2002/12/11/librarylookup.html">Library Lookup</a>) is one of the strongest bridges we library hackers have to the broader software and systems communities. It's also a privilege to follow great folks like <a href="http://blog.jonudell.net/2007/01/26/a-conversation-with-tony-hammond-about-digital-object-identifiers">Tony Hammond</a>, both <a href="http://blog.jonudell.net/2007/02/02/a-conversation-with-ed-vielmetti-and-john-blyberg-about-superpatrons-and-superlibrarians/">John Blyberg and Ed Vielmetti</a>, John Wilkin, and Lou Rosenfeld (both of whom I was lucky enough to interact with while at grad school at umich, check the podcast feed for these older, pre-Jon's new blog links) as a library-interested interviewee.</p> <p>Unfortunately I've been too busy to put together more Library Geeks interviews, but I plan to start that back up again once I settle into the new gig, I promise. It's easier to be the one asking the questions!</p> http://onebiglibrary.net/story/the-other-end-of-the-mic-openurl-crossing-over#comments http://onebiglibrary.net/crss/node/164 coins jon udell openurl podcast Sun, 18 Feb 2007 01:43:56 -0600 dchud 164 at http://onebiglibrary.net Rethinking OpenURL http://onebiglibrary.net/story/rethinking-openurl <p>Recently I was interviewed for a podcast episode that might (hoping it indeed is published! [Updated 2/16, 5:30pm: yep, and <a href="http://blog.jonudell.net/2007/02/16/a-conversation-with-dan-chudnov-about-openurl-context-sensitive-linking-and-digital-archiving/">here it is</a>, and there goes the news about my new job...]) soon be heard by a lot of people. The topic was OpenURL, and why it's both so exciting and so frustrating to everyone who dives down into it.</p> <p>I've been particularly frustrated with OpenURL lately. Just when efforts like COinS are starting to pay off (c.f. new Wikipedia cite templates, worldcat.org, new Wordpress plugin from Zotero, Zotero itself, and LibX), it feels like the door to wider use and acceptance of COinS specifically and OpenURL in general remains welded shut.</p> <p>Don't take this the wrong way - I remain a huge OpenURL fan, including the whole vision that led to the ANSI/NISO Z39.88-2004 standard, even if that standard turned out to be way too complicated. I've been a fan of this way of doing things since we added multiple linking paths to the now-defunct jake project in early 1999, so we could link users from bibliographic references on the web into the books and journal articles the way your library has best set you up to do so, in pretty much an OpenURL-0.1-compatible way, even before we ever heard about OpenURL. (It was, after all, obvious to have a bunch of HTTP GET fields with names like [title, spage, volume, issue, issn, etc.].)</p> <p>And I'm not saying we need to do away with OpenURL. I think instead that we need to recontextualize what it is we think OpenURL is for, and to do so in a way that focuses on the common use case of service linking on the web today. And I think we need to avoid dogmatic adherence to the Z39.88 standard, since we all mostly think it's overwrought anyway.</p> <p>Let me try to explain it this way. Have you noticed those little clusters of links next to stories at NYTimes.com, or at the end of blog posts, or in reference databases, or on journal sites? These little blocks of links are popping up all over the place. What they are, in general, is "a list of the functions you can do from here, given the thing you're looking at now, depending on who you are."</p> <p><a href="http://www.flickr.com/photos/dchud/391814946/" title="New York Times service links"><img src="http://farm1.static.flickr.com/151/391814946_dc72562454_o.jpg" width="139" height="155" alt="service-links-nytimes" /></a></p> <p>New York Times service links.</p> <p><a href="http://www.flickr.com/photos/dchud/391814947/" title="Blyberg.net weblog service links"><img src="http://farm1.static.flickr.com/142/391814947_f18c76b4c3_o.jpg" width="464" height="58" alt="service-links-blyberg" /></a></p> <p>Blyberg.net weblog service links.</p> <p><a href="http://www.flickr.com/photos/dchud/391814949/" title="Pubmed service links"><img src="http://farm1.static.flickr.com/136/391814949_20793588b0_o.jpg" width="474" height="231" alt="service-links-pubmed" /></a></p> <p>Pubmed.gov service links.</p> <p><a href="http://www.flickr.com/photos/dchud/391814951/" title="JAMA service links"><img src="http://farm1.static.flickr.com/162/391814951_7ef60da09e_o.jpg" width="146" height="440" alt="service-links-jama" /></a></p> <p>JAMA service links.</p> <p><a href="http://www.flickr.com/photos/dchud/391821189/" title="Citeseer service links"><img src="http://farm1.static.flickr.com/129/391821189_388aa112ed_o.jpg" width="246" height="70" alt="service-links-citeseer" /></a></p> <p>Citeseer service links.</p> <p><a href="http://www.flickr.com/photos/dchud/391821187/" title="Google Scholar service links"><img src="http://farm1.static.flickr.com/163/391821187_7966f47d57_o.jpg" width="529" height="109" alt="service-links-google" /></a></p> <p>Google Scholar service links.</p> <p>This, my friends, is dynamic service linking, in a nutshell.</p> <p>(And, yes, I do mean "in a nutshell" as in "ooh, ooh, help, I'm trapped in a nutshell, get me out of here.")</p> <p>I believe that this analysis maps *exactly* to the vision for OpenURL specified in the documents that led up to the ANSI/NISO Z39.88-2004 standard that nobody can actually read. They nailed it - they knew this was coming, and they were right, and here it is, all over the place, on the most popular sites on the web.</p> <p>But there are two major problems with this analysis.</p> <p>First, all of these diverse sites publishing useful service links for their own materials have *no* idea that I'm a Yale University person and that *my* library's OpenURL resolver is over here, yes, please, thank you very much. This means that there's no public, cross-site workflow for getting out from most of these sites' own concepts of what "context-sensitive links for me for this content object" what mean back into what Yale's library thinks should be useful links for me. Nor is there a clear workflow for me to get back out from a Yale resource to these online, not-at-Yale items. This is a fatal flaw in the current state of how we both conceive of and implement OpenURL solutions in libraries today (which is to say, not a fatal flaw in the model, just how we use it now).</p> <p>Until we address this flaw in our current thinking, and bring this wider world of web resources and their own notions of service links and our traditional, more narrowly defined research library workflows into some kind of common system, we'll never see the full vision of OpenURL realized.</p> <p>Secondly, and this is perhaps a bit less practical, but no less important, but I think the notion of "context-sensitive" linking does itself have a basic flaw. If you've studied finite automata or linguistics and know what language parsing is all about, "context-sensitive" might ring an alarm for you. "Context-sensitive" grammars tend to be significantly computationally harder to work with than "context-free" grammars. (If you're not familiar with this distinction, see the <a href="http://en.wikipedia.org/wiki/Chomsky_hierarchy">Wikipedia entry for Chomsky hierarchy</a>.) Do you know how the "natural language query" problem remains mostly unsolved? Well, think about the difference this way - most human languages are context-sensitive, whereas most computer programming languages are context-free.</p> <p>What we've done with the OpenURL model and how we use it in libraries today is to design a standard around our unusual, more complex cases (dealing with weird bibliographic references). The workflow we have applied to OpenURL is context-sensitive in that the publisher needs to recognize my network address, and needs to then redirect to my institutional resolver, and that our institutional resolver needs to be pre-configured with our holdings information, and the outgoing links from our resolver needs to be aware of my network address again as I go out there to get the thing I wanted in the first place. Without all of this preceeding context-setting, the workflow breaks, so our context-sensitive worldview simply requires all of it.</p> <p>In the meantime, sites applying the more common, simpler cases (dealing with web links) have essentially adopted the entire OpenURL model but without so much as saying so. That blog engine doesn't care what my network address is, and doesn't know whether I have accounts at the endpoints of the digg and del.icio.us links at the bottom of the blog post. It'll send me there just in case I do, and at the moment of need, just in time, if I need to identify myself to digg, or to whatever the target link might be, I will, if I have an account. But not before. Digg doesn't need to know that I'm a TimesSelect subscriber. The New York Times doesn't care that I use unalog, not del.icio.us. This whole scenario does not depend upon - and thus performs none of - the context-setting of our library research and licensed resource workflows.</p> <p>The computational aspect of it doesn't bail out if you don't have a del.icio.us account - del.icio.us just doesn't let you in, but I can still get there if I want. In the heavier-weight scenario, I can't even figure out where I might want to go through my OpenURL resolver if my institutional context isn't sniffed out by the original remote resource, because I never even get to the OpenURL resolver in the first place.</p> <p>I think I'm starting to see a better way to address all of this. This post is already pretty long, though, so I'll just state the objective for now.</p> <p>The goal of rethinking OpenURL, I think, should be to reimplement the same original OpenURL model of dynamic service linking as - in the typical case - a context-free workflow. The instant we do that conceptually, we see how unified all of this really could become. It gives us librarians something to offer the nytimes.coms and diggs of the world: a singular framework for mixing and mashing service links for diverse sites independent of who we all are and what we know about each other.</p> <p>Then, to address the more complicated context-sensitive research workflows we hold so dear, we simply define a context-free way to hook into that workflow, so if some arbitrary transaction needs it, it can hand us over into it, but *not* until we have to have it.</p> <p>I'm not sure who said it first, but there's a librarianly spin on the old Perl paradigm I think I heard at code4libcon or Access in the past year: instead of "making simple things simple, and complex things possible," we librarians and those of us librarians who write standards tend, in writing our standards, to "make complex things possible, and make simple things complex."</p> <p>That approach just won't cut it anymore.</p> <p>Coming soon: a concrete way forward.</p> http://onebiglibrary.net/story/rethinking-openurl#comments http://onebiglibrary.net/crss/node/163 openurl Fri, 16 Feb 2007 01:38:28 -0600 dchud 163 at http://onebiglibrary.net OpenURL over OpenSearch using Parameter extension http://onebiglibrary.net/story/openurl-over-opensearch-using-parameter-extension <p>I will get back to the ZeroConfMetaOpenSearch series soon. But before I could go much further, I had to try this first.</p> <p>Here's what the OpenURL <a href="http://alcme.oclc.org/openurl/servlet/OAIHandler/extension?verb=GetMetadata&amp;metadataPrefix=mtx&amp;identifier=info:ofi/fmt:kev:mtx:journal">KEV format for journal and journal article reference queries</a> might look like if it were to follow <a href="http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_3">OpenSearch 1.1 Draft 3</a>. More to the point, this is what the block specifying the journal KEV params might look like inside the OpenSearch description response if it were to use the <a href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0">Parameter</a> extension.</p> <pre> &lt;Url xmlns:parameters="http://a9.com/-/spec/opensearch/extensions/parameters/1.0/" type="text/html" template="http://example.com/search"&gt; &lt;parameters:Parameter name="q" value="{searchTerms}"/&gt; &lt;parameters:Parameter name="count" value="{itemsPerPage?}" minimum="0"/&gt; &lt;parameters:Parameter name="start" value="{startIndex?}" minimum="0"/&gt; &lt;parameters:Parameter name="aulast" value="{aulast?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="aufirst" value="{aufirst?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="auinit" value="{auinit?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="auinit1" value="{auinit1?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="auinitm" value="{auinitm?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="ausuffix" value="{ausuffix?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="au" value="{au?}" minimum="0" maximum="*"/&gt; &lt;parameters:Parameter name="aucorp" value="{aucorp?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="atitle" value="{atitle?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="title" value="{title?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="jtitle" value="{jtitle?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="stitle" value="{stitle?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="date" value="{date?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="chron" value="{chron?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="ssn" value="{ssn?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="quarter" value="{quarter?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="volume" value="{volume?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="part" value="{part?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="issue" value="{issue?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="spage" value="{spage?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="epage" value="{epage?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="pages" value="{pages?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="artnum" value="{artnum?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="issn" value="{issn?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="eissn" value="{eissn?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="isbn" value="{isbn?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="coden" value="{coden?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="sici" value="{sici?}" minimum="0" maximum="1"/&gt; &lt;parameters:Parameter name="genre" value="{genre?}" minimum="0" maximum="1"/&gt; &lt;/Url&gt; </pre><p> I *think* that's right. It isn't clear to me whether the q/searchTerms param is required in OpenSearch or not. If it is, then we could use it to paste through an url-encoded text representation of the reference, I suppose. If not, well, it could just be optional, or dropped entirely.</p> <p>We'd still need to do work on the response record format - perhaps something might be borrowed from the <a href="http://iesr.ac.uk/metadata/">IESR Metadata specs</a> and inserted into RSS2.0 or Atom responses.</p> <p>What's amazing to me about OpenURL is that it's been implemented so successfully (in the sense that we had nothing before, and now we have something). That said, I repeatedly hear arguments that by defining and using more OpenURL application profiles you gain benefits through the shared OpenURL infrastructure. I don't buy that because I've never seen such benefits. If you swap out OpenURL and swap in OpenSearch and use the same application profiles, like in this example, then I could see the benefits of shared OpenSearch infrastructure.</p> http://onebiglibrary.net/story/openurl-over-opensearch-using-parameter-extension#comments http://onebiglibrary.net/crss/node/136 opensearch openurl Thu, 7 Dec 2006 14:27:39 -0600 dchud 136 at http://onebiglibrary.net Talk: COinS, unAPI, and a Plan for Zero Configuration Service Discovery http://onebiglibrary.net/talks/coins-unapi-and-plan-for-zero-configuration-service-discovery <p>Today I gave <a href="http://onebiglibrary.net/story/time-to-write-that-talk">that talk</a> at the <a href="http://www.niso.org/news/events_workshops/D2D-06-wkshp.html">NISO D2D meeting</a>. I think it went pretty well despite having gone way beyond what I'd originally thought it would cover.</p> <p>The first part basically introduces and gives background for why COinS and unAPI are useful steps forward. The second part argues that:</p> <ol> <li>We should merge our metasearch and openurl resolver interfaces</li> <li>We should layer an opensearch interface on top of that</li> <li>We should register the opensearch interface as a DNS-based wide-area zeroconf discoverable service</li> </ol> <p>Why? If we did all of that, then everybody visiting our domain could find our base search interface, and remote services visited by people from our domain could find our resolver interface.</p> <p>The slides are attached as pdf. Sadly I botched my own audio recording, but tomorrow I'll plead for a copy from the soundboard guys, and will add that too if I can get it.</p> <p>[Updated 2007-01-08] The audio is a little blotchy, but <a href="/files/20061102-niso-d2d-chudnov.mp3">here it is</a>.</p> http://onebiglibrary.net/talks/coins-unapi-and-plan-for-zero-configuration-service-discovery#comments http://onebiglibrary.net/crss/node/127 coins opensearch openurl talks unapi zeroconf Thu, 2 Nov 2006 22:15:37 -0600 dchud 127 at http://onebiglibrary.net Library Geeks 001 - Fun with OpenURL (updated) http://onebiglibrary.net/geeks/episode/001-fun-with-openurl <p>Hear ye, hear ye, we have met the Library Geeks and we are us: <a href="http://odeo.com/audio/1648249/view" alt="Library Geeks 001 - Fun with OpenURL">Listen to Library Geeks 001 - Fun with OpenURL</a>.</p> <p>Ross Singer joins me for the first episode, wherein we discuss OpenURL, the state of the OpenURL resolver marketplace, and the innovative work Ross is leading at the Georgia Tech library to implement a next-generation resolver.</p> <p>[Updated.] Get it through the feed at <a href="http://geeks.onebiglibrary.net/feed.xml">geeks.onebiglibrary.net/feed.xml</a>.</p> <p>Notes:</p> <ul> <li>Learn more about the umlaut at <a href="http://rsinger.library.gatech.edu/umlaut/">the umlaut trac</a></li> <li>The JCDL paper on statistics is <a href='http://umlaut.library.gatech.edu/go/118'>available through the umlaut itself</a></li> </ul> http://onebiglibrary.net/geeks/episode/001-fun-with-openurl#comments http://onebiglibrary.net/crss/node/88 geeks openurl podcast rsinger Mon, 7 Aug 2006 22:24:58 -0500 dchud 88 at http://onebiglibrary.net A Clean, Well-Linked 'Base (or, Solving the "Appropriate Resolver" Problem with the OCLC Resolver Registry) http://onebiglibrary.net/story/solving-the-appropriate-resolver-problem <p>Along with several colleagues I've come to the opinion that the current OpenURL implementation workflow and user experience is wholly insufficient. There's too much maintenance overhead on both sides of the library/publisher equation. There's too much work for small publishers to be able to participate. There's almost zero possibility that a tiny publisher (like a single weblogger somewhere) will be able to put useful OpenURL links on their own little sites.</p> <p>What we need next if we really want to spread OpenURL-based services more widely is a no-configuration, no-overhead, inexpensive solution that works for the widest possible range of libraries, publisher/vendors, and users. (The usability of the prevailing OpenURL resolution click-flow is a wholly separate matter with its own insufficiencies, but we can't solve everything at once.)</p> <p><a href="http://ocoins.info/">COinS</a>, as cool as it is, remains inadequate for meeting this need statement because it requires every user to twiddle bits on their desktop, although it pushes us a step closer by *allowing* users to benefit by twiddling bits, which wasn't possible before.</p> <p>What to do? Use registries.</p> <p>The <a href="http://www.oclc.org/productworks/urlresolver.htm">OCLC OpenURL Resolver Registry</a> comprises records for roughly 1000 OpenURL resolvers at various institutions, mostly but not solely in North America. It also provides a simple web service that takes an IP address as a parameter and returns zero-to-many resolver records for every resolver that serves users coming from that IP address.</p> <p>What does that mean? If you're like me, and you work for a small service like the <a href="http://canarydatabase.org/">Canary Database</a>, you used to be essentially unable to provide user-appropriate OpenURL linking without having to configure many many ranges of IP addresses after many many conversations with librarians. "Used to be," that is.</p> <p>Are you on a campus (or using a campus proxy) for an institution with an OpenURL resolver? If yes, <a href="http://canarydatabase.org/browse/year/1972">visit the Canary here</a> and tell me what you see.</p> <p>What you *should* see (only just turned this on, mind you, so please report broken stuff!) is working links to your own institution's OpenURL resolver. Easy, right?</p> <p>Here's how to implement it on your site:</p> <ul> <li> read about the OCLC OpenURL Registry Gateway service and find the details of the query service in the Word doc on that page. </li> <li> implement code in your database that queries the gateway with the IP address of your webapp's incoming users (REMOTE_ADDR in CGI-land) </li> <li> parse the response and if there's a resolver in there, formulate and render links and link buttons to that user for all the references on your site </li> <li> watch users' eyes light up when they see links </li> <li> get excited </li> </ul> <p>Well, it's a bit more complicated than that. You're not quite done:</p> <ul> <li> since you don't want to hit OCLC's service multiple times for the same user, build a little caching system into your application It could be as simple as a single table with a UNIQUE constraint on users' IP addresses that maybe stores the raw xml Registry responses and parsed values for at least base_url, icon_url, and link_text </li> <li> instead of hitting OCLC every time, first check your db, and only query OCLC if you don't already have a record. </li> </ul> <p>Better, right? Actually, the best thing to do would be to also parse out the per-institution IP address block information and do local queries against the *ranges*, not specific IP addresses. PostgreSQL has a built-in type that supports this really well.</p> <p>Any competent web geek should be able to implement this in a few hours. Call me if have questions.</p> <p>So, to review, here's what happens:</p> <ul> <li> You implement a function in your webapp that queries OCLC and caches the resolver information locally and then renders appropriate resolver links to all your users </li> <li> Your webapp users follow the links as if they were always there because it looks just like what they're used to seeing in Fancy Expensive Resources and they'll Just Know (tm) what to do </li> </ul> <p>Pretty cool, eh? It's not without some important problems, though.</p> <ul> <li> It's still not good enough. It doesn't solve the "but I'm off-campus" problem. The good news is, though, that if your campus, like ours, uses a web proxy for remote access, your remote users will probably be using the proxy anyway if they're already doing research, so this should work for them in a lot of cases. </li> <li> There's no good fallback if there's no resolver for you. Ideally something like OCLC's <a href="http://www.oclc.org/worldcat/open/about.htm">Find in a Library</a> function could work here too, but that's fraught with difficulties. Trust me, if you've ever been to New Haven, you'll know... if you live on the wrong side of the street across from Ivy U., you won't necessarily get Ivy U. access even if you beg and plead. But, that's a much bigger problem of which this is just yet another instance. </li> <li> This simple function isn't as smart as the work Google Scholar does to attempt to check against each institution's holdings before showing links. But then again, Google Scholar isn't a last mile service, so they don't want to have to deal with the untidy problem of finding something that might not be online. But we librarians do! </li> <li> It isn't clear whether the OCLC Registry coordinates queries across the pond to the UK Registry, or any other registry, or whether OCLC's registry comprises their remote data, but it would be good to be able to fire off just one query and be reasonably assured that users *anywhere* will find their resolvers. </li> <li> There's a fundamental flaw in the whole approach of using a web service to query IP- and DNS-related information. </li> </ul> <p>The flaw with the IP/DNS query bit is that a massive, distributed, caching system for queries about membership of IP addresses in IP blocks already exists, and it's all connected to user- and application-queriable layers through DNS, too. And a <a href="http://www.zeroconf.org/">protocol which uses these existing layers for just these kinds of purposes already exists</a> along with a related <a href="http://www.dns-sd.org/">DNS Service Discovery piece</a>. Check the name of the first protocol: Zero Configuration Networking.</p> <p>That's exactly what we're doing here - providing a zero configuration experience to users. But we're not doing it with ZeroConf, though we probably should be. Or at least we need to make a concerted effort to try it before we dismiss it.</p> <p>Still, this seems to work. And from multiple, repeated usability tests on the Canary, the first thing everybody always says *still* has been "I want full-text links." Now they can have 'em.</p> <p>A quick aside: the folks behind the Registry and Gateway at OCLC are supportive of this approach and want to see more people using it, so don't be shy (but cache your queries so as not to be rude, either :). If your institution's resolver isn't in the Registry, or your resolver's record there is out of date, use the <a href="http://www.oclc.org/productworks/urlresolver.htm">form they provide</a> to enter or update information about your service.</p> <p>Have at it!</p> http://onebiglibrary.net/story/solving-the-appropriate-resolver-problem#comments http://onebiglibrary.net/crss/node/86 canary coins oclc openurl registry resolver zeroconf Thu, 3 Aug 2006 08:47:39 -0500 dchud 86 at http://onebiglibrary.net