I will get back to the ZeroConfMetaOpenSearch series soon. But before I could go much further, I had to try this first.
Here's what the OpenURL KEV format for journal and journal article reference queries might look like if it were to follow OpenSearch 1.1 Draft 3. More to the point, this is what the block specifying the journal KEV params might look like inside the OpenSearch description response if it were to use the Parameter extension.
<Url xmlns:parameters="http://a9.com/-/spec/opensearch/extensions/parameters/1.0/"
type="text/html"
template="http://example.com/search">
<parameters:Parameter name="q" value="{searchTerms}"/>
<parameters:Parameter name="count" value="{itemsPerPage?}" minimum="0"/>
<parameters:Parameter name="start" value="{startIndex?}" minimum="0"/>
<parameters:Parameter name="aulast" value="{aulast?}" minimum="0" maximum="1"/>
<parameters:Parameter name="aufirst" value="{aufirst?}" minimum="0" maximum="1"/>
<parameters:Parameter name="auinit" value="{auinit?}" minimum="0" maximum="1"/>
<parameters:Parameter name="auinit1" value="{auinit1?}" minimum="0" maximum="1"/>
<parameters:Parameter name="auinitm" value="{auinitm?}" minimum="0" maximum="1"/>
<parameters:Parameter name="ausuffix" value="{ausuffix?}" minimum="0" maximum="1"/>
<parameters:Parameter name="au" value="{au?}" minimum="0" maximum="*"/>
<parameters:Parameter name="aucorp" value="{aucorp?}" minimum="0" maximum="1"/>
<parameters:Parameter name="atitle" value="{atitle?}" minimum="0" maximum="1"/>
<parameters:Parameter name="title" value="{title?}" minimum="0" maximum="1"/>
<parameters:Parameter name="jtitle" value="{jtitle?}" minimum="0" maximum="1"/>
<parameters:Parameter name="stitle" value="{stitle?}" minimum="0" maximum="1"/>
<parameters:Parameter name="date" value="{date?}" minimum="0" maximum="1"/>
<parameters:Parameter name="chron" value="{chron?}" minimum="0" maximum="1"/>
<parameters:Parameter name="ssn" value="{ssn?}" minimum="0" maximum="1"/>
<parameters:Parameter name="quarter" value="{quarter?}" minimum="0" maximum="1"/>
<parameters:Parameter name="volume" value="{volume?}" minimum="0" maximum="1"/>
<parameters:Parameter name="part" value="{part?}" minimum="0" maximum="1"/>
<parameters:Parameter name="issue" value="{issue?}" minimum="0" maximum="1"/>
<parameters:Parameter name="spage" value="{spage?}" minimum="0" maximum="1"/>
<parameters:Parameter name="epage" value="{epage?}" minimum="0" maximum="1"/>
<parameters:Parameter name="pages" value="{pages?}" minimum="0" maximum="1"/>
<parameters:Parameter name="artnum" value="{artnum?}" minimum="0" maximum="1"/>
<parameters:Parameter name="issn" value="{issn?}" minimum="0" maximum="1"/>
<parameters:Parameter name="eissn" value="{eissn?}" minimum="0" maximum="1"/>
<parameters:Parameter name="isbn" value="{isbn?}" minimum="0" maximum="1"/>
<parameters:Parameter name="coden" value="{coden?}" minimum="0" maximum="1"/>
<parameters:Parameter name="sici" value="{sici?}" minimum="0" maximum="1"/>
<parameters:Parameter name="genre" value="{genre?}" minimum="0" maximum="1"/>
</Url>
I *think* that's right. It isn't clear to me whether the q/searchTerms param is required in OpenSearch or not. If it is, then we could use it to paste through an url-encoded text representation of the reference, I suppose. If not, well, it could just be optional, or dropped entirely.
We'd still need to do work on the response record format - perhaps something might be borrowed from the IESR Metadata specs and inserted into RSS2.0 or Atom responses.
What's amazing to me about OpenURL is that it's been implemented so successfully (in the sense that we had nothing before, and now we have something). That said, I repeatedly hear arguments that by defining and using more OpenURL application profiles you gain benefits through the shared OpenURL infrastructure. I don't buy that because I've never seen such benefits. If you swap out OpenURL and swap in OpenSearch and use the same application profiles, like in this example, then I could see the benefits of shared OpenSearch infrastructure.
That's going to be a lot of params
This seems awkward. To think you'd need about 4x as many params to just handle SAP1 requests alone, that starts to seem a little difficult to manage.
Then when you start adding community profiles outside of SAP1 (let's start with DC and MARC21, say), I think you'd get bogged down by the weight of your own description document.
Couldn't you just pass a KEV in the searchTerms?
Huh?
*This* seems awkward? I thought it made the point very well that this is far *less* awkward.
There could be different Url descriptions for the different SAP1 metadata formats.
This seems far simpler to me.
Post new comment