module Gbif::Registry

Public Class Methods

dataset_metrics(uuid:, verbose: nil, options: nil) click to toggle source

Get details on a GBIF dataset.

@param uuid [String] One or more dataset UUIDs. See examples. @!macro gbif_options

References: www.gbif.org/developer/registry#datasetMetrics

@example

require 'gbifrb'

registry = Gbif::Registry
registry.dataset_metrics(uuid: '3f8a1297-3259-4700-91fc-acc4170b27ce')
registry.dataset_metrics(uuid: '66dd0960-2d7d-46ee-a491-87b9adcfe7b1')
# registry.dataset_metrics(uuid: ['3f8a1297-3259-4700-91fc-acc4170b27ce', '66dd0960-2d7d-46ee-a491-87b9adcfe7b1'])
# File lib/gbifrb/Registry.rb, line 259
def self.dataset_metrics(uuid:, verbose: nil, options: nil)
    if len2(uuid) == 1
        return self.getdata_dataset_metrics(uuid, verbose, options)
    else
        raise "not ready yet"
        # return [self.getdata_dataset_metrics(x, verbose, options) for x in uuid]
    end
end
dataset_suggest(q: nil, type: nil, keyword: nil, owningOrg: nil, publishingOrg: nil, hostingOrg: nil, publishingCountry: nil, decade: nil, limit: 100, offset: nil, verbose: nil, options: nil) click to toggle source

Search that returns up to 20 matching datasets. Results are ordered by relevance.

@param q [String] Query term(s) for full text search. The value for this parameter can be a simple word or a phrase. Wildcards can be added to the simple word parameters only, e.g. 'q=puma' @param type [String] Type of dataset, options include OCCURRENCE, etc. @param keyword [String] Keyword to search by. Datasets can be tagged by keywords, which you can search on. The search is done on the merged collection of tags, the dataset keywordCollections and temporalCoverages. SEEMS TO NOT BE WORKING ANYMORE AS OF 2016-09-02. @param owningOrg [String] Owning organization. A uuid string. See :func:`~pygbif.registry.organizations` @param publishingOrg [String] Publishing organization. A uuid string. See :func:`~pygbif.registry.organizations` @param hostingOrg [String] Hosting organization. A uuid string. See :func:`~pygbif.registry.organizations` @param publishingCountry [String] Publishing country. @param decade [String] Decade, e.g., 1980. Filters datasets by their temporal coverage broken down to decades. Decades are given as a full year, e.g. 1880, 1960, 2000, etc, and will return datasets wholly contained in the decade as well as those that cover the entire decade or more. Facet by decade to get the break down, e.g. '/search?facet=DECADE&facet_only=true' (see example below) @param limit [int] Number of results to return. Default: '300' @param offset [int] Record to start at. Default: '0' @!macro gbif_options

@return [Hash] a hash

References: www.gbif.org/developer/registry#datasetSearch

@example

require 'gbifrb'

registry = Gbif::Registry
registry.dataset_suggest(q: "Amazon", type: "OCCURRENCE")

# Suggest datasets tagged with keyword "france".
registry.dataset_suggest(keyword: "france")

# Suggest datasets owned by the organization with key
# "07f617d0-c688-11d8-bf62-b8a03c50a862" (UK NBN).
registry.dataset_suggest(owningOrg: "07f617d0-c688-11d8-bf62-b8a03c50a862")

# Fulltext search for all datasets having the word "amsterdam" somewhere in
# its metadata (title, description, etc).
registry.dataset_suggest(q: "amsterdam")

# Limited search
registry.dataset_suggest(type: "OCCURRENCE", limit: 2)
registry.dataset_suggest(type: "OCCURRENCE", limit: 2, offset: 10)

# Return just descriptions
registry.dataset_suggest(type: "OCCURRENCE", limit:  5, description: True)

# Search by decade
registry.dataset_suggest(decade: 1980, limit:  30)
# File lib/gbifrb/Registry.rb, line 359
def self.dataset_suggest(q: nil, type: nil, keyword: nil, owningOrg: nil,
    publishingOrg: nil, hostingOrg: nil, publishingCountry: nil, decade: nil,
    limit: 100, offset: nil, verbose: nil, options: nil)

    arguments = { q: q,  type: type,  keyword: keyword,
         publishingOrg: publishingOrg,  hostingOrg: hostingOrg,
         owningOrg: owningOrg,  decade: decade,
         publishingCountry: publishingCountry,
         limit: limit,  offset: offset}.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }
    Request.new('dataset/suggest', opts, verbose, options).perform
