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, code = c("taxon", "syntaxon"))Arguments
- x
Character vector of taxonomic names.
- code
Character. The nomenclature the names follow:
"taxon"(default; botanical and zoological names) or"syntaxon"(vegetation units under the International Code of Phytosociological Nomenclature, the names a syntaxon backbone such as"evc"matches; seetaxify()).
Value
For code = "taxon", 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").NAfor an unresolvable hybrid formula.- specific_epithet
The specific epithet, or
NAfor a bare genus.- infrasp_rank
The infraspecific rank marker (
"subsp.","var.","f.", ...) when the name has one, elseNA.- infrasp_epithet
The infraspecific epithet, else
NA.- authorship
The authorship the name carries (trailing form, e.g.
"(L.) H.Karst."), orNA.- qualifier
Any open-nomenclature / uncertainty qualifier (
"cf.","aff.","sp.","agg.","s.l.", ...), canonicalized, orNA. Infraspecific rank markers are reported ininfrasp_rank, not here.- is_hybrid
Logical. Was a hybrid marker detected?
- hybrid_type
"nothogenus","nothospecies","formula", orNA.- rank
"genus","species","infraspecies","hybrid_formula", orNAfor an empty input.- canonical
The cleaned name used for matching (genus plus epithets and any infraspecific rank marker in its canonical spelling, qualifiers and authorship removed, hybrid sign dropped).
NAfor a hybrid formula, which is not a single taxon.
For code = "syntaxon", a data.frame with one row per input name and
columns:
- input_name
The original name as supplied.
- code
A national or database code written in front of the name (
"TDA - Arrhenatherion elatioris","41BB03 - Tilio-Carpinetum"), orNA.- name
The syntaxon name without author or annotations, the form the matcher looks up. Where a record names several units, the most specific rank-labelled one (
"all. X, ord. Y"), else the first.- authorship
The author citation (
"(Oberd. 1957) Passarge 1964"), orNA.- rank
The rank the name's suffix denotes:
"class"(-etea),"order"(-etalia),"alliance"(-ion),"suballiance"(-enion),"association"(-etum),"subassociation"(a trailing -etosum),"subclass","suborder", orNA.- qualifier
"?"for a doubtful assignment,"cf.","s.l.","s.str.", orNA.- name_status
Nomenclatural annotations after the citation (
"nom. inval. (5a)","(syntax.syn.)","(Regionalverband)"), orNA.
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"))
parse_name(c("Caricenion gracilis (Neuhausl 1959) Oberd. et al. 1967",
"TDA - Arrhenatherion elatioris",
"Conioselinion tatarici Golub et al. 2003 nom. inval. (5a)"),
code = "syntaxon")