wiki/content/opensearch/index.md

186 lines
6.6 KiB
Markdown

---
title: OpenSearch
header-includes:
- |
```{=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][quote]
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][github] linked on the Wikipedia page
with a backup of the OpenSearch site
- [Latest archived version at OpenSearch][opensearch-spec]
- [Latest archived version at A9][a9]
- [Latest archived version of OpenSearch][opensearch]
(the spec was moved to GitHub before the site died)
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][xsd-blog] on his blog. The linked schema in the
blog article points to [a file on Windows Live SkyDrive][xsd-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.xsd)
* [OpenSearch Geo Extension 1.0 Draft 2](./geo.xsd)
* [OpenSearch Parameter Extension 1.0 Draft 2](./parameters.xsd)
* [OpenSearch Referrer Extension 1.0 Draft 1](./referrer.xsd)
* [OpenSearch Relevance Extension 1.0 Draft 1](./relevance.xsd)
* [OpenSearch Suggestions Extension 1.1 Draft 1](./suggestions.xsd)
* [OpenSearch Time Extension 1.0 Draft 1](./time.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:
* [DuckDuckGo Lite](./ddglite.xml)
* [DuckDuckGo HTML](./ddghtml.xml)
* [Mamont (Russian)](./mamont.xml) (FTP search engine)
* [Mamont (English)](./mamont-int.xml) (FTP search engine)
* [Veronica-2](./veronica2.xml) (Gopher search engine, proxied over HTTP)
* [wttr.in](./wttr.xml) (weather forecast)
* [Météociel](./meteociel.xml) (weather forecasts from a French association)
* [dict.org](./dict.xml) (dictionary)
* [Internet Archive](./archive.xml)
* [Wayback Machine](./wayback.xml)
* [Big Huge Labs Thesaurus](./words.xml)
* Alpine Linux
* Packages: [browser-supported](./alpine/packages.xml), [with OpenSearch Parameter](./alpine/packages-param.xml)
* Package contents: [browser-supported](./alpine/contents.xml), [with OpenSearch Parameter](./alpine/contents-param.xml)
* Flagged packages: [browser-supported](./alpine/flagged.xml), [with OpenSearch Parameter](./alpine/flagged-param.xml)
## 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` and `SearchForm`
[quote]: http://web.archive.org/web/20050828043300/http://opensearch.a9.com/
[a9]: http://web.archive.org/web/20060821195444/http://a9.com/-/spec/opensearch/1.1/
[opensearch]: http://web.archive.org/web/20191007035316/http://www.opensearch.org:80/Home
[opensearch-spec]: http://web.archive.org/web/20180325164414/http://www.opensearch.org:80/Specifications/OpenSearch/1.1
[github]: https://github.com/dewitt/opensearch/
[xsd-blog]: https://weblogs.asp.net/wkriebel/opensearch-xsd
[xsd-skydrive]: http://web.archive.org/web/20080828085900/http://cid-fd2e2af28bb0e3b9.skydrive.live.com/self.aspx/Public/OpenSearch.xsd