Background

The Netherlands Biodiversity API

The Netherlands Biodiversity API (NBA) facilitates access to the Natural History Collection at Naturalis Biodiversity Center. Next to museum specimen records and metadata, access to taxonomic classification and nomenclature, to geographical information, and to multimedia files is provided. By using the powerful Elasticsearch engine, the NBA facilitates searching for collection- and biodiversity data in near real-time. Furthermore, by incorporating information from taxonomic databases, taxonomic name resolution can be accomplished with the NBA. Persistent Uniform Resource Identifiers (PURLs) ensure that each specimen accessible via the NBA is represented by a citeable unambiguous web reference. Access to our data is provided via a RESTful interface and several clients such as the BioPortal, a web application for browsing biodiversity data that is served by the NBA. For more information about the NBA, please see our detailed documentation.

R access

The R programming language is established as a common tool in scientific research, with growing adoption by researchers in biodiversity research. Hence, to ease the access to the NBA for researchers, we developed this R client.

Getting started

Main data types and classes

The data served by the NBA consists of four main data types:

  • Specimen
  • Taxon
  • Multimedia
  • Geo

Additionally, the data type Metadata stores miscellaneous information about NBA settings. Each of the data types is modelled as an R6 class and therefore has its own members such as fields and methods. Documentation about a specific class can be retrieved in the standard manner, e.g. ?Specimen Each class of the data model can be instantiated and has a toJSONString and toList method returning the object’s JSON representation and the object’s data as a list datatype, respectively.

API Client classes

The interaction with the API is accomplished by the API client classes:

  • SpecimenClient
  • TaxonClient
  • MultimediaClient
  • GeoClient
  • MetadataClient

The client class is by default initialized to connect to the base URL http://api.biodiversitydata.nl/v2. For testing purposes, this can be set to a different URL, see ?SpecimenClient for details.

Queries

Concept

With the SpecimentClient created above, the query endpoint for specimens can now be reached via the query function.

The query function then returns an object of class Response, which, in turn, has a field content of class QueryResult. From the QueryResult, the single result items can be accessed as follows:

## [1] "Specimen" "R6"

Passing query parameters as list

Query parameters can be specified as a list with named parameters. To query for instance for specimen records that have the type status holotype and a female sex, one can pass a named list as the queryParams parameter to the query function:

Note that by default, both conditions are connected by a logical AND. The queryParams passed as a list thus correspond to basic human readable queries. For more advanced queries, containing different logical operators or nested sub-queries, the user can specify the query in a QuerySpec object.

Advanced queries

Using the QuerySpec object

Advanced queries with different operators than AND or nested query conditions can not be accomplished by simply passing the query parameters as a list. Instead, a query is modeled as a QuerySpec object which captures the relationships between multiple query terms. Please also refer to the NBA QuerySpec documentation for more information.

A QuerySpec object usually consists of one or more QueryCondition objects, specifying query terms. A QueryCondition object usually contains the fields field, operator, and value(see also ?QueryCondition). These fields can be specified in the constructor. If, for example, we want to query for records with a unitID equal to L.4304195, a QueryCondition would look as follows:

Note: The function getFieldInfo on a certain field lists which operators are allowed for that field (e.g. sc$get_field_info()$content$unitID$allowedOperators).

Now, a QuerySpec object can be assembled with the QueryCondition(s) passed as a list:

Below, we show an example of how to nest multiple query conditions. The query conditions below define to query for specimens of sex ** female* and family Equidae and of rank Species.

Extending the constraint to also include specimens of rank Subspecies,
we can combine the latter condition with an additional one using the method or:

Services examples

Specimen occurrence services

Specimen records constitute the core of data served by the NBA. Museum specimens can represent a whole variety of different objects such as plants, animals or single parts thereof, DNA samples, fossils, rocks or meteorites. For detailed information of the data model, please refer to the official documentation in the NBA.

All specimen occurrence services are accessible using the methods within the SpecimenClient class. For a list of available endpoints, please refer to the class documentation (?Specimen). Below, we will give details about all services, grouped by category.

Query services

query

Querying for specimens is accomplished with the query method in the class SpecimenClient. For simple queries, query parameters of type list can be passed via the parameter queryParams, for example we can query specimens of the Family Ebenaceae that were collected in Europe:

If we now want to know all the countries that the specimens were collected in, we can access the Specimen objects in res$content$resultSet as follows:

##  [1] "Italy"       "Austria"     "Switzerland" "Netherlands" "Netherlands"
##  [6] "Switzerland" "Italy"       "Netherlands" "France"      "Austria"

Note that passing query parameters as a named list only allows for limited queries; the logical conjunction between parameters is for example always AND. More complex queries can be accomplished using the QuerySpec object:

download_query

The query function is limited to retrieve 50000 specimen at once (this is determined in the parameter index.max_result_window, the value is retrievable using the getSettings method in the metadata section). In order to provide access for a larger amount of data, the query_download takes the same arguments as query, but download the data as a gzip stream under the hood. Unlike query, query_download returns a list of specimen objects instead of a ResultSet. Example:

Data access services

Several access methods offer the convenient retrieval of specimens matching a certain identifier or being part of a certain collection. Below we give examples of how to use the currently implemented data access services for specimen records:

Access to collections

Some of the specimens available via the NBA are categorised thematically into special collections, such as the Siebold-, Dubois- or Jongmans collection. The function get_named_collection lists all available special collections and the identifiers of the specimens within a collection can be queries with get_ids_in_collection

##  [1] "jongmans"      "dubois"        "timor"         "mammoth"      
##  [5] "siebold"       "martin"        "arts"          "meteorites"   
##  [9] "en_tibi"       "extinct-birds"
##  [1] "L.1670559@BRAHMS"  "L  0834597@BRAHMS" "L  0834879@BRAHMS"
##  [4] "L  0834880@BRAHMS" "L  0246491@BRAHMS" "L  0246496@BRAHMS"
##  [7] "L  0325027@BRAHMS" "L  0325034@BRAHMS" "L  0325063@BRAHMS"
## [10] "L  0325099@BRAHMS"

count

For any given query (with QuerySpec or not), returns the count of matches instead of specimen objects:

## [1] 4892987

Note that the count of matches for a given query is also returned by the query function. However, count is more lightweight as it returns an integer instead of a ResultSet containing Specimen objects.

find

Return a single specimen given its identifier (Note: the identifier of a specimen is different from the unitID, see also here):

