OpenSearch
“We want OpenSearch to do for search what RSS has done for content.” —A9
OpenSearch has two meanings, because the preferred way to name anything when it comes to computers is to make it as confusing as possible:
- OpenSearch was a specification for an XML description of search engines which was particularly used to allow auto-discovery of search engines by web browsers before it got unnecessarily replaced by Chrome’s WebExtensions.
- OpenSearch is a search engine software licensed under Apache 2.0.
The OpenSearch specification used to be hosted by an Amazon subsidiary called A9, and you can still see a trace of it in the XML namespace URL: http://a9.com/-/spec/opensearch/1.1/
. It then has been hosted on opensearch.org before the domain name got stolen by the search engine software.
- GitHub repo linked on the Wikipedia page with a backup of the OpenSearch site
- Latest archived version at OpenSearch
- Latest archived version at A9
- Latest archived version of OpenSearch (the spec was moved to GitHub before the site died)
- Internet-Draft for the
application/opensearchdescription+xml
MIME type - Support in Windows 7 Search
I discovered this specification by trying to find out why the official DuckDuckGo Lite and HTML search engines on the SeaMonkey add-ons site were not working properly. If you have gone through other articles on this wiki you probably already know that if there’s an XML somewhere, I ought to find or create an XSD for it.
A developer at Microsoft seemed to have the same mindset as me in 2008 and announced an XSD on his blog. The linked schema in the blog article points to a file on Windows Live SkyDrive, and while the file’s listing has been archived, the file itself has not, so we are back to square one. So I went ahead and just wrote my own XSDs for OpenSearch, including all of its extensions.
XSD
- OpenSearch 1.1 Draft 6
- OpenSearch Geo Extension 1.0 Draft 2
- OpenSearch Parameter Extension 1.0 Draft 2
- OpenSearch Referrer Extension 1.0 Draft 1
- OpenSearch Relevance Extension 1.0 Draft 1
- OpenSearch Suggestions Extension 1.1 Draft 1
- OpenSearch Time Extension 1.0 Draft 1
OpenSearch descriptions
I wrote some OpenSearch descriptions myself and am hosting them on this site. If you are using a browser that supports OpenSearch description autodiscovery, you should be able to just click a button near your browser’s search features to pick between the available search engines. Some browsers might even be able to automatically update the files if I ever need to change them. If your browser doesn’t support autodiscovery, well you can just grab the XML files yourself here:
- DuckDuckGo Lite
- DuckDuckGo HTML
- Mamont (Russian) (FTP search engine)
- Mamont (English) (FTP search engine)
- Veronica-2 (Gopher search engine, proxied over HTTP)
- wttr.in (weather forecast)
- Météociel (weather forecasts from a French association)
- dict.org (dictionary)
- Internet Archive
- Wayback Machine
- Big Huge Labs Thesaurus
- BugMeNot (shared accounts for websites that require registration)
- Alpine Linux
- Packages: browser-supported, with OpenSearch Parameter
- Package contents: browser-supported, with OpenSearch Parameter
- Flagged packages: browser-supported, with OpenSearch Parameter
- Grenoble public library
To-do
Try to retrieve all the search engines that were known to A9 and see if they are still working, or maybe just document their existence http://web.archive.org/web/20090131091222/http://a9.com/-/opensearch/searches.jsp
Look around the search engine directories that were known to OpenSearch.org http://web.archive.org/web/20120301211959/http://www.opensearch.org/Community/OpenSearch_search_engine_directories
Learn more about the poorly documented Mozilla extensions to OpenSearch descriptions such as
Param
andSearchForm
Write descriptions for Library Genesis, with and without OpenSearch Parameter
Look for Windows Federated Search-compatible services