Markus, Thanks, that's it! I just wasn't providing for the ability to do that in the R client.
Scott On Fri, Jan 13, 2017 at 3:12 PM Markus D?ring <mdoering at gbif.org> wrote: > Hi Scott, > > if I understand you correctly you should be able to request a download > with a filter like this one that uses a primary AND nested with some ORs: > > "predicate": { > "type": "and", > "predicates": [ > { > "type": "or", > "predicates": [ > { > "type": "equals", > "key": "TAXON_KEY", > "value": "2475470" > }, > { > "type": "equals", > "key": "TAXON_KEY", > "value": "2475471" > }, > { > "type": "equals", > "key": "TAXON_KEY", > "value": "2475472" > } > ] > }, > { > "type": "or", > "predicates": [ > { > "type": "equals", > "key": "BASIS_OF_RECORD", > "value": "PRESERVED_SPECIMEN" > }, > { > "type": "equals", > "key": "FOSSIL_SPECIMEN", > "value": "2475471" > } > ] > }, > { > "type": "equals", > "key": "HAS_COORDINATE", > "value": "true" > }, > { > "type": "equals", > "key": "HAS_GEOSPATIAL_ISSUE", > "value": "false" > }, > { > "type": "greaterThanOrEquals", > "key": "YEAR", > "value": "1949" > }, > { > "type": "lessThanOrEquals", > "key": "YEAR", > "value": "2011" > }, > { > "type": "greaterThanOrEquals", > "key": "MONTH", > "value": "3" > }, > { > "type": "lessThanOrEquals", > "key": "MONTH", > "value": "8" > } > ] > } > > Best, > Markus > > > On 13 Jan 2017, at 21:35, Scott Chamberlain <myrmecocystus at gmail.com> > wrote: > > Hi! > > A rgbif user is asking me about a particular download query, see > https://github.com/ropensci/rgbif/issues/245 > > TLDR: AFAICT this can't work as the API is set up right now. Or am I > wrong? > > That is, he wants to get data for records that match > > - 10 taxa with their taxonKey value > - 3 different basisofrecord values > - country = US > - hasCoordinate = TRUE > - hasGeospatialIssue = FALSE > - year range between 1949 and 2011 > - month range between 3 and 8 > > For the taxonKey values, I think he needs to combine those with * OR* > operator: > > "predicate": { > "type": "or", > "predicates": [ > { > "type": "equals", > "key": "TAXON_KEY", > "value": "2475470" > }, > { > "type": "equals", > "key": "TAXON_KEY", > "value": "2475470" > } > ] > } > > However, he should combine the other parameters (basisofrecord, > hasCoordinate, year, month, etc) using *AND* AFAICT. > > *BUT*, AFAICT the API only allows one *predicate* key so you can't do > what I think is needed here. That is, to say (taxonkey = 1 OR 2 OR 3) + > (country = US AND hasCoordinate = true, etc.) > > I tried sending two *predicate* keys in the API and only the second goes > through. > > Any guidance much appreciated :) > > The best solution I can think of is to do the query he's doing, but do one > for each taxon. Seem like a good solution? > > Best, Scott > > _______________________________________________ > API-users mailing list > API-users at lists.gbif.org > http://lists.gbif.org/mailman/listinfo/api-users > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.gbif.org/pipermail/api-users/attachments/20170114/c9f9d1b5/attachment-0001.html>