There’s been some interesting discussion about SRW/U vs OpenSearch on some library email lists, blogs, and over in #code4lib. I worked on the SRU and CQL::Parser modules for the Ockham Initiative, and have watched the comparisons to A9′s RSS based OpenSearch with great interest. It’s amazing how similar the goals of these two search technologies are, and yet how different the implementations and developer communities are.
At their most basic both SRW/U and OpenSearch aim to make it easy to conduct searches over the web. They both want to spread distributed searching over the web for the masses. SRW/U grew up before OpenSearch at the Library of Congress, mainly on a small implementors list. It allows you to use SOAP as a transport layer, or simple XML over HTTP using a RESTful interface. The results can really be any type of XML, and there is no lingua franca of DublinCore like in OAI-PMH. SRW/U comes with an attendent query specification known as the Common Query Language (CQL). So there are a fair amount of moving pieces in building even a barebones SRW/U server.
OpenSearch on the other hand is relatively new, and was developed by A9 (a subsidiary of Amazon who know a thing or two about building robust easy to use web services). Really it’s just a RESTful interface for obtaining search results in RSS 2.0. There is talk that v1.1 might have some extensions to support more refined queries and xmlnamespaces for bundling different types of XML results…but at the moment there’s no need to parse queries, or to be able to handle any flavor of XML other than RSS 2.0.
When comparing the two sites one thing makes itself clear: the SRW/U site is a shambles–the specification itself is fragmented, and as a result there’s information all over the place. The OpenSearch page is neatly laid out with examples, rationale and even has a developers blog. The key here I think is that OpenSearch started simple and is slowly adding functionality that might be needed. SRW/U started out trying to simplify an existing standard and is slowly trying to make it simpler (there’s even been suggestions to drop the SOAPy SRW altogether and focus on the RESTful SRU). They’re moving in opposite directions. I don’t really have any doubts about which standard will see the widest deployment. The virtues of keeping things simple have been noted (very eloquently) by Adam Bosworth.
There is hope for library technologists though. OCLC is doing some really good work like their Open WorldCat program which allows you to link directly to local holdings for a book with a URL like:
Yeah, that’s an ISBN and a ZIP code. Oh, and I installed Chris Fairbanks’ nice OpenSearch/WordPress plugin in like 5 minutes. Here’s an example:
Drop it in an RSS reader and you can see whenever I write about code4lib. Not that you would really want to do that. Hmm but maybe it would be useful with say an online catalog or bibliographic database!