[gcs-pcs-list] quick thought experiment re: unAPI

Daniel Chudnov daniel.chudnov at yale.edu
Fri Dec 2 15:16:53 EST 2005


I keep getting stuck on the COinS-PMH requirements of COinS (OpenURL)
and OAI-PMH.  I think these will keep it from succeeding at all.

What I want is a way that *anybody* can implement the following functions
quickly, in javascript/dhtml or any other language:

 - for identified content items on any HTML page,
 - find out what kinds of "records" are available for one or more of 
   them, and
 - get one or more of those record kinds for one or more of the items.

If we simplified unAPI further, it might look like:

 - "identified" items are those with "class='identifier'" elements
   on them; the content of the element with that attribute/value 
   pair is the identifier for that item.

 - we retain the link tag, but specify "unapi" and a base url of
   "http://blah.blah.blah/blah/blah/unapi" *instead* of "COinS-PMH"
   and a pseudo-or-real OAI-PMH service that supports 
   ListMetadataFormats and GetRecord.

 - /unapi URIs must respond to several kinds of GETs:
   - /unapi/formats (formats supported site-wide)
   - /unapi/identifier/formats (formats for a given item)
   - /unapi/identifier/format (a specific record format for that iitem)

Then we specify a number of "bindings", i.e. ways to implement unapi
using different underlying tools/protocols:

 - COinS/OAI-PMH:  as before, with the differences that COinS also
   get a class='identifier' around the actual identifier, and the
   unapi calls map to OAI-PMH calls that filter out the OAI wrapper
   stuff and just return metadata

 - Atom:  the element from hAtom that gets the id attribute also
   gets a class='attribute'.  then the unapi calls just map to the
   same responses you'd get from Atom calls to GET that identifier,
   with the atom wrapper stuff elided.

 - SRW/U: the listformats/getrecord bit is implemented using SRW/U
   with SRW/u wrapper bits elided and formats list from the explain
   response; the get calls are searches by identifier with wrapper
   stuff elided.

 - OpenSearch: similar to SRW/U in that the formats list comes from
   the opensearch description response and the getrecords just
   search on identifier and strip response RSS wrapper bits.


I think this might scale to World Domination (tm).

  -dchud


-- 
Daniel Chudnov
Yale Center for Medical Informatics
(203) 737-5789


More information about the gcs-pcs-list mailing list