end
datasets(data: 'all', type: nil, uuid: nil, query: nil, id: nil, limit: 100, offset: nil, verbose: nil, options: nil) click to toggle source

Search for datasets and dataset metadata.

@param data [String] The type of data to get. Default: 'all' @param type [String] Type of dataset, options include 'OCCURRENCE', etc. @param uuid [String] UUID of the data node provider. This must be specified if data

is anything other than 'all'.

@param query [String] Query term(s). Only used when 'data = 'all'' @param id [int] A metadata document id. @!macro gbif_params @!macro gbif_options

References www.gbif.org/developer/registry#datasets

@example

require 'gbifrb'

registry = Gbif::Registry
registry.datasets(limit: 5)
registry.datasets(type: "OCCURRENCE")
registry.datasets(uuid: "a6998220-7e3a-485d-9cd6-73076bd85657")
registry.datasets(data: 'contact', uuid: "a6998220-7e3a-485d-9cd6-73076bd85657")
registry.datasets(data: 'metadata', uuid: "a6998220-7e3a-485d-9cd6-73076bd85657")
registry.datasets(data: 'metadata', uuid: "a6998220-7e3a-485d-9cd6-73076bd85657", id: 598)
# registry.datasets(data: ['deleted','duplicate'])
# registry.datasets(data: ['deleted','duplicate'], limit=1)
# File lib/gbifrb/Registry.rb, line 295
def self.datasets(data: 'all', type: nil, uuid: nil, query: nil, id: nil,
    limit: 100, offset: nil, verbose: nil, options: nil)

    arguments = { q: query, type: type, limit: limit, offset: offset}.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }
    data_choices = ['all', 'organization', 'contact', 'endpoint',
        'identifier', 'tag', 'machinetag', 'comment',
        'constituents', 'document', 'metadata', 'deleted',
        'duplicate', 'subDataset', 'withNoEndpoint']
    check_data(data, data_choices)
    if len2(data) == 1
        return self.datasets_fetch(data, uuid, opts, verbose, options)
    else
        raise "not ready yet"
        # return [self.datasets_fetch(x, uuid, args, **kwargs) for x in data]
    end
end
installations(data: 'all', uuid: nil, q: nil, identifier: nil, identifierType: nil, limit: 100, offset: nil, verbose: nil, options: nil) click to toggle source

Installations metadata.

@param data [String] The type of data to get. Default is all data. If not 'all', then one

or more of 'contact', 'endpoint', 'dataset', 'comment', 'deleted', 'nonPublishing'.

@param uuid [String] UUID of the data node provider. This must be specified if data

is anything other than 'all'.

@param q [String] Query nodes. Only used when 'data='all''. Ignored otherwise. @param identifier [fixnum] The value for this parameter can be a simple string or integer,

e.g. identifier=120

@param identifierType [String] Used in combination with the identifier parameter to filter

identifiers by identifier type: 'DOI', 'FTP', 'GBIF_NODE', 'GBIF_PARTICIPANT',
'GBIF_PORTAL', 'HANDLER', 'LSID', 'UNKNOWN', 'URI', 'URL', 'UUID'

@!macro gbif_params @!macro gbif_options

@return [Hash] a hash

References: www.gbif.org/developer/registry#installations

@example

require 'gbifrb'

registry = Gbif::Registry
registry.installations(limit: 5)
registry.installations(q: "france")
registry.installations(uuid: "b77901f9-d9b0-47fa-94e0-dd96450aa2b4")
registry.installations(data: 'contact', uuid: "b77901f9-d9b0-47fa-94e0-dd96450aa2b4")
registry.installations(data: 'contact', uuid: "2e029a0c-87af-42e6-87d7-f38a50b78201")
registry.installations(data: 'endpoint', uuid: "b77901f9-d9b0-47fa-94e0-dd96450aa2b4")
registry.installations(data: 'dataset', uuid: "b77901f9-d9b0-47fa-94e0-dd96450aa2b4")
registry.installations(data: 'deleted')
registry.installations(data: 'deleted', limit: 2)
registry.installations(identifierType: 'DOI', limit: 2)
# FIXME: doesn't work yet
# registry.installations(data: ['deleted','nonPublishing'], limit: 2)
# File lib/gbifrb/Registry.rb, line 225
def self.installations(data: 'all', uuid: nil, q: nil, identifier: nil,
  identifierType: nil, limit: 100, offset: nil, verbose: nil, options: nil)

    arguments = { q: q, limit: limit, offset: offset, identifier: identifier,
        identifierType: identifierType }.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }
    data_choices = ['all', 'contact', 'endpoint', 'dataset',
        'identifier', 'tag', 'machineTag', 'comment',
        'deleted', 'nonPublishing']
    check_data(data, data_choices)
    self.getdata_installations(data, uuid, opts, verbose, options)
    # if len2(data) == 1
    #     return self.getdata_installations(data, uuid, opts, verbose, options)
    #   else
    #     return [self.getdata_installations(x, uuid, opts, verbose, options) for x in data]
    # end