## <Specimen>
##   Public:
##     acquiredFrom: Agent, R6
##     assemblageID: NULL
##     associatedMultiMediaUris: list
##     clone: function (deep = FALSE) 
##     collectionType: Mammalia
##     collectorsFieldNumber: NULL
##     fromCaptivity: FALSE
##     fromJSONString: function (SpecimenJson, typeMapping = NULL) 
##     fromList: function (SpecimenList, typeMapping = NULL) 
##     gatheringEvent: GatheringEvent, R6
##     id: RMNH.MAM.17209.B@CRS
##     identifications: list
##     initialize: function (sourceSystem, sourceSystemId, recordURI, id, unitID, 
##     kindOfUnit: skin
##     license: CC0
##     licenseType: Copyright
##     multiMediaPublic: TRUE
##     notes: NULL
##     numberOfSpecimen: 1
##     objectPublic: TRUE
##     owner: Naturalis Biodiversity Center
##     phaseOrStage: juvenile
##     preparationType: NULL
##     previousSourceID: NULL
##     previousUnitsText: NULL
##     recordBasis: PreservedSpecimen
##     recordURI: NULL
##     sex: female
##     sourceID: CRS
##     sourceInstitutionID: Naturalis Biodiversity Center
##     sourceSystem: SourceSystem, R6
##     sourceSystemId: RMNH.MAM.17209.B
##     theme: NULL
##     title: RMNH.MAM.17209.b_RMNH_MAM_17209.b
##     toJSONString: function (pretty = TRUE) 
##     toList: function () 
##     unitGUID: http://data.biodiversitydata.nl/naturalis/specimen/RMNH. ...
##     unitID: RMNH.MAM.17209.B

find_by_ids

Same as find, but takes multiple IDs:

find_by_unit_id

Find a specimen by its unitID:

Aggregation services

Aggregation services group available data according to different criteria.

get_distinct_values

This method takes a specific field as an argument and returns all possible values and the frequency for that field in thy data. Below we get all possible values for the country in which a specimen was collected.

Note: By default, get_distinct_values lists only the first 10 hits. The above query thus does not reflect the distinct values in the hole dataset. This number can be increased with e.g. setting the size parameter in a QuerySpec object passed to the method.

count_distinct_values

Instead of returning all different values for a given field, this method does a mere count:

get_distinct_values_per_group

Suppose you want to add another filter to the above query of retrieving all distinct values for a given field, such as splitting the results by their respective source system:

count_distinct_values_per_group

If no return of the actual values is needed, a simple count per group is done as follows:

Metadata services

Specimen Metadata services include the same standard metadata services as for the other data types:

