pycsw
pycsw copied to clipboard
OAIPMH "set" keyword in ListRecords is ignored
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.
-
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>
-
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/>
.
.
-
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.