A9 OpenSearch

A couple of days ago I talked about the concept of "web-application plug-ins":http://www.zefhemel.com/archives/2005/03/09/web-application-plugins, with which I meant the ability to allow third parties to write plug-ins for your centralized web-application (like Amazon and Gmail). Yesterday I found out about "OpenSearch":http://opensearch.a9.com, which looks like a good first step towards this model. As you may know, "A9":http://www.a9.com is "Amazon's":http://www.amazon.com search engine. One of its nice features is that it searches Google, while simultaneously also allowing you to search other sources. Amazon has now opened up this feature and allows you to plug in your own search-engine's results. This means that if you run, say, an online CD store and would like people to search your CD database through A9, you can plug your search engine in there.

It's not very hard to do this, you don't need an as complicated infrastructure as I talked about. Search, interface-wise, is very simple. Somebody inputs a query and you return the results. That's it. To make your search engine accessible through OpenSearch, all you have to do is being able to support a HTTP GET way of querying (i.e. you should be able to return results based on URLs like http://search.you.com/query.php?q=your+query+here) and return the result in a XML format. This XML format is an extension of RSS, called "OpenSearch RSS":http://opensearch.a9.com/spec/opensearchrss/1.0/. After this you need to create a simple "descriptor file":http://opensearch.a9.com/spec/opensearchdescription/1.0/ and you're ready to go.

I've been playing with some of the engines already available and it works very nicely. Here are Google, Image Search and Top Blogs, all simultaneously:

A9 OpenSearch (Click to enlarge)