##   [1] "sourceSystem.code"                                                       
##   [2] "sourceSystem.name"                                                       
##   [3] "sourceSystemId"                                                          
##   [4] "recordURI"                                                               
##   [5] "unitID"                                                                  
##   [6] "unitGUID"                                                                
##   [7] "collectorsFieldNumber"                                                   
##   [8] "assemblageID"                                                            
##   [9] "sourceInstitutionID"                                                     
##  [10] "sourceID"                                                                
##  [11] "previousSourceID"                                                        
##  [12] "owner"                                                                   
##  [13] "licenseType"                                                             
##  [14] "license"                                                                 
##  [15] "recordBasis"                                                             
##  [16] "kindOfUnit"                                                              
##  [17] "collectionType"                                                          
##  [18] "sex"                                                                     
##  [19] "phaseOrStage"                                                            
##  [20] "title"                                                                   
##  [21] "notes"                                                                   
##  [22] "preparationType"                                                         
##  [23] "previousUnitsText"                                                       
##  [24] "numberOfSpecimen"                                                        
##  [25] "fromCaptivity"                                                           
##  [26] "objectPublic"                                                            
##  [27] "multiMediaPublic"                                                        
##  [28] "acquiredFrom.agentText"                                                  
##  [29] "gatheringEvent.projectTitle"                                             
##  [30] "gatheringEvent.worldRegion"                                              
##  [31] "gatheringEvent.continent"                                                
##  [32] "gatheringEvent.country"                                                  
##  [33] "gatheringEvent.iso3166Code"                                              
##  [34] "gatheringEvent.provinceState"                                            
##  [35] "gatheringEvent.island"                                                   
##  [36] "gatheringEvent.locality"                                                 
##  [37] "gatheringEvent.city"                                                     
##  [38] "gatheringEvent.sublocality"                                              
##  [39] "gatheringEvent.localityText"                                             
##  [40] "gatheringEvent.dateTimeBegin"                                            
##  [41] "gatheringEvent.dateTimeEnd"                                              
##  [42] "gatheringEvent.method"                                                   
##  [43] "gatheringEvent.altitude"                                                 
##  [44] "gatheringEvent.altitudeUnifOfMeasurement"                                
##  [45] "gatheringEvent.biotopeText"                                              
##  [46] "gatheringEvent.depth"                                                    
##  [47] "gatheringEvent.depthUnitOfMeasurement"                                   
##  [48] "gatheringEvent.gatheringPersons.agentText"                               
##  [49] "gatheringEvent.gatheringPersons.fullName"                                
##  [50] "gatheringEvent.gatheringPersons.organization.agentText"                  
##  [51] "gatheringEvent.gatheringPersons.organization.name"                       
##  [52] "gatheringEvent.gatheringOrganizations.agentText"                         
##  [53] "gatheringEvent.gatheringOrganizations.name"                              
##  [54] "gatheringEvent.siteCoordinates.longitudeDecimal"                         
##  [55] "gatheringEvent.siteCoordinates.latitudeDecimal"                          
##  [56] "gatheringEvent.siteCoordinates.gridCellSystem"                           
##  [57] "gatheringEvent.siteCoordinates.gridLatitudeDecimal"                      
##  [58] "gatheringEvent.siteCoordinates.gridLongitudeDecimal"                     
##  [59] "gatheringEvent.siteCoordinates.gridCellCode"                             
##  [60] "gatheringEvent.siteCoordinates.gridQualifier"                            
##  [61] "gatheringEvent.siteCoordinates.geoShape"                                 
##  [62] "gatheringEvent.namedAreas.areaName"                                      
##  [63] "gatheringEvent.namedAreas.areaClass"                                     
##  [64] "gatheringEvent.associatedTaxa.name"                                      
##  [65] "gatheringEvent.associatedTaxa.relationType"                              
##  [66] "gatheringEvent.chronoStratigraphy.youngRegionalSubstage"                 
##  [67] "gatheringEvent.chronoStratigraphy.youngRegionalStage"                    
##  [68] "gatheringEvent.chronoStratigraphy.youngRegionalSeries"                   
##  [69] "gatheringEvent.chronoStratigraphy.youngDatingQualifier"                  
##  [70] "gatheringEvent.chronoStratigraphy.youngInternSystem"                     
##  [71] "gatheringEvent.chronoStratigraphy.youngInternSubstage"                   
##  [72] "gatheringEvent.chronoStratigraphy.youngInternStage"                      
##  [73] "gatheringEvent.chronoStratigraphy.youngInternSeries"                     
##  [74] "gatheringEvent.chronoStratigraphy.youngInternErathem"                    
##  [75] "gatheringEvent.chronoStratigraphy.youngInternEonothem"                   
##  [76] "gatheringEvent.chronoStratigraphy.youngChronoName"                       
##  [77] "gatheringEvent.chronoStratigraphy.youngCertainty"                        
##  [78] "gatheringEvent.chronoStratigraphy.oldDatingQualifier"                    
##  [79] "gatheringEvent.chronoStratigraphy.chronoPreferredFlag"                   
##  [80] "gatheringEvent.chronoStratigraphy.oldRegionalSubstage"                   
##  [81] "gatheringEvent.chronoStratigraphy.oldRegionalStage"                      
##  [82] "gatheringEvent.chronoStratigraphy.oldRegionalSeries"                     
##  [83] "gatheringEvent.chronoStratigraphy.oldInternSystem"                       
##  [84] "gatheringEvent.chronoStratigraphy.oldInternSubstage"                     
##  [85] "gatheringEvent.chronoStratigraphy.oldInternStage"                        
##  [86] "gatheringEvent.chronoStratigraphy.oldInternSeries"                       
##  [87] "gatheringEvent.chronoStratigraphy.oldInternErathem"                      
##  [88] "gatheringEvent.chronoStratigraphy.oldInternEonothem"                     
##  [89] "gatheringEvent.chronoStratigraphy.oldChronoName"                         
##  [90] "gatheringEvent.chronoStratigraphy.chronoIdentifier"                      
##  [91] "gatheringEvent.chronoStratigraphy.oldCertainty"                          
##  [92] "gatheringEvent.bioStratigraphy.youngBioDatingQualifier"                  
##  [93] "gatheringEvent.bioStratigraphy.youngBioName"                             
##  [94] "gatheringEvent.bioStratigraphy.youngFossilZone"                          
##  [95] "gatheringEvent.bioStratigraphy.youngFossilSubZone"                       
##  [96] "gatheringEvent.bioStratigraphy.youngBioCertainty"                        
##  [97] "gatheringEvent.bioStratigraphy.youngStratType"                           
##  [98] "gatheringEvent.bioStratigraphy.bioDatingQualifier"                       
##  [99] "gatheringEvent.bioStratigraphy.bioPreferredFlag"                         
## [100] "gatheringEvent.bioStratigraphy.rangePosition"                            
## [101] "gatheringEvent.bioStratigraphy.oldBioName"                               
## [102] "gatheringEvent.bioStratigraphy.bioIdentifier"                            
## [103] "gatheringEvent.bioStratigraphy.oldFossilzone"                            
## [104] "gatheringEvent.bioStratigraphy.oldFossilSubzone"                         
## [105] "gatheringEvent.bioStratigraphy.oldBioCertainty"                          
## [106] "gatheringEvent.bioStratigraphy.oldBioStratType"                          
## [107] "gatheringEvent.lithoStratigraphy.qualifier"                              
## [108] "gatheringEvent.lithoStratigraphy.preferredFlag"                          
## [109] "gatheringEvent.lithoStratigraphy.member2"                                
## [110] "gatheringEvent.lithoStratigraphy.member"                                 
## [111] "gatheringEvent.lithoStratigraphy.informalName2"                          
## [112] "gatheringEvent.lithoStratigraphy.informalName"                           
## [113] "gatheringEvent.lithoStratigraphy.importedName2"                          
## [114] "gatheringEvent.lithoStratigraphy.importedName1"                          
## [115] "gatheringEvent.lithoStratigraphy.lithoIdentifier"                        
## [116] "gatheringEvent.lithoStratigraphy.formation2"                             
## [117] "gatheringEvent.lithoStratigraphy.formationGroup2"                        
## [118] "gatheringEvent.lithoStratigraphy.formationGroup"                         
## [119] "gatheringEvent.lithoStratigraphy.formation"                              
## [120] "gatheringEvent.lithoStratigraphy.certainty2"                             
## [121] "gatheringEvent.lithoStratigraphy.certainty"                              
## [122] "gatheringEvent.lithoStratigraphy.bed2"                                   
## [123] "gatheringEvent.lithoStratigraphy.bed"                                    
## [124] "identifications.taxonRank"                                               
## [125] "identifications.scientificName.fullScientificName"                       
## [126] "identifications.scientificName.taxonomicStatus"                          
## [127] "identifications.scientificName.genusOrMonomial"                          
## [128] "identifications.scientificName.subgenus"                                 
## [129] "identifications.scientificName.specificEpithet"                          
## [130] "identifications.scientificName.infraspecificEpithet"                     
## [131] "identifications.scientificName.infraspecificMarker"                      
## [132] "identifications.scientificName.nameAddendum"                             
## [133] "identifications.scientificName.authorshipVerbatim"                       
## [134] "identifications.scientificName.author"                                   
## [135] "identifications.scientificName.year"                                     
## [136] "identifications.scientificName.scientificNameGroup"                      
## [137] "identifications.scientificName.references.titleCitation"                 
## [138] "identifications.scientificName.references.citationDetail"                
## [139] "identifications.scientificName.references.uri"                           
## [140] "identifications.scientificName.references.author.agentText"              
## [141] "identifications.scientificName.references.author.fullName"               
## [142] "identifications.scientificName.references.author.organization.agentText" 
## [143] "identifications.scientificName.references.author.organization.name"      
## [144] "identifications.scientificName.references.publicationDate"               
## [145] "identifications.scientificName.experts.agentText"                        
## [146] "identifications.scientificName.experts.fullName"                         
## [147] "identifications.scientificName.experts.organization.agentText"           
## [148] "identifications.scientificName.experts.organization.name"                
## [149] "identifications.typeStatus"                                              
## [150] "identifications.dateIdentified"                                          
## [151] "identifications.defaultClassification.kingdom"                           
## [152] "identifications.defaultClassification.phylum"                            
## [153] "identifications.defaultClassification.className"                         
## [154] "identifications.defaultClassification.order"                             
## [155] "identifications.defaultClassification.superFamily"                       
## [156] "identifications.defaultClassification.family"                            
## [157] "identifications.defaultClassification.genus"                             
## [158] "identifications.defaultClassification.subgenus"                          
## [159] "identifications.defaultClassification.specificEpithet"                   
## [160] "identifications.defaultClassification.infraspecificEpithet"              
## [161] "identifications.defaultClassification.infraspecificRank"                 
## [162] "identifications.systemClassification.rank"                               
## [163] "identifications.systemClassification.name"                               
## [164] "identifications.vernacularNames.name"                                    
## [165] "identifications.vernacularNames.language"                                
## [166] "identifications.vernacularNames.preferred"                               
## [167] "identifications.vernacularNames.references.titleCitation"                
## [168] "identifications.vernacularNames.references.citationDetail"               
## [169] "identifications.vernacularNames.references.uri"                          
## [170] "identifications.vernacularNames.references.author.agentText"             
## [171] "identifications.vernacularNames.references.author.fullName"              
## [172] "identifications.vernacularNames.references.author.organization.agentText"
## [173] "identifications.vernacularNames.references.author.organization.name"     
## [174] "identifications.vernacularNames.references.publicationDate"              
## [175] "identifications.vernacularNames.experts.agentText"                       
## [176] "identifications.vernacularNames.experts.fullName"                        
## [177] "identifications.vernacularNames.experts.organization.agentText"          
## [178] "identifications.vernacularNames.experts.organization.name"               
## [179] "identifications.identificationQualifiers"                                
## [180] "identifications.identifiers.agentText"                                   
## [181] "identifications.taxonomicEnrichments.vernacularNames.name"               
## [182] "identifications.taxonomicEnrichments.vernacularNames.language"           
## [183] "identifications.taxonomicEnrichments.synonyms.fullScientificName"        
## [184] "identifications.taxonomicEnrichments.synonyms.taxonomicStatus"           
## [185] "identifications.taxonomicEnrichments.synonyms.genusOrMonomial"           
## [186] "identifications.taxonomicEnrichments.synonyms.subgenus"                  
## [187] "identifications.taxonomicEnrichments.synonyms.specificEpithet"           
## [188] "identifications.taxonomicEnrichments.synonyms.infraspecificEpithet"      
## [189] "identifications.taxonomicEnrichments.synonyms.authorshipVerbatim"        
## [190] "identifications.taxonomicEnrichments.sourceSystem.code"                  
## [191] "identifications.taxonomicEnrichments.taxonId"                            
## [192] "identifications.preferred"                                               
## [193] "identifications.verificationStatus"                                      
## [194] "identifications.rockType"                                                
## [195] "identifications.associatedFossilAssemblage"                              
## [196] "identifications.rockMineralUsage"                                        
## [197] "identifications.associatedMineralName"                                   
## [198] "identifications.remarks"                                                 
## [199] "associatedMultiMediaUris.accessUri"                                      
## [200] "associatedMultiMediaUris.format"                                         
## [201] "associatedMultiMediaUris.variant"                                        
## [202] "theme"
## $indexed
## [1] TRUE
## 
## $type
## [1] "keyword"
## 
## $allowedOperators
##  [1] "EQUALS"             "NOT_EQUALS"         "EQUALS_IC"         
##  [4] "NOT_EQUALS_IC"      "IN"                 "NOT_IN"            
##  [7] "MATCHES"            "NOT_MATCHES"        "STARTS_WITH"       
## [10] "NOT_STARTS_WITH"    "STARTS_WITH_IC"     "NOT_STARTS_WITH_IC"
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: list
##     initialize: function (content, response) 
##     response: response
## [[1]]
## [1] 50000
## [1] TRUE

