IE7 and OpenSearch: Behind the scenes

As Aaron mentioned, the IE team collaborated with A9/Amazon on OpenSearch 1.1. This blog post is a story about how the collaboration took place.

IE7 Beta1 shipped with a set of 5 search providers and there wasn’t a way (short of hacking the registry) to add more search providers. When we started looking into how a site should describe itself, our first thought was the ‘src’ format. After all, it was pretty simple and it could describe how to construct the query to get the search result page back.  

There were 2 things that made us pause, however. First, ‘src’ isn’t XML. This meant that we would need to write a custom parser.  A new format would bring its share of security threats. ‘src’ didn’t seem so simple anymore.  Second and more important, OpenSearch 1.0 had brought forward the idea of programming, re-mixing and subscribing to search results. For those new to OpenSearch, check out https://opensearch.a9.com.  It was introduced by A9/Amazon at ETech in March this year and in the last 6 months, the format has been adopted by a good number of sites. With search being such an important aspect of our user’s daily lives, a browser ought to do something special with search results. In OpenSearch, we saw the foundation for making this happen in future releases of IE.

OpenSearch 1.0 describes how to get search results as RSS. IE7 has great RSS support and renders search result RSS in a very readable way. So, IE7 could be backwards compatible with OpenSearch 1.0. But, we needed a format that could *also* describe a site with only an HTML interface.

So, in early August, we asked Jeff Barr if Amazon would be interested in working with us on extending OpenSearch this way. He immediately put us in touch with Dewitt Clinton at A9. Dewitt told us he was working on 1.1 of the spec and was interested in this scenario. We then sketched out a proposal over email.

Only one thing stood in the way. Aaron and I looked through the OpenSearch spec and couldn’t find how it was licensed. We wanted to make sure it was as easy as possible to deploy this technology. The feedback from releasing the simple list extensions under Creative Commons Attribution-ShareAlike license was very positive. Our preference was that OpenSearch would have a similar license. We mailed Dewitt and within minutes, got a response from his BlackBerry that A9 was indeed planning on releasing OpenSearch 1.1 under https://creativecommons.org/licenses/by-sa/2.5, the very same license as simple list extensions.

Things moved very quickly after that. DeWitt flew to Redmond for a day. We locked him in a room with Carlos Yeung, the developer working on search, for a couple of hours. They came up with a draft spec. We went out for Indian food and outlined the next steps over lunch. We wanted to announce the API at PDC. We had less than a month. But, we also had a good technical design and we decided to make a run for it.

Well, it’s PDC and the OpenSearch 1.1 spec draft is live and open for feedback. It describes HTML output (via <Url type="text/html"/>), supports the POST verb and is a functional super-set of the ‘src’ format.

It’s been a lot of fun working with A9. But, this is just the beginning. The OpenSearch spec occupies a special place because it intersects 3 important communities – browser, search and RSS. We want to hear from all of you. My dream is that OpenSearch is adopted by all the browsers and millions of sites (Internet and Intranets) and that a significant percentage of these sites also expose RSS.

If you’re at PDC, come say hello.

 - Amar

PS. Just in case it wasn’t clear, when I say RSS, I mean the general concept of a feed with items that can be subscribed to. I don’t mean any particular version of the wire-format, RSS 0.9x, 1.0, 2.0 or Atom.