The goal of the rich results feature is to improve the speed, relevance, and usability of search when used to find a specific piece of information by providing users with a way to go directly to that information when it seems likely, based on the terms they enter into the Firefox search box, that they are looking for something that we can direct them to.
When a user searches for "YHOO", which is a stock symbol for Yahoo Inc., they probably want a stock report for that company.
When a user searches for "Casino Royale", which is the title of a film currently playing in the theaters, they probably want show times at nearby theaters, a synopsis, reviews, and/or to purchase tickets online.
When a user searches for the word "weather" and a zip code or city, they probably want a weather report for that locality.
And when a user searches for an address, they probably want a map of it.
The implementation consists of a Firefox API that lets extensions, core code, and web sites register as rich result providers. When a user types search terms into the search box, Firefox queries registered providers for available rich results.
Firefox then provides an item in the Search History/Suggestions dropdown menu for each available result. If the user selects a rich result from the menu, we display the result in some appropriate part of the interface. In the current proposal for improvements to search, this is a popup submenu of the History/Suggestions menu, but we could put it elsewhere (f.e. in the content pane) if another location turned out to make the most sense.
Providers may use a variety of mechanisms to determine whether they can provide a rich result, including evaluating a regular expression against the search terms, looking up the terms in a hash table, or querying a server. And they might provide the result itself in a variety of ways, generating it on the fly using data downloaded from a web site or just constructing a URL at which the result can be found.
The rich result itself can be any type of content that Firefox knows how to render, including plain text, an HTML page, XML transformed by XSLT, and images.
We would ship with a set of high-quality providers for a variety of common searches, and users could add providers by installing extension providers from addons.mozilla.org or web site providers from the web sites they visit.
The difference between these two types of add-on providers is that extension providers, like other extensions, would have full access to the browser chrome (including the ability to query arbitrary domains), while web site providers would have no access to browser chrome and would be limited to querying their own site.
Firefox's Search Suggestions feature implements something like this for mathematical calculations and unit conversions. If you type "1+1" into the search box, the first suggestion will be "= 2", and if you type "1 inch to centimeters" into the box, the first suggestion will be "= 2.54 centimeters".
The primary limitation of this functionality as compared to rich results is that a single menu item provides very limited real estate for displaying results. A secondary limitation is that it only consults the default search provider.
Firefox's Bookmarks feature also allows you to set up a "keyword" bookmark which you can trigger by entering the keyword into the location bar. If the bookmark URL contains "%s", and you type terms after the keyword when invoking the bookmark, "%s" will be replaced by the terms.
So you can invoke requests for specific information with the appropriate keyword. For example, if you have a "weather" keyword bookmark to a weather.com page showing the weather for a specific zip code, and the URL contains "%s" in place of the zip code, then entering "weather 94043" into the location bar will load the weather.com page showing the weather for Mountain View.
The primary limitation of this functionality as compared to rich results is that users have to manually construct keyword bookmarks, including editing complicated URLs and understanding how templates work.
A secondary limitation is that such bookmarks can only be invoked via a single keyword that precedes the search terms, so "94043 weather" wouldn't trigger the example in the previous paragraph (because the keyword succeeds the term), and "forecast 94043" also wouldn't work because the bookmark doesn't recognize "forecast" as a synonym for "weather".
A tertiary limitation is that such bookmarks can only be invoked in the location bar, although users mostly search using the search bar.
Search Engine Results
Google and Yahoo! both provide rich result-like information at the top of their search results pages for certain search terms. Yahoo! calls the functionality Yahoo! shortcuts, while Google calls it Google Web Search Features.
The primary limitation of these server-side implementations as compared to rich results is that users have to load an entire search results page to see the information. A secondary limitation is that there is no mechanism for web sites to extend the set of available results and for users to take advantage of those extensions.
Proposed PRD Items
FR create API for registering as provider, being queried with search terms, and providing results
FR query providers on entry of search terms into the search box and provide results as items in the Search History/Suggestions dropdown menu
NFR ensure extensibility of Search History/Suggestions dropdown menu to accommodate rich result items