Available paths and fields

All fields can be retrieved with get_paths and specific information on the fields, such as allowed operators etc. with get_field_info

Settings

Multimedia-specific settings can be retrieved with get_settings and a specific setting with get_setting:

## $index.max_result_window
## [1] 50000
## 
## $specimen.group_by_scientific_name.max_num_buckets
## [1] 10000
## [[1]]
## [1] 50000

Operators

To test if a certain operator can be used for a multimedia query:

## [1] TRUE

DwCA download services

In addition to query services that return JSON formatted data, the NBA also offers the export of Darwin Core Archive (DwCA) files. These files are by default zip archives, please refer to our official API documentation for more information.

Static download

Static download services offer the download of predefined datasets. The sets that are available for download can be queried with dwca_get_data_set_names:

##  [1] "amphibia-and-reptilia"      "aves"                      
##  [3] "botany"                     "brachiopoda"               
##  [5] "cainozoic-mollusca"         "chelicerata-and-myriapoda" 
##  [7] "cnidaria"                   "coleoptera"                
##  [9] "collembola"                 "crustacea"                 
## [11] "diptera"                    "echinodermata"             
## [13] "foraminifera"               "hemiptera"                 
## [15] "hymenoptera"                "lepidoptera"               
## [17] "mammalia"                   "micropaleontology"         
## [19] "mollusca"                   "odonata"                   
## [21] "orthopteroidea"             "paleobotany"               
## [23] "paleontology-invertebrates" "pisces"                    
## [25] "porifera"                   "tunicata"

A dataset can then be downloaded using dwca_get_data_set. A filename can be given as argument, if none is given, the DwCA archive is written to download-YYYY-MM-DDThh:mm.zip in the current working directory.

## 
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 19 kB     
Downloading: 19 kB     
Downloading: 36 kB     
Downloading: 36 kB     
Downloading: 49 kB     
Downloading: 49 kB     
Downloading: 49 kB     
Downloading: 49 kB     
Downloading: 61 kB     
Downloading: 61 kB     
Downloading: 77 kB     
Downloading: 77 kB     
Downloading: 82 kB     
Downloading: 82 kB     
Downloading: 82 kB     
Downloading: 82 kB     
Downloading: 95 kB     
Downloading: 95 kB     
Downloading: 110 kB     
Downloading: 110 kB     
Downloading: 120 kB     
Downloading: 120 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 150 kB     
Downloading: 150 kB     
Downloading: 160 kB     
Downloading: 160 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 210 kB     
Downloading: 210 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 240 kB     
Downloading: 240 kB     
Downloading: 240 kB     
Downloading: 240 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 270 kB     
Downloading: 270 kB     
Downloading: 280 kB     
Downloading: 280 kB     
Downloading: 290 kB     
Downloading: 290 kB     
Downloading: 290 kB     
Downloading: 290 kB     
Downloading: 300 kB     
Downloading: 300 kB     
Downloading: 320 kB     
Downloading: 320 kB     
Downloading: 320 kB     
Downloading: 320 kB     
Downloading: 320 kB     
Downloading: 320 kB     
Downloading: 330 kB     
Downloading: 330 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 370 kB     
Downloading: 370 kB     
Downloading: 370 kB     
Downloading: 370 kB     
Downloading: 370 kB     
Downloading: 370 kB     
Downloading: 380 kB     
Downloading: 380 kB     
Downloading: 400 kB     
Downloading: 400 kB     
Downloading: 400 kB     
Downloading: 400 kB     
Downloading: 400 kB     
Downloading: 400 kB     
Downloading: 420 kB     
Downloading: 420 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 450 kB     
Downloading: 450 kB     
Downloading: 460 kB     
Downloading: 460 kB     
Downloading: 470 kB     
Downloading: 470 kB     
Downloading: 470 kB     
Downloading: 470 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 490 kB     
Downloading: 490 kB     
Downloading: 490 kB     
Downloading: 490 kB     
Downloading: 500 kB     
Downloading: 500 kB     
Downloading: 520 kB     
Downloading: 520 kB     
Downloading: 520 kB     
Downloading: 520 kB     
Downloading: 520 kB     
Downloading: 520 kB     
Downloading: 540 kB     
Downloading: 540 kB     
Downloading: 540 kB     
Downloading: 540 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 570 kB     
Downloading: 570 kB     
Downloading: 580 kB     
Downloading: 580 kB     
Downloading: 590 kB     
Downloading: 590 kB     
Downloading: 590 kB     
Downloading: 590 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 620 kB     
Downloading: 620 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 650 kB     
Downloading: 650 kB     
Downloading: 670 kB     
Downloading: 670 kB     
Downloading: 670 kB     
Downloading: 670 kB     
Downloading: 670 kB     
Downloading: 670 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 720 kB     
Downloading: 720 kB     
Downloading: 720 kB     
Downloading: 720 kB     
Downloading: 720 kB     
Downloading: 720 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 760 kB     
Downloading: 760 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 790 kB     
Downloading: 790 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 820 kB     
Downloading: 820 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 850 kB     
Downloading: 850 kB     
Downloading: 870 kB     
Downloading: 870 kB     
Downloading: 870 kB     
Downloading: 870 kB     
Downloading: 870 kB     
Downloading: 870 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 910 kB     
Downloading: 910 kB     
Downloading: 920 kB     
Downloading: 920 kB     
Downloading: 920 kB     
Downloading: 920 kB     
Downloading: 930 kB     
Downloading: 930 kB     
Downloading: 940 kB     
Downloading: 940 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 970 kB     
Downloading: 970 kB     
Downloading: 990 kB     
Downloading: 990 kB     
Downloading: 990 kB     
Downloading: 990 kB     
Downloading: 990 kB     
Downloading: 990 kB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB
## Query result written to /tmp/RtmprNRyoI/file20fe4b64da0d.zip
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: NULL
##     initialize: function (content, response) 
##     response: response

