pycsw icon indicating copy to clipboard operation
pycsw copied to clipboard

OAIPMH "set" keyword in ListRecords is ignored

Open kevinpdavies opened this issue 10 years ago • 0 comments

I am not sure how "set" in the OAIPMH protocol is supposed to be used in Genode. However, the "set" keyword in the OAIPMH ListRecords request appears to be ignored.

  1. List the sets on the Geonode/pycsw repository:

    http://localhost/catalogue/csw?mode=oaipmh&verb=ListSets

Response shows two sets - datasets and interactiveResources:

<!--  pycsw 1.10.0  -->
<oai:OAI-PMH xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oai="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<oai:responseDate>2015-05-31T19:31:01Z</oai:responseDate>
<oai:request verb="ListSets">http://localhost/catalogue/csw?mode=oaipmh</oai:request>
<oai:ListSets>
<oai:set>
    <oai:setSpec>datasets</oai:setSpec>
    <oai:setName>Datasets</oai:setName>
</oai:set>
<oai:set>
    <oai:setSpec>interactiveResources</oai:setSpec>
    <oai:setName>Interactive Resources</oai:setName>
</oai:set>
</oai:ListSets>
</oai:OAI-PMH>
  1. Make a request to list records for set=datasets:

    http://localhost/catalogue/csw?mode=oaipmh&set=datasets&verb=ListRecords&metadataPrefix=oai_dc

Response shows all records in my Geonode. They are all datasets so this is expected. Note the oai:setSpec in the oai:header is empty, and the dc:type in oai:metadata is "Dataset":

<!--  pycsw 1.10.0  -->
<oai:OAI-PMH xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oai="http://www.openarchives.org/OAI/2.0/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<oai:responseDate>2015-05-31T19:56:36Z</oai:responseDate>
<oai:request metadataprefix="oai_dc" set="datasets" verb="ListRecords">http://130.56.248.94/catalogue/csw?mode=oaipmh</oai:request>
<oai:ListRecords>
    <oai:record>
        <oai:header>
        <oai:identifier>a9bd3760-f94e-11e4-bb89-fa163e40dace</oai:identifier>
        <oai:dateStamp/>
        <oai:setSpec/>
        </oai:header>
    <oai:metadata>
        <oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:ows="http://www.opengis.net/ows">
        <dc:identifier>a9bd3760-f94e-11e4-bb89-fa163e40dace</dc:identifier>
        <dc:title>Talking Fish Map Page 140 (Frawley et al. 2012)</dc:title>
        <dc:type>Dataset</dc:type>
        <dc:subject/>
        .
        .
  1. Now make the same request with "set" having any other value, even something invalid, and the same result set is returned:

    http://localhost/catalogue/csw?mode=oaipmh&set=interactiveResources&verb=ListRecords&metadataPrefix=oai_dc

or try:

http://localhost/catalogue/csw?mode=oaipmh&set=blah&verb=ListRecords&metadataPrefix=oai_dc

And the response is always the same - all the dataset records. So I am confused as to how this is support to work.

kevinpdavies avatar Jun 01 '15 01:06 kevinpdavies