Skip to contents

Decomposes each name into genus, specific epithet, infraspecific rank and epithet, authorship, hybrid status, and any open-nomenclature qualifier, without matching against a backbone. Where taxify() cleans a name and then resolves it, parse_name() returns the cleaning step itself – the parts of the name – for callers who need the decomposition rather than a match (the role rgbif::name_parse() or gnparser fill). The same cleaning pipeline the matcher uses drives the parse, so a name breaks apart the way it matches.

Usage

parse_name(x)

Arguments

x

Character vector of taxonomic names.

Value

A data.frame with one row per input name and columns:

input_name

The original name as supplied.

genus

The genus (first token), or a single-letter initial for an abbreviated genus ("Q. robur"). NA for an unresolvable hybrid formula.

specific_epithet

The specific epithet, or NA for a bare genus.

infrasp_rank

The infraspecific rank marker ("subsp.", "var.", "f.", ...) when the name has one, else NA.

infrasp_epithet

The infraspecific epithet, else NA.

authorship

The authorship the name carries (trailing form, e.g. "(L.) H.Karst."), or NA.

qualifier

Any open-nomenclature / uncertainty qualifier ("cf.", "aff.", "sp.", "agg.", "s.l.", ...), canonicalized, or NA. Infraspecific rank markers are reported in infrasp_rank, not here.

is_hybrid

Logical. Was a hybrid marker detected?

hybrid_type

"nothogenus", "nothospecies", "formula", or NA.

rank

"genus", "species", "infraspecies", "hybrid_formula", or NA for an empty input.

canonical

The cleaned name used for matching (genus plus epithets, qualifiers and authorship removed, hybrid sign dropped). NA for a hybrid formula, which is not a single taxon.

See also

taxify() to match a name; parse_name() exposes the same internal cleaning pipeline the matcher runs.

Examples

parse_name(c("Quercus robur L.",
             "Poa annua var. annua",
             "Q. robur",
             "Pinus cf. sylvestris",
             "Salix alba x Salix fragilis"))