Package for easy access to Kew’s nomenclatural and taxonomic services.
The official package is written in python and can be found here. However, this javascript version has the same functionality.
This is not an official package from the Kew team.
npm install @vicentecalfo/jskew --save
To build complex queries, use the search terms available in Ipni terms. Query term are grouped into the modules Name
, Author
, and Publication
.
import { Ipni } from '@vicentecalfo/jskew';
const ipni = new Ipni();
ipni.name(
{
genus:'poa',
species: 'annua'
}
).subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
Method
ipni.name(
// Query parameters
{
genus:'poa',
species: 'annua'
}
).subscribe(
(data) => console.log(data.body), //json data "data.body"
(error) => console.log(error)
);
Terms (query parameters)
{
added,
author,
basionym,
basionym_author,
bibliographic_reference,
citation_type,
collection_number,
collectors,
distribution,
family,
full_name,
genus,
in_powo,
infrafamily,
infragenus,
infraspecies,
modified,
name_status,
published,
published_in,
publishing_author,
rank,
scientific_name,
species,
species_author,
version
}
Method
ipni.author(
// Query parameters
{
forename: 'Alison E. L.'
}
).subscribe(
(data) => console.log(data.body), //json data "data.body"
(error) => console.log(error)
);
Terms (query parameters)
{
forename,
full_name,
standard_form,
surname
}
Method
ipni.pub(
// Query parameters
{
title:'Contributions from the United States National Herbarium. Smithsonian Institution',
lc_number:'QK1.U6755',
bph_number:'BPH/S p. 288'
}
).subscribe(
(data) => console.log(data.body), //json data "data.body"
(error) => console.log(error)
);
Terms (query parameters)
{
standard_form,
bph_number,
date,
isbn,
issn,
lc_number,
preceded_by,
superceded_by,
title,
tl2_author,
tl2_number
}
You can filter a given result set by taxonomic rank.
ipni.name(
// Query parameters
{
genus:'poa'
},
['infraspecific']
).subscribe(
(data) => console.log(data.body), //json data "data.body"
(error) => console.log(error)
);
Avaiable filters
- familial
- infrafamilial
- generic
- infrageneric
- specific
- infraspecific
{
page: number;
perPage: number;
results: array; // The search results are here.
totalPages: number;
totalResults: number;
}
ipni.name({genus:'poa'}).subscribe(
(data) => {
const results = data.body.results;
// Do something with the result.
},
(error) => console.log(error)
);
// You can also use promises.
ipni
.name({ genus: 'Poa'})
.toPromise()
.then((data) => {
const results = data.body.results;
console.log(results);
})
.catch((error) => console.log(error));
http://www.plantsoftheworldonline.org
Class for searching POWO data and looking up individual records. Taxonomic data is returned by default, but other associated such as distributions and descriptive text can also be retrieved.
To build complex queries, use the search terms available in powo terms. Query term are grouped into the modules Name
, Characteristic
, and Geography
.
import { Powo } from '@vicentecalfo/jskew';
const powo = new Powo();
powo.name({
genus:'Poa',
species: 'annua'
})
.subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
powo.name(
// Query parameters
{
genus,
species
}
).subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
Terms (query parameters)
{
full_name,
common_name,
kingdom,
family,
genus,
species,
author
}
powo.characteristic(
// Query parameters
{
flower,
leaf
}
)
.subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
Terms (query parameters)
{
summary,
appearance,
characteristic,
flower,
fruit,
leaf,
inflorescence,
seed,
cloning,
use
}
powo.geography(
// Query parameters
{
distribution
}
)
.subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
Terms (query parameters)
{
distribution
}
You can filter a given result set by taxonomic rank.
powo.name(
// Query parameters
{
genus:'Poa'
},
['accepted','species']
).subscribe(
(data) => console.log(data.body), //json data "data.body"
(error) => console.log(error)
);
Avaiable filters
- accepted
- has_images
- families
- genera
- species
- infraspecies
powo.lookup('urn:lsid:ipni.org:names:320035-2')
.subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
The standard data returned by the POWO api includes taxonomic and nomenclatural information, but there are other data you can request.
Currently you can only retrieve distribution
data, but other data should be exposed in the future.
powo
.lookup(
'urn:lsid:ipni.org:names:320035-2',
{ include: ['distribution'] }
)
.subscribe(
(data) => console.log(data.body),
(error) => console.log(error)
);
You can access the status code. Sample
// Inpi or Powo classes
ipni
.name({ genus: 'Poa', species: 'annua' })
.toPromise()
.then((data) => {
const statusCode = data.response.statusCode;
// example: 249 > too many requests, now you can retry after X seconds
// Do something with the status code result.
})
.catch((error) => console.log(error));
- This package is not official form the Royal Botanic Gardens, Kew.
- The documentation for this package is very similar to the official package written in python (pykew), due to the similarity of features.