end
networks(data: 'all', uuid: nil, q: nil, identifier: nil, identifierType: nil, limit: 100, offset: nil, verbose: nil, options: nil) click to toggle source

Networks metadata

@param data [String] The type of data to get. Default: 'all' @param uuid [String] UUID of the data network provider. This must be specified if data

is anything other than 'all'.

@param q [String] Query networks. Only used when 'data = 'all''. Ignored otherwise. @param identifier [fixnum] The value for this parameter can be a simple string or integer,

e.g. identifier=120

@param identifierType [String] Used in combination with the identifier parameter to filter

identifiers by identifier type: 'DOI', 'FTP', 'GBIF_NODE', 'GBIF_PARTICIPANT',
'GBIF_PORTAL', 'HANDLER', 'LSID', 'UNKNOWN', 'URI', 'URL', 'UUID'

@!macro gbif_params @!macro gbif_options

@return [Hash] A hash

References: www.gbif.org/developer/registry#networks

@example

require 'gbifrb'

registry = Gbif::Registry
registry.networks(limit: 5)
registry.networks(uuid: '16ab5405-6c94-4189-ac71-16ca3b753df7')
registry.networks(data: 'endpoint', uuid: '16ab5405-6c94-4189-ac71-16ca3b753df7')
# File lib/gbifrb/Registry.rb, line 49
def self.networks(data: 'all', uuid: nil, q: nil, identifier: nil,
  identifierType: nil, limit: 100, offset: nil, verbose: nil, options: nil)

    arguments = { q: q,  limit: limit,  offset: offset,  identifier: identifier,
         identifierType: identifierType}.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }

    data_choices = ['all', 'contact', 'endpoint', 'identifier',
        'tag', 'machineTag', 'comment', 'constituents']
    check_data(data, data_choices)
    return self.getdata_networks(data, uuid, opts, verbose, options)
    # if len2(data) == 1
    #     return getdata(data, uuid, args)
    # else
    #     return [getdata(x, uuid, args) for x in data]
    # end
end
nodes(data: 'all', uuid: nil, q: nil, identifier: nil, identifierType: nil, limit: 100, offset: nil, isocode: nil, verbose: nil, options: nil) click to toggle source

Nodes metadata

@param data [String] The type of data to get. Default: 'all' @param uuid [String] UUID of the data node provider. This must be specified if data

is anything other than 'all'.

@param q [String] Query nodes. Only used when 'data = 'all'' @param identifier [fixnum] The value for this parameter can be a simple string or integer,

e.g. identifier=120

@param identifierType [String] Used in combination with the identifier parameter to filter

identifiers by identifier type: 'DOI', 'FTP', 'GBIF_NODE', 'GBIF_PARTICIPANT',
'GBIF_PORTAL', 'HANDLER', 'LSID', 'UNKNOWN', 'URI', 'URL', 'UUID'

@param isocode [String] A 2 letter country code. Only used if 'data = 'country''. @!macro gbif_params @!macro gbif_options

@return [Hash] A hash

References www.gbif.org/developer/registry#nodes

@example

require 'gbifrb'

registry = Gbif::Registry
registry.nodes(limit: 5)
registry.nodes(identifier: 120)
registry.nodes(uuid: "1193638d-32d1-43f0-a855-8727c94299d8")
registry.nodes(data: 'identifier', uuid: "03e816b3-8f58-49ae-bc12-4e18b358d6d9")
# FIXME: not working yet
# registry.nodes(data: ['identifier','organization','comment'], uuid: "03e816b3-8f58-49ae-bc12-4e18b358d6d9")

