Upload
hchen1
View
5.616
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/
OpenSearch
Dr. Harry Chen
CMSC 491S/691S
March 12, 2008
Agenda
What’s OpenSearch technology?Overview OpenSearch specification
Describe an OpenSearch service Advertise and compose a search request Discover a new OpenSearch service
Inside OpenSearch application implementation
OpenSearch at a9.com
OpenSearch in Firefox
OpenSearch
OpenSearch is a set of standards for describing search services and publishing search results on the Web.
XML is used to describe services and search results.
Search results are published in a syndication format (RSS or Atom)
Typical OpenSearch Model
OpenSearch Client
OpenSearch Services
Communication
OpenSearch Client(e.g., a9.com)
OpenSearch Services(e.g., IMDB)
Query string (plain text) Search results (HTML)
HTTP GET requesthttp://foo.com/os?q=stuff
HTTP ResponseRSS/Atom (XML)
You
OpenSearch != Meta-Search Engine
OpenSearch is a technology for building search services for the open Web.
It’s not a search engine or a meta-search engine But, you can use this technology to build meta-
search engines, vertical-market search engines, your-personal-search engines, my-social-network-search engines etc.
Key Features
Autodiscovery
Search ResultDescription
Search URL Template
ServiceDescription
OpenSearch
Service Description
An XML document that describes the properties of a search service. E.g. “What can you tell me this service?” “Who developed this service?” “Does this service output adult-content?” “What’s the license model for this service?” “What’s the URL to call the search service?” And more…
http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_3#OpenSearch_description_elements
An Example
Yahoo! Web Search
* Defined in gnizr Open Source
** In our gnizr installation:http://eb1.cs.umbc.edu:8080/gnizr/settings/opensearch/yahoo-searchdescription.xml
Publishing the Service Description
You announce the availability of the search service by publishing the description document on the Web
Few options Submit the description doc URL to an OpenSearch
directory Embed a <meta/> tag description in various HTML
pages for crawlers to discover Describe this information in your RSS feeds
Found a Service, Now what?
You need to know how to “invoke” the search request.
This information is defined in the <Url/> in the service description doc.
Decoding the URL Template
The URL template tells the client how to compose a URL used for sending search request.
It’s a template because it has special syntax for “value-replacement”. {searchTerms} put your search string here {startIndex} return search result from this idx Etc.
An Yahoo! example
Place your search query here.(e.g., java)
Where you want the index to start for the matching search results(e.g., 1)
Other Terms in the URL Template
{count} : # of results per page {startPage}: the page number of the set of
search result {startIndex}: the index of the first search result
desired {language}: desired language of the search
result And more…
http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_3#OpenSearch_1.1_parameters
Try-it-yourself
If you feed the URL into your browser…
Reading the Search Result
Search Results are usually described in RSS or Atom
Special OpenSearch vocabularies are used to describe additional search information that can’t expressed in the core RSS or Atom vocabularies.
Result in RSS 2.0
Atom vocab. is used to “point to” the service description URL
Result in Atom
How to Announce the Service
Other than manually submit your service description to an OpenSearch directory, you can exploit autodiscovery.
A standard way for crawlers and clients to discover your services from HTML and RSS.
In HTML Pages
http://www.opensearch.org/Specifications/OpenSearch/1.1
In RSS feeds
http://www.opensearch.org/Specifications/OpenSearch/1.1
An Autodiscovery Example
In Firefox, whenever you see a “blueish” icon means an OpenSearch service is discovered.
http://en.wikipedia.org/wiki/Opensearch
How Wikipedia Implements OpenSearch
http://en.wikipeida.org view source
Service Description Doc http://en.wikipedia.org/w/opensearch_desc.php
Try-it-yourself
Enter the URL into the browser
Do you know how to compose a search request for Wikipedia?
What’s this?
a different URL for getting search term suggestions!
OpenSearch dev in Firefox
http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox
Summary
OpenSearch is a specification for describing and publishing search services on the open Web.
OpenSearch is not a search engine.Many Web sites support this standard, and
browsers can recognize and make use these services.
http://opensearch.org