wiki/content/opensearch/index.md

6.6 KiB

title header-includes
OpenSearch
```{=html} <link rel="search" type="application/opensearchdescription+xml" title="DuckDuckGo Lite" href="./ddglite.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="DuckDuckGo HTML" href="./ddghtml.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Mamont" href="./mamont.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Mamont (English)" href="./mamont-int.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Veronica-2" href="./veronica2.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="wttr.in" href="./wttr.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Météociel" href="./meteociel.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="dict.org" href="./dict.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Internet Archive" href="./archive.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Wayback Machine" href="./wayback.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Big Huge Labs Thesaurus" href="./words.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Alpine packages" href="./alpine/packages.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Alpine package contents" href="./alpine/contents.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="Alpine flagged packages" href="./alpine/flagged.xml" /> ```

"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.

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 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:

To-do