Dynamic download

The dynamic download function dwca_query allows for download of arbitrary sets, defined by the user’s query. The arguments to this methods are similar to query, plus the filename:

## 
Downloading: 2.7 kB     
Downloading: 2.7 kB     
Downloading: 2.7 kB     
Downloading: 2.7 kB
## Query result written to /tmp/RtmprNRyoI/file20fe248b7f78.zip
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: NULL
##     initialize: function (content, response) 
##     response: response

Taxonomic data services

Query Services

download_query

The query function is limited to retrieve 50000 taxa at once (this is determined in the parameter index.max_result_window, the value is retrievable using the getSettings method in the metadata section). In order to provide access for a larger amount of data, the query_download takes the same arguments as query, but download the data as a gzip stream under the hood. Unlike query, query_download returns a list of taxon objects instead of a ResultSet.

Data access services

count

For a given query, do not return Taxon objects but the mere count. Example

## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: 23
##     initialize: function (content, response) 
##     response: response

find

Returns a taxon object given its identifier:

## <Taxon>
##   Public:
##     acceptedName: ScientificName, R6
##     clone: function (deep = FALSE) 
##     defaultClassification: DefaultClassification, R6
##     descriptions: list
##     experts: list
##     fromJSONString: function (TaxonJson, typeMapping = NULL) 
##     fromList: function (TaxonList, typeMapping = NULL) 
##     id: 27706109@COL
##     initialize: function (sourceSystem, sourceSystemId, recordURI, id, sourceSystemParentId, 
##     occurrenceStatusVerbatim: NULL
##     recordURI: http://www.catalogueoflife.org/annual-checklist/2017/det ...
##     references: list
##     sourceSystem: SourceSystem, R6
##     sourceSystemId: 27706109
##     sourceSystemParentId: NULL
##     synonyms: list
##     systemClassification: list
##     taxonRank: infraspecies
##     taxonRemarks: NULL
##     toJSONString: function (pretty = TRUE) 
##     toList: function () 
##     validName: ScientificName, R6
##     vernacularNames: list

find_by_ids

Given a string with comma-separated identifiers, returns a list of taxon objects:

Aggregation services

get_distinct_values

This method takes a specific field as an argument and returns all possible values and the frequency for that field in thy data. Example: get all data source systems for taxon objects:

## $`Species 2000 - Catalogue Of Life`
## [1] 1865315
## 
## $`Naturalis - Dutch Species Register`
## [1] 47611

Metadata services

Taxon Metadata services include the same standard metadata services as for the other data types:

##  [1] "sourceSystem.code"                                       
##  [2] "sourceSystem.name"                                       
##  [3] "sourceSystemId"                                          
##  [4] "recordURI"                                               
##  [5] "sourceSystemParentId"                                    
##  [6] "taxonRank"                                               
##  [7] "taxonRemarks"                                            
##  [8] "occurrenceStatusVerbatim"                                
##  [9] "acceptedName.fullScientificName"                         
## [10] "acceptedName.taxonomicStatus"                            
## [11] "acceptedName.genusOrMonomial"                            
## [12] "acceptedName.subgenus"                                   
## [13] "acceptedName.specificEpithet"                            
## [14] "acceptedName.infraspecificEpithet"                       
## [15] "acceptedName.infraspecificMarker"                        
## [16] "acceptedName.nameAddendum"                               
## [17] "acceptedName.authorshipVerbatim"                         
## [18] "acceptedName.author"                                     
## [19] "acceptedName.year"                                       
## [20] "acceptedName.scientificNameGroup"                        
## [21] "acceptedName.references.titleCitation"                   
## [22] "acceptedName.references.citationDetail"                  
## [23] "acceptedName.references.uri"                             
## [24] "acceptedName.references.author.agentText"                
## [25] "acceptedName.references.author.fullName"                 
## [26] "acceptedName.references.author.organization.agentText"   
## [27] "acceptedName.references.author.organization.name"        
## [28] "acceptedName.references.publicationDate"                 
## [29] "acceptedName.experts.agentText"                          
## [30] "acceptedName.experts.fullName"                           
## [31] "acceptedName.experts.organization.agentText"             
## [32] "acceptedName.experts.organization.name"                  
## [33] "defaultClassification.kingdom"                           
## [34] "defaultClassification.phylum"                            
## [35] "defaultClassification.className"                         
## [36] "defaultClassification.order"                             
## [37] "defaultClassification.superFamily"                       
## [38] "defaultClassification.family"                            
## [39] "defaultClassification.genus"                             
## [40] "defaultClassification.subgenus"                          
## [41] "defaultClassification.specificEpithet"                   
## [42] "defaultClassification.infraspecificEpithet"              
## [43] "defaultClassification.infraspecificRank"                 
## [44] "systemClassification.rank"                               
## [45] "systemClassification.name"                               
## [46] "synonyms.fullScientificName"                             
## [47] "synonyms.taxonomicStatus"                                
## [48] "synonyms.genusOrMonomial"                                
## [49] "synonyms.subgenus"                                       
## [50] "synonyms.specificEpithet"                                
## [51] "synonyms.infraspecificEpithet"                           
## [52] "synonyms.infraspecificMarker"                            
## [53] "synonyms.nameAddendum"                                   
## [54] "synonyms.authorshipVerbatim"                             
## [55] "synonyms.author"                                         
## [56] "synonyms.year"                                           
## [57] "synonyms.scientificNameGroup"                            
## [58] "synonyms.references.titleCitation"                       
## [59] "synonyms.references.citationDetail"                      
## [60] "synonyms.references.uri"                                 
## [61] "synonyms.references.author.agentText"                    
## [62] "synonyms.references.author.fullName"                     
## [63] "synonyms.references.author.organization.agentText"       
## [64] "synonyms.references.author.organization.name"            
## [65] "synonyms.references.publicationDate"                     
## [66] "synonyms.experts.agentText"                              
## [67] "synonyms.experts.fullName"                               
## [68] "synonyms.experts.organization.agentText"                 
## [69] "synonyms.experts.organization.name"                      
## [70] "vernacularNames.name"                                    
## [71] "vernacularNames.language"                                
## [72] "vernacularNames.preferred"                               
## [73] "vernacularNames.references.titleCitation"                
## [74] "vernacularNames.references.citationDetail"               
## [75] "vernacularNames.references.uri"                          
## [76] "vernacularNames.references.author.agentText"             
## [77] "vernacularNames.references.author.fullName"              
## [78] "vernacularNames.references.author.organization.agentText"
## [79] "vernacularNames.references.author.organization.name"     
## [80] "vernacularNames.references.publicationDate"              
## [81] "vernacularNames.experts.agentText"                       
## [82] "vernacularNames.experts.fullName"                        
## [83] "vernacularNames.experts.organization.agentText"          
## [84] "vernacularNames.experts.organization.name"               
## [85] "descriptions.category"                                   
## [86] "descriptions.description"                                
## [87] "descriptions.language"                                   
## [88] "references.titleCitation"                                
## [89] "references.citationDetail"                               
## [90] "references.uri"                                          
## [91] "references.author.agentText"                             
## [92] "references.author.fullName"                              
## [93] "references.author.organization.agentText"                
## [94] "references.author.organization.name"                     
## [95] "references.publicationDate"                              
## [96] "experts.agentText"                                       
## [97] "experts.fullName"                                        
## [98] "experts.organization.agentText"                          
## [99] "experts.organization.name"
## $indexed
## [1] TRUE
## 
## $type
## [1] "keyword"
## 
## $allowedOperators
##  [1] "EQUALS"             "NOT_EQUALS"         "EQUALS_IC"         
##  [4] "NOT_EQUALS_IC"      "CONTAINS"           "NOT_CONTAINS"      
##  [7] "IN"                 "NOT_IN"             "MATCHES"           
## [10] "NOT_MATCHES"        "STARTS_WITH"        "NOT_STARTS_WITH"   
## [13] "STARTS_WITH_IC"     "NOT_STARTS_WITH_IC"
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: list
##     initialize: function (content, response) 
##     response: response
## [[1]]
## [1] 50000
## [1] TRUE

