Requesting Record metadata via SRU
June 8, 2007
Modifications
- June 29:
- note added.
- The term "administrative" metadata removed.
An SRU client may retrieve record metadata in lieu of or in addition
to record data. Record metadata includes information about
the creation and maintenance of the record, its size, history, etc.
There is an XML schema, the Record Metadata Schema. or "rmd",
whose identifier is info:srw/schema/1/rmd-1.0 and whose
recommended short name is 'rmd' .
Note: the Record Metadata Schema is in development and will be
available soon.
The XML namespace for this schema is
info:lc/xmlns/rmd-v1
Requesting Record metadata in lieu of Record Data
A user might retrieve result set records, i.e. record data according
to one of the conventional schemas, dublin core or MODS for example,
and subsequently wish to retrieve record metadata for one or more of
those record. This can be done by issuing a subsequent request, specifying
the record metadata schema as the value of the recordSchema parameter,
for example, 'rmd'.
Note: in order for the client to issue a request to retrieve
a specific record, it must know either the record identifier or the
result set position. If the client has already retrieved the record,
and if the record has an identifier, then the client knows the identifier
if SRU 1.2 is used, because the identifier is part of the record
response structure.
However, if the record does not have an identifier, and if the server
does not support result sets, then neither mechanism (record identification
via identifier or result set position) is available. In that
case, the only way to retrieve the record metadata is by explicitly
requesting that it accompany the record data. The client must request
it via extraRequestData, and the server supplies it via extraRecordData.
This mechanism is described below.
Other schemas besides rmd may be used to retrieve record metadata. In
some cases, a particular schema might be used to retrieve record data
and alternatively to retrieve record metadata. (This is not the case
with rmd, as it may be used only to retrieve record metadata.)
For example, suppose a user retrieves a dublin core record, and subsequently
wants to retrieve rights information about that dublin core record. (This
is distinguished from rights information about the work described by
the dublin core record; that information might be in the dublin core
record itself.) Suppose the user wants that information to br provided
in a dublin core record.
Then in the first retrieval (where the record data is retrieved) the
value of the recordSchema parameter would be 'dc' (info:srw/schema/1/dc-v1.1). In
the subsequent retrieval the value would be 'dcrmd' (info:srw/schema/1/dcrmd-v1.1). These
two identifiers identify the same schema (dublin core) but for different
usages.
Requesting Record metadata along with Record Data
A client may retrieve result set records, i.e. record data, and in addition,
record metadata for those result set records, in the same response. In
this case the record metadata is carried within the extraRecordData parameter
and it must be explicitly requested by the client in the request, by
including an extraRequestData parameter.
An SRU extension is defined for this purpose. It allows the client to
specify the schema in which to supply the record metadata. The schema
may be 'rmd' or it may be another schema.
Record Metadata Extension: recordMetadata
The client indicates that it wants the server to include record metadata
using a particular schema, by including the parameter/value pair:
&x-info-1-recordMetadata=<schema short name>
Examples
The client indicates that it wants the server to include record metadata
using the rmd schema, by including the parameter/value pair:
&x-info-1-recordMetadata=rmd
.... or using the dublin core schema:
&x-info-1-recordMetadata=dcrmd
Example Request/response
Given the request:
http://srw.example.org/sru?operation=searchRetrieve&version=1.1
&query=dc.title=cat&recordSchema=dc
&x-info-1-recordMetadata=rmd
Then the server may consider this a request to include record level
metadata along with one or more records in the response, using the rmd
schema.
extraRecordData example (highlighted in orange):
<record>
< recordSchema>info:srw/schema/1/dc-v1.1</recordSchema> <recordPacking>xml</recordPacking> <recordData> < srw_dc:dc> <dc:title>This is a Sample Record</dc:title> </srw_dc:dc> < /recordData> <recordPosition>1</recordPosition> <extraRecordData> <recordMetadata:size
xmlns:recordMetadata="xmlns:rmd="info:lc/xmlns/rmd-v1">
20000
</recordMetadata:size> < /extraRecordData> < /record>
|