Use cases:
- Meta-search of multiple repos
- Real-time search queries for populating search / browse results
- Real-time query of selected bib ids (e.g. real-time availability info)
- Should include result paging, sorting, a minimum array of query types and limits (should be at least as feature-ful as the OPAC)
- Get a representation of a particular ID and export it (ie query by ID(s))
- May need to bring back expanded record (see the discussion under aggregation)
- Get authority records that match search criteria or ID
Functions:
array[] getAvailablility(string id): Function passes the system bibliographic identifier and returns an object array with information pertaining to items associated with a particular bibliographic record.
object getItemAvailability(string id): Function passes the a system item identifier and returns an object with information pertaining to the particular item's availability.
object getRecord(string id, ENUM format, ENUM encoding): Function passes a bibliographic identifier returning a record object. Other necessary parameters would be an enumerated value defining record format and an enumerated value defining record encoding.
array[] Search(string query, ENUM profile, ENUM format, ENUM encoding): Function passes a query into the system and returns an array of records.
array[] Search(object query, ENUM profile, ENUM format, ENUM encoding): Function allowing for the passing of complex queries as a query object (much like CQL in SRU/W) for providing complex search types.
array[] Scan(string query, ENUM profile): Function returning an array of objects containing a set of titles and identifiers for quick search.
array[] Scan(object query, ENUM profile, ENUM format, ENUM encoding): Function returning an array of objects containing a set of titles and identifiers.
object getAuthorityRecord(string id, ENUM format, ENUM encoding): Function passes an authority identifier returning a record object. Other necessary parameters would be an enumerated value defining record format and an enumerated value defining record encoding.
array[] SearchAuthorityRecords(string query, ENUM profile, ENUM format, ENUM encoding): Function passes a query into the system and returns an array of records.
array[] SearchAuthorityRecords(object query, ENUM profile, ENUM format, ENUM encoding): Function allowing for the passing of complex queries as a query object (much like CQL in SRU/W) for providing complex search types.
array[] ScanAuthorityRecords(string query, ENUM profile): Function returning an array of objects containing a set of titles and identifiers for quick search.
array[] ScanAuthorityRecords(object query, ENUM profile, ENUM format, ENUM encoding): Function returning an array of objects containing a set of titles and identifiers.
GetCourseReserves (takes course or instructor or subject arguments, appropriate when material is only made available for purpose of specific course) - might also need a way to enumerate possible courses, instructors, etc.
- Queries would be in certain language or object represntation, would include parameters such as sort options
[explain function to document what options are supported by a give ILS/metadata provider]
[may need to think about how to specify richness of records returned ]
[this will require ids like item ids being handed back where applicable ]
[how to query availability in the non-object library protocols? ]
[also: add linear browsing: e.g. call number, title, author, subject. Browsing could return titles, or browse key values ]
- Bindings:
Object library
OpenSearch/SRU (supported by Evergreen) – would we need to specify a
particular profile or profiles? (Check Bath and DC profile, for instance)
SRW
Z39.50 (deprecated, but it's what ILS' now support)
Who's going to work on this: Terry, Emily