Available paths and fields

All fields can be retrieved with get_paths and specific information on the fields, such as allowed operators etc. with get_field_info

Settings

Multimedia-specific settings can be retrieved with get_settings and a specific setting with get_setting:

## $index.max_result_window
## [1] 50000
## 
## $taxon.group_by_scientific_name.max_num_buckets
## [1] 10000
## [[1]]
## [1] 50000

Operators

To test if a certain operator can be used for a mutimedia query:

## Warning in self$handleError(response): Status code:500
## Internal Server Error
## Exception: Invalid element "identifications" in path "identifications.defaultClassification.genus"
## Exception type: nl.naturalis.nba.api.NoSuchFieldException
## Full stack trace stored in response object
## [1] "Internal Server Error"

DwCA download services

The taxonomic information in the NBA is also available as Darwin-Core archive files.

Static download

Static download services offer the download of predefined datasets. The sets that are available for download can be queried with dwca_get_data_set_names:

## [1] "nsr"

A dataset can then be downloaded using dwca_get_data_set. A filename can be given as argument, if none is given, the DwCA archive is written to download-YYYY-MM-DDThh:mm.zip in the current working directory.

## 
Downloading: 15 kB     
Downloading: 15 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 31 kB     
Downloading: 31 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 40 kB     
Downloading: 40 kB     
Downloading: 57 kB     
Downloading: 57 kB     
Downloading: 66 kB     
Downloading: 66 kB     
Downloading: 66 kB     
Downloading: 66 kB     
Downloading: 80 kB     
Downloading: 80 kB     
Downloading: 83 kB     
Downloading: 83 kB     
Downloading: 83 kB     
Downloading: 83 kB     
Downloading: 83 kB     
Downloading: 83 kB     
Downloading: 97 kB     
Downloading: 97 kB     
Downloading: 110 kB     
Downloading: 110 kB     
Downloading: 120 kB     
Downloading: 120 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 130 kB     
Downloading: 150 kB     
Downloading: 150 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 170 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 180 kB     
Downloading: 200 kB     
Downloading: 200 kB     
Downloading: 210 kB     
Downloading: 210 kB     
Downloading: 220 kB     
Downloading: 220 kB     
Downloading: 220 kB     
Downloading: 220 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 230 kB     
Downloading: 250 kB     
Downloading: 250 kB     
Downloading: 260 kB     
Downloading: 260 kB     
Downloading: 270 kB     
Downloading: 270 kB     
Downloading: 270 kB     
Downloading: 270 kB     
Downloading: 280 kB     
Downloading: 280 kB     
Downloading: 280 kB     
Downloading: 280 kB     
Downloading: 300 kB     
Downloading: 300 kB     
Downloading: 310 kB     
Downloading: 310 kB     
Downloading: 310 kB     
Downloading: 310 kB     
Downloading: 310 kB     
Downloading: 310 kB     
Downloading: 330 kB     
Downloading: 330 kB     
Downloading: 330 kB     
Downloading: 330 kB     
Downloading: 350 kB     
Downloading: 350 kB     
Downloading: 360 kB     
Downloading: 360 kB     
Downloading: 360 kB     
Downloading: 360 kB     
Downloading: 360 kB     
Downloading: 360 kB     
Downloading: 380 kB     
Downloading: 380 kB     
Downloading: 380 kB     
Downloading: 380 kB     
Downloading: 390 kB     
Downloading: 390 kB     
Downloading: 410 kB     
Downloading: 410 kB     
Downloading: 410 kB     
Downloading: 410 kB     
Downloading: 410 kB     
Downloading: 410 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 430 kB     
Downloading: 450 kB     
Downloading: 450 kB     
Downloading: 460 kB     
Downloading: 460 kB     
Downloading: 460 kB     
Downloading: 460 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 480 kB     
Downloading: 490 kB     
Downloading: 490 kB     
Downloading: 510 kB     
Downloading: 510 kB     
Downloading: 510 kB     
Downloading: 510 kB     
Downloading: 530 kB     
Downloading: 530 kB     
Downloading: 530 kB     
Downloading: 530 kB     
Downloading: 530 kB     
Downloading: 530 kB     
Downloading: 550 kB     
Downloading: 550 kB     
Downloading: 560 kB     
Downloading: 560 kB     
Downloading: 560 kB     
Downloading: 560 kB     
Downloading: 570 kB     
Downloading: 570 kB     
Downloading: 580 kB     
Downloading: 580 kB     
Downloading: 580 kB     
Downloading: 580 kB     
Downloading: 600 kB     
Downloading: 600 kB     
Downloading: 610 kB     
Downloading: 610 kB     
Downloading: 610 kB     
Downloading: 610 kB     
Downloading: 610 kB     
Downloading: 610 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 630 kB     
Downloading: 650 kB     
Downloading: 650 kB     
Downloading: 660 kB     
Downloading: 660 kB     
Downloading: 660 kB     
Downloading: 660 kB     
Downloading: 660 kB     
Downloading: 660 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 680 kB     
Downloading: 700 kB     
Downloading: 700 kB     
Downloading: 710 kB     
Downloading: 710 kB     
Downloading: 710 kB     
Downloading: 710 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 730 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 750 kB     
Downloading: 760 kB     
Downloading: 760 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 780 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 800 kB     
Downloading: 810 kB     
Downloading: 810 kB     
Downloading: 830 kB     
Downloading: 830 kB     
Downloading: 830 kB     
Downloading: 830 kB     
Downloading: 830 kB     
Downloading: 830 kB     
Downloading: 840 kB     
Downloading: 840 kB     
Downloading: 860 kB     
Downloading: 860 kB     
Downloading: 860 kB     
Downloading: 860 kB     
Downloading: 860 kB     
Downloading: 860 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 880 kB     
Downloading: 900 kB     
Downloading: 900 kB     
Downloading: 910 kB     
Downloading: 910 kB     
Downloading: 910 kB     
Downloading: 910 kB     
Downloading: 930 kB     
Downloading: 930 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 950 kB     
Downloading: 960 kB     
Downloading: 960 kB     
Downloading: 960 kB     
Downloading: 960 kB     
Downloading: 960 kB     
Downloading: 960 kB     
Downloading: 980 kB     
Downloading: 980 kB     
Downloading: 1,000 kB     
Downloading: 1,000 kB     
Downloading: 1,000 kB     
Downloading: 1,000 kB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.1 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.2 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.3 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.4 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.5 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.6 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.7 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.8 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 1.9 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.1 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB     
Downloading: 2.2 MB
## Query result written to /tmp/RtmprNRyoI/file20fe75dcd91e.zip
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: NULL
##     initialize: function (content, response) 
##     response: response