uuids = ["8cb55387-7802-40e8-86d6-d357a583c596","02c40d2a-1cba-4633-90b7-e36e5e97aba8",
     "7a17efec-0a6a-424c-b743-f715852c3c1f","b797ce0f-47e6-4231-b048-6b62ca3b0f55",
     "1193638d-32d1-43f0-a855-8727c94299d8","d3499f89-5bc0-4454-8cdb-60bead228a6d",
     "cdc9736d-5ff7-4ece-9959-3c744360cdb3","a8b16421-d80b-4ef3-8f22-098b01a89255",
     "8df8d012-8e64-4c8a-886e-521a3bdfa623","b35cf8f1-748d-467a-adca-4f9170f20a4e",
     "03e816b3-8f58-49ae-bc12-4e18b358d6d9","073d1223-70b1-4433-bb21-dd70afe3053b",
     "07dfe2f9-5116-4922-9a8a-3e0912276a72","086f5148-c0a8-469b-84cc-cce5342f9242",
     "0909d601-bda2-42df-9e63-a6d51847ebce","0e0181bf-9c78-4676-bdc3-54765e661bb8",
     "109aea14-c252-4a85-96e2-f5f4d5d088f4","169eb292-376b-4cc6-8e31-9c2c432de0ad",
     "1e789bc9-79fc-4e60-a49e-89dfc45a7188","1f94b3ca-9345-4d65-afe2-4bace93aa0fe"]

# [ registry.nodes(data: 'identifier', uuid: x) for x in uuids ] # not working yet
# File lib/gbifrb/Registry.rb, line 112
def self.nodes(data: 'all', uuid: nil, q: nil, identifier: nil,
  identifierType: nil, limit: 100, offset: nil, isocode: nil,
  verbose: nil, options: nil)

    arguments = { q: q, limit: limit, offset: offset, identifier: identifier,
        identifierType: identifierType }.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }
    data_choices = ['all', 'organization', 'endpoint',
        'identifier', 'tag', 'machineTag', 'comment',
        'pendingEndorsement', 'country', 'dataset', 'installation']
    check_data(data, data_choices)
    return self.getdata_nodes(data, uuid, opts, isocode, verbose, options)
    # if len2(data) == 1
    #   return self.getdata_nodes(data, uuid, args)
    # else
    #   return [self.getdata_nodes(x, uuid, args) for x in data]
    # end
end
organizations(data: 'all', uuid: nil, q: nil, identifier: nil, identifierType: nil, limit: 100, offset: nil, verbose: nil, options: nil) click to toggle source

Organizations metadata

@param data [String] The type of data to get. Default is all data. If not 'all', then one

or more of 'contact', 'endpoint', 'identifier', 'tag', 'machineTag',
'comment', 'hostedDataset', 'ownedDataset', 'deleted', 'pending',
'nonPublishing'.

@param uuid [String] UUID of the data node provider. This must be specified if data

is anything other than 'all'.

@param q [String] Query nodes. Only used when 'data='all''. Ignored otherwise. @param identifier [fixnum] The value for this parameter can be a simple string or integer,

e.g. identifier=120

@param identifierType [String] Used in combination with the identifier parameter to filter

identifiers by identifier type: 'DOI', 'FTP', 'GBIF_NODE', 'GBIF_PARTICIPANT',
'GBIF_PORTAL', 'HANDLER', 'LSID', 'UNKNOWN', 'URI', 'URL', 'UUID'

@!macro gbif_params @!macro gbif_options

@return [Hash] a hash

References: www.gbif.org/developer/registry#organizations

@example

require 'gbifrb'

registry = Gbif::Registry
registry.organizations(limit: 5)
registry.organizations(q: "france")
registry.organizations(identifier: 120)
registry.organizations(uuid: "e2e717bf-551a-4917-bdc9-4fa0f342c530")
registry.organizations(data: 'contact', uuid: "e2e717bf-551a-4917-bdc9-4fa0f342c530")
registry.organizations(data: 'endpoint', uuid: "e2e717bf-551a-4917-bdc9-4fa0f342c530")
registry.organizations(data: 'deleted')
registry.organizations(data: 'deleted', limit: 2)
registry.organizations(identifierType: 'DOI', limit: 2)
# FIXME: doesn't work yet
# registry.organizations(data: ['deleted','nonPublishing'], limit: 2)
# File lib/gbifrb/Registry.rb, line 169
def self.organizations(data: 'all', uuid: nil, q: nil, identifier: nil,
  identifierType: nil, limit: 100, offset: nil,
  verbose: nil, options: nil)

    arguments = { q: q, limit: limit, offset: offset, identifier: identifier,
        identifierType: identifierType }.tostrings
    opts = arguments.delete_if { |k, v| v.nil? }
    data_choices = ['all', 'contact', 'endpoint',
        'identifier', 'tag', 'machineTag', 'comment', 'hostedDataset',
        'ownedDataset', 'deleted', 'pending', 'nonPublishing']
    check_data(data, data_choices)
    self.getdata_orgs(data, uuid, opts, verbose, options)
    # if len2(data) == 1
    #     return self.getdata_orgs(data, uuid, args, **kwargs)
    # else
    #     return [self.getdata_orgs(x, uuid, args, **kwargs) for x in data]
    # end
end