2 minute read.got SEARCH if you want it!
[See this link if you’re short on time: facets search client. Only tested on Firefox at this point. Caveat: At time of writing the Crossref Metadata Search was being very slow but was still functional. Previously it was just slow.]
Following on from Geoff’s announcement last month of a prototype Crossref Metadata OpenSearch on labs.crossref.org, I wanted to show what typical OpenSearch responses might look like in a more mature implementation.
I have taken the liberty of modelling these on the response formats that we are already providing in our nature.com OpenSearch service which in turn are based on the draft syndication formats that I blogged here earlier.
I am therefore returning ATOM, JSON, JSONP and RSS responses from these four OpenSearch URL templates:
- http://nurture.nature.com/cgi-bin/opensearch?db=crossref&out=atom&q={searchTerms}
- http://nurture.nature.com/cgi-bin/opensearch?db=crossref&out=json&q={searchTerms}
- http://nurture.nature.com/cgi-bin/opensearch?db=crossref&out=jsonp&q={searchTerms}as this OpenSearch description file details. Note that the URL templates include no indexing or pagination parameters as the Crossref prototype does not currently support these features.
An example query (‘apple’) returning an ATOM feed from a Crossref Metadata OpenSearch would be the following:
And the same query returning a JSON version of that ATOM feed would look as follows:By the way, this is just for demonstration purposes and there are still issues to be resolved including character encoding.This interface uses the existing Crossref OpenSearch response format and parses the COinS objects embedded in that response to provide a more standard OpenSearch syndication result set format. The prototype implemenatation also has some bugs which I needed to work around. (I will forward on details of these.) And there is also a more fundamental issue of response time from the experimental search server.
But still this should give some idea of what a Crossref Metadata OpenSearch service could look like.
To show this all in action I’ve worked up one of my demo OpenSearch clients for nature.com OpenSearch which displays a facetted search response for a Crossref search. For good measure this includes also an OpenSearch interface for PubMed and the search client allows for simple selection between three journals databases: nature.com, Crossref and PubMed.
Of course, with a reasonably uniform set of search result formats such as presented here it then becomes a simple exercise to reuse these search responses in additional search clients.
As can be anticipated it would be very straightforward to carry this over into a single metasearch service which could run across these multiple databases.
Related pages and blog posts