[OAI-implementers] sets - metadataPrefix relationship

Gary McGath gary at hulmail.harvard.edu
Fri Dec 1 17:04:58 EST 2006

Irina Dijour wrote:

> I have a question concerning sets - metadataPrefix relationship.
> Is it permitted by the protocol to "attach" metadataPrefix to set?
> For example, is the following situation is valid:
> I define two sets  A and B. All the records from my repository belong to
> both sets.
> Set A "contains" records in marcxml. Set B "contains" records in oai_dc.
> ListSets response contains 2 sets: A and B
> ListMetadataFormats reponse contains 2 formats: marxml and oai_dc.
> ListRecords request with set=A, metadataPrefix=marcxml - results in list
> of records
> ListRecords request with set=A, metadataPrefix=oai_dc - results in error
> cannotDissemenateFormat
> ListRecords request with set=B, metadataPrefix=marcxml - results in
> error cannotDissemenateFormat
> ListRecords request with set=B, metadataPrefix=oai_dc - results in list
> of record
> GetRecord request for any record in my repository both with
> metadataPrefix=marcxml and with
> metadataPrefix=oai_dc results in the record in corresponding format.

My understanding is that you can have one set that delivers only oai_dc 
records, and another that delivers only marcxml records; but in the 
cases you give the appropriate error response would be noRecordsMatch 
rather than cannotDisseminateFormat.

Imagine a case where a set contained only one record that could be 
returned as marcxml.  If your date range included that record, then 
you'd return the record; if not, you'd return noRecordsMatch.  The same 
logic applies if there are no records in the set that can be returned as 

Gary McGath
Digital Library Software Engineer
Harvard University Library Office for Information Systems

More information about the OAI-implementers mailing list