Dynamic download

The dynamic download function dwca_query allows for download of arbitrary sets, defined by the user’s query. The arguments to this methods are similar to query, plus the filename:

## 
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 16 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 33 kB     
Downloading: 43 kB     
Downloading: 43 kB     
Downloading: 57 kB     
Downloading: 57 kB     
Downloading: 57 kB     
Downloading: 57 kB     
Downloading: 57 kB     
Downloading: 57 kB
## Query result written to /tmp/RtmprNRyoI/file20fe76e9c448.zip
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: NULL
##     initialize: function (content, response) 
##     response: response

Geographic data services

Query Services

The GeoArea query service allows for detailed search within the fields of a GeoArea object. As for the other data types, query parameters can be either given as a list or as a QuerySpec object. Below, we make a simple query to get the GeoArea object for the Netherlands:

## <GeoArea>
##   Public:
##     areaType: Country
##     clone: function (deep = FALSE) 
##     countryNL: Nederland
##     fromJSONString: function (GeoAreaJson, typeMapping = NULL) 
##     fromList: function (GeoAreaList, typeMapping = NULL) 
##     id: 1004050@GEO
##     initialize: function (sourceSystem, sourceSystemId, recordURI, id, areaType, 
##     isoCode: NLD
##     locality: Netherlands
##     recordURI: NULL
##     shape: list
##     source: World Countries
##     sourceSystem: SourceSystem, R6
##     sourceSystemId: 1004050
##     toJSONString: function (pretty = TRUE) 
##     toList: function ()

Data access services

get_geo_json_for_locality

This is a convenience function to directly extract the a GeoJSON object for a specific locality. GeoJSON is a popular format for storing geographical point- and polygon data. To e.g. extract the GeoJSON polygon representation for the Netherlands:

Results are returned as a list by default, but can be easily converted to a JSON string, e.g.

jsonlite::toJSON(res$content)

count

For any given query (with QuerySpec or not), returns the count of matches instead of GeoArea objects:

## [1] 1654

Aggregation services

get_distinct_values

This function returns all values present for a certain field, and their counts:

## $Nature
## [1] 987
## 
## $Municipality
## [1] 408
## 
## $Country
## [1] 247
## 
## $Province
## [1] 12

Metadata services

Geo Metadata services include the same standard metadata services as for the other data types:

##  [1] "sourceSystem.code" "sourceSystem.name" "sourceSystemId"   
##  [4] "recordURI"         "areaType"          "locality"         
##  [7] "shape"             "source"            "isoCode"          
## [10] "countryNL"
## $indexed
## [1] TRUE
## 
## $type
## [1] "keyword"
## 
## $allowedOperators
##  [1] "EQUALS"             "NOT_EQUALS"         "EQUALS_IC"         
##  [4] "NOT_EQUALS_IC"      "IN"                 "NOT_IN"            
##  [7] "MATCHES"            "NOT_MATCHES"        "STARTS_WITH"       
## [10] "NOT_STARTS_WITH"    "STARTS_WITH_IC"     "NOT_STARTS_WITH_IC"
## <Response>
##   Public:
##     clone: function (deep = FALSE) 
##     content: list
##     initialize: function (content, response) 
##     response: response
## [[1]]
## [1] 50000
## [1] TRUE

Multimedia services

Multimedia services are accessible with a MultimediaClient, instantiated as follows:

Query Services

As for the other data types, the query method enables simple and complex queries using a list or a QuerySpec object to specify query parameters.

