Update May 2010: The URLs shown below will work better if you add a 'viaf/', e.g. http://viaf.org/viaf/search... instead of http://viaf.org/search.
Ralph LeVan recently added OpenSearch capability to the Virtual International Authority File (VIAF). Since the VIAF site is built on top of SRU, the easiest way to that was to use proposed SRU extensions. Here is Ralph's description of it:
Currently, an SRU request generates a searchRetrieveResponse. The SRU committee has proposed the addition of a new parameter to an SRU request that can indicate to the server that the client would like some other form of response. For OpenSearch, that means an RSS response. We have implemented the new parameter and have succeeded in providing OpenSearch access to VIAF.
Here is an example of an SRU query for the name “Dempsey” in VIAF: http://viaf.org/search? query=cql.any+all+ "dempsey"+ &maximumRecords=100 &stylesheet=xsl/results.xsl &sortKeys=holdingscount. This returns an SRU searchRetrieveResponse, though that may not be obvious to you because an XSLT stylesheet was used to render that response into HTML. To turn that search (or any SRU search of VIAF) into an OpenSearch query simply add &http:accept=application/rss%2bxml to the end of the URL.
Support for RSS is built into most browsers and clicking on that link should get you a screen with the results of the search and options to subscribe to that search. There’s no point in using the subscription option yet, but sometime in the near future you’ll be able to use that search and see only the records that have changed in the results.
OpenSearch is a popular protocol for search aggregators, such as A9. In addition, we are now providing a hint to browsers when they display VIAF records that the database is available via OpenSearch, so you may see VIAF offered as a potential search engine in your browser’s search box. OpenSearch requires an OpenSearch Description Document. We have one at http://viaf.org/allFieldsSearch.xml. All you have to do is point an OpenSearch client and that URL and it will know everything it needs to search VIAF.
One of the weaknesses of OpenSearch is that it doesn’t support a query grammar. In our OpenSearch implementation we had to pick an SRU/CQL query that we could drop OpenSearch search terms into. We chose the generic “All Fields” search that we expose on the VIAF home page. Other pre-defined queries could be supported with other Description Documents, but we don’t have enough experience with exposing multiple Description Documents to know how the clients will expose the various search options made available.
Our SRU server, which has built in support for Lucene and DSpace databases (SOLR coming soon) is available as open source at Google Code (http://code.google.com/p/oclcsrw/). The new feature to support the http:accept parameter will be committed to Google Code soon.
If you have any questions about this, contact Ralph LeVan ([email protected])
Ralph