## <QueryResult>
##   Public:
##     clone: function (deep = FALSE) 
##     fromJSONString: function (QueryResultJson, typeMapping = NULL) 
##     fromList: function (QueryResultList, typeMapping = NULL) 
##     initialize: function (totalSize, resultSet) 
##     resultSet: list
##     toJSONString: function (pretty = TRUE) 
##     toList: function () 
##     totalSize: 42257
##   [1] "Quercus rubra L."                             
##   [2] "Quercus rubra L."                             
##   [3] "Quercus rubra L."                             
##   [4] "Quercus rubra L."                             
##   [5] "Quercus robur L."                             
##   [6] "Quercus robur L."                             
##   [7] "Quercus robur L."                             
##   [8] "Quercus robur L."                             
##   [9] "Quercus robur L."                             
##  [10] "Quercus robur L."                             
##  [11] "Quercus robur L."                             
##  [12] "Quercus robur L."                             
##  [13] "Quercus robur L."                             
##  [14] "Quercus robur L."                             
##  [15] "Quercus robur L."                             
##  [16] "Quercus robur L."                             
##  [17] "Quercus robur L."                             
##  [18] "Quercus robur L."                             
##  [19] "Quercus robur L."                             
##  [20] "Quercus robur L."                             
##  [21] "Quercus robur L."                             
##  [22] "Quercus petraea (Matt.) Liebl."               
##  [23] "Quercus petraea (Matt.) Liebl."               
##  [24] "Quercus cerris L."                            
##  [25] "Quercus cerris L."                            
##  [26] "Quercus cerris L."                            
##  [27] "Quercus cerris L."                            
##  [28] "Quercus cerris L."                            
##  [29] "Quercus petraea (Matt.) Liebl."               
##  [30] "Quercus petraea (Matt.) Liebl."               
##  [31] "Quercus petraea (Matt.) Liebl."               
##  [32] "Quadrella cynophallophora (L.) Hutch."        
##  [33] "Quadrella cynophallophora (L.) Hutch."        
##  [34] "Quadrella cynophallophora (L.) Hutch."        
##  [35] "Quadrella cynophallophora (L.) Hutch."        
##  [36] "Quadrella cynophallophora (L.) Hutch."        
##  [37] "Quadrella cynophallophora (L.) Hutch."        
##  [38] "Quadrella indica (L.) Iltis & Cornejo"        
##  [39] "Quadrella odoratissima (Jacq.) Hutch."        
##  [40] "Quadrella odoratissima (Jacq.) Hutch."        
##  [41] "Quadrella indica (L.) Iltis & Cornejo"        
##  [42] "Quadrella indica (L.) Iltis & Cornejo"        
##  [43] "Quadrella indica (L.) Iltis & Cornejo"        
##  [44] "Quadrella indica (L.) Iltis & Cornejo"        
##  [45] "Quesnelia edmundoi L.B.Sm."                   
##  [46] "Quirella  humilis (Preston, 1905)"            
##  [47] "Quadrula apiculata (Say, 1829)"               
##  [48] "Quercus gemelliflora Blume"                   
##  [49] "Quercus gemelliflora Blume"                   
##  [50] "Quercus gemelliflora Blume"                   
##  [51] "Quercus gemelliflora Blume"                   
##  [52] "Quercus gemelliflora Blume"                   
##  [53] "Quercus gemelliflora Blume"                   
##  [54] "Quercus gemelliflora Blume"                   
##  [55] "Quercus gemelliflora Blume"                   
##  [56] "Quercus gemelliflora Blume"                   
##  [57] "Quercus gemelliflora Blume"                   
##  [58] "Quercus frainetto Ten."                       
##  [59] "Quercus frainetto Ten."                       
##  [60] "Quercus frainetto Ten."                       
##  [61] "Quercus franchetii Skan"                      
##  [62] "Quercus falcata Michx."                       
##  [63] "Quercus dalechampii Ten."                     
##  [64] "Quercus argentata Korth."                     
##  [65] "Quercus argentata Korth."                     
##  [66] "Quercus argentata Korth."                     
##  [67] "Quercus argentata Korth."                     
##  [68] "Quercus argentata Korth."                     
##  [69] "Quercus argentata Korth."                     
##  [70] "Quercus aliena Blume var. acutiserrata Maxim."
##  [71] "Quercus alba L."                              
##  [72] "Quercus acutissima Carr"                      
##  [73] "Quercus acutissima Carr"                      
##  [74] "Quercus acutissima Carr"                      
##  [75] "Quercus macrocarpa Michx."                    
##  [76] "Quercus magnoliifolia Née"                    
##  [77] "Quercus magnoliifolia Née"                    
##  [78] "Quercus lyrata Walter"                        
##  [79] "Quercus lyrata Walter"                        
##  [80] "Quercus faginea Lam."                         
##  [81] "Quercus lusitanica Lam."                      
##  [82] "Quercus lusitanica Lam."                      
##  [83] "Quercus lusitanica Lam."                      
##  [84] "Quercus lusitanica Lam."                      
##  [85] "Quercus lusitanica Lam."                      
##  [86] "Quercus lusitanica Lam."                      
##  [87] "Quercus lusitanica Lam."                      
##  [88] "Quercus lowii King"                           
##  [89] "Quercus lowii King"                           
##  [90] "Quercus lineata Blume"                        
##  [91] "Quercus lineata Blume"                        
##  [92] "Quercus lineata Blume"                        
##  [93] "Quercus lineata Blume"                        
##  [94] "Quercus lineata Blume"                        
##  [95] "Quercus lanata Sm."                           
##  [96] "Quercus kerrii Craib"                         
##  [97] "Quercus coccinea Münchh."                     
##  [98] "Quercus coccinea Münchh."                     
##  [99] "Quercus coccinea Münchh."                     
## [100] "Quercus coccifera L."

Data access services

count

As for the other data types, a count function returns counts instead of the actual objects:

## [1] 5364224

Aggregation services

get_distinct_values

This function returns all values present for a certain field, and their counts. Example: retrieve all different licenses and their counts"

## $CC0
## [1] 5302349
## 
## $`All rights reserved`
## [1] 33903
## 
## $`CC BY-NC-ND`
## [1] 14286
## 
## $`CC BY`
## [1] 8790
## 
## $`CC BY-NC`
## [1] 3077
## 
## $`CC BY-NC-SA`
## [1] 1255
## 
## $`CC BY-SA`
## [1] 384
## 
## $`CC BY-ND`
## [1] 2
## 
## $`CC BY-SA 3.0`
## [1] 1

Metadata services

Available paths and fields

All fields can be retrieved with get_paths and specific information on the fields, such as allowed operators etc. with get_field_info

Settings

Multimedia-specific settings can be retrieved with get_settings and a specific setting with get_setting:

## $index.max_result_window
## [1] 50000
## [[1]]
## [1] 50000

Operators

To test if a certain operator can be used for a mutimedia query:

## [1] TRUE

Metadata services

Metadata services provide miscellaneous information about the data available via the NBA. Note that there is also type-specific metadata for each data type (e.g. Specimen) which can be retrieved with the specific client of that class. Here we show the available methods for the MetadataClient which gives general, non-type specific metadata. The client is instantiated in the standard way:

Controlled vocabularies

The vocabularies for some fields are controlled by dictionaries with allowed values. For the sex of a museum specimen, for instance, only the terms male, female, mixed and hermaphrodite are allowed to be assigned to the specimen. The fields for which controlled lists are available can be retrieved as follows:

## [1] "PhaseOrStage"       "Sex"                "SpecimenTypeStatus"
## [4] "TaxonomicStatus"

and for each field that has a controlled vocabulary, there is a separate function to retrieve the allowed values:

## [1] "accepted name"               "synonym"                    
## [3] "basionym"                    "homonym"                    
## [5] "ambiguous synonym"           "misapplied name"            
## [7] "misspelled name"             "provisionally accepted name"
##  [1] "allotype"      "epitype"       "hapantotype"   "holotype"     
##  [5] "isoepitype"    "isolectotype"  "isoneotype"    "isosyntype"   
##  [9] "isotype"       "lectotype"     "neotype"       "paratype"     
## [13] "paralectotype" "syntype"       "topotype"      "type"
## [1] "male"          "female"        "mixed"         "hermaphrodite"
## [1] "adult"    "subadult" "egg"      "embryo"   "immature" "juvenile"
## [7] "larva"    "pupa"     "nymph"

Miscellaneous

Dates

To maintain data integrity, dates have to be coded in specific formats in our systems. For instance, yyyy-MM-dd is a valid format. Allowed formats can be retrieved as follows:

## [1] "yyyy-MM-dd'T'HH:mm:ssZ"         "yyyy-MM-dd'T'HH:mm[:ss][.SSS]Z"
## [3] "yyyy-MM-dd'T'HH:mm[:ss]"        "yyyy-MM-dd HH:mm[:ss]"         
## [5] "yyyy-MM-dd"                     "yyyy-MM"                       
## [7] "yyyy"
Services list

The method get_rest_services returns a list of all services in the NBA as objects of type RestService.

## <RestService>
##   Public:
##     clone: function (deep = FALSE) 
##     consumes: application/json;charset=UTF-8
##     endPoint: /taxon/query
##     fromJSONString: function (RestServiceJson, typeMapping = NULL) 
##     fromList: function (RestServiceList, typeMapping = NULL) 
##     initialize: function (endPoint, method, consumes, produces, url) 
##     method: POST
##     produces: application/json;charset=UTF-8
##     toJSONString: function (pretty = TRUE) 
##     toList: function () 
##     url: http://api.biodiversitydata.nl/v2/taxon/query
Settings

Similar to the document-specific metadata services, we can get general settings with the MetaDataClient:

## $operator.contains.min_term_length
## [1] 3
## 
## $operator.contains.max_term_length
## [1] 15
## [[1]]
## [1] 3