From ae703fc80ff836381d892e17c2e0c3d9be39f1c4 Mon Sep 17 00:00:00 2001
From: Andrew Gene Brown <brown.andrewg@gmail.com>
Date: Thu, 15 Feb 2024 22:26:35 -0800
Subject: [PATCH 1/5] draft WRB 4th ed (2022) parse+dataset

---
 DESCRIPTION                 |   2 +-
 R/data-documentation.R      |  41 +-
 R/higherTaxaCodes.R         |   6 +-
 data-raw/wrb_4th_2022.R     |  92 ++++
 data/wrb_4th_2022.rda       | Bin 0 -> 6447 bytes
 man/SoilTaxonomy-package.Rd |   2 +-
 misc/WRB2022/WRB_PQ.txt     | 561 +++++++++++++++++++++
 misc/WRB2022/WRB_RSG.txt    | 290 +++++++++++
 misc/WRB2022/WRB_SQ.txt     | 972 ++++++++++++++++++++++++++++++++++++
 9 files changed, 1949 insertions(+), 17 deletions(-)
 create mode 100644 data-raw/wrb_4th_2022.R
 create mode 100644 data/wrb_4th_2022.rda
 create mode 100644 misc/WRB2022/WRB_PQ.txt
 create mode 100644 misc/WRB2022/WRB_RSG.txt
 create mode 100644 misc/WRB2022/WRB_SQ.txt

diff --git a/DESCRIPTION b/DESCRIPTION
index ce7021b..7a27881 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -22,7 +22,7 @@ Suggests:
     soilDB,
     ape,
     data.tree
-RoxygenNote: 7.2.3
+RoxygenNote: 7.3.1
 Roxygen: list(markdown = TRUE)
 VignetteBuilder: knitr
 LazyData: false
diff --git a/R/data-documentation.R b/R/data-documentation.R
index 3e8d93d..39de3de 100644
--- a/R/data-documentation.R
+++ b/R/data-documentation.R
@@ -1,7 +1,7 @@
 #'
-#' @title Soil Taxonomy Hierarchy
+#' Soil Taxonomy Hierarchy
 #'
-#' @description The first 4 levels of the US Soil Taxonomy hierarchy (soil order, suborder, greatgroup, subgroup), presented as a \code{data.frame} (denormalized) and a \code{list} of unique taxa.
+#' The first 4 levels of the US Soil Taxonomy hierarchy (soil order, suborder, greatgroup, subgroup), presented as a \code{data.frame} (denormalized) and a \code{list} of unique taxa.
 #' @details Ordered based on the unique letter codes denoting taxa from the 13th edition of the Keys to Soil Taxonomy.
 #' @usage data(ST)
 #'
@@ -20,9 +20,9 @@
 #'
 "ST"
 
-#' @title Family-level Classes for Soil Taxonomy
+#' Family-level Classes for Soil Taxonomy
 #'
-#' @description A database of family-level class names for Soil Taxonomy.
+#' A database of family-level class names for Soil Taxonomy.
 #'
 #' @references
 #'  Soil Survey Staff. 2014. Keys to Soil Taxonomy, 12th ed. USDA-Natural Resources Conservation Service, Washington, DC.
@@ -34,9 +34,9 @@
 #'
 "ST_family_classes"
 
-#' @title Epipedons, Diagnostic Horizons, Characteristics and Features in Soil Taxonomy
+#' Epipedons, Diagnostic Horizons, Characteristics and Features in Soil Taxonomy
 #'
-#' @description A `data.frame` with columns "group", "name", "chapter", "page", "description", "criteria". Currently page numbers and contents are referenced to 12th Edition Keys to Soil Taxonomy and derived from products in the ncss-tech SoilKnowledgeBase repository (https://github.com/ncss-tech/SoilKnowledgeBase).
+#' A `data.frame` with columns "group", "name", "chapter", "page", "description", "criteria". Currently page numbers and contents are referenced to 12th Edition Keys to Soil Taxonomy and derived from products in the ncss-tech SoilKnowledgeBase repository (https://github.com/ncss-tech/SoilKnowledgeBase).
 #'
 #' @references
 #' Soil Survey Staff. 2014. Keys to Soil Taxonomy, 12th ed. USDA-Natural Resources Conservation Service, Washington, DC.
@@ -48,9 +48,9 @@
 #'
 "ST_features"
 
-#' @title Formative Elements used by Soil Taxonomy
+#' Formative Elements used by Soil Taxonomy
 #'
-#' @description A database of formative elements used by the first 4 levels of US Soil Taxonomy hierarchy (soil order, suborder, greatgroup, subgroup).
+#' A database of formative elements used by the first 4 levels of US Soil Taxonomy hierarchy (soil order, suborder, greatgroup, subgroup).
 #'
 #' @references
 #' S. W. Buol and R. C. Graham and P. A. McDaniel and R. J. Southard. Soil Genesis and Classification, 5th edition. Iowa State Press, 2003.
@@ -61,9 +61,9 @@
 #'
 "ST_formative_elements"
 
-#' @title Letter Code Lookup Table for Position of Taxa within the Keys to Soil Taxonomy (12th Edition)
+#' Letter Code Lookup Table for Position of Taxa within the Keys to Soil Taxonomy (12th Edition)
 #'
-#' @description A lookup table mapping unique taxonomic Order, Suborder, Great Group and Subgroups to letter codes that denote their logical position within the Keys.
+#' A lookup table mapping unique taxonomic Order, Suborder, Great Group and Subgroups to letter codes that denote their logical position within the Keys.
 #'
 #' @details The lookup table has been corrected to reflect errata that were posted after the print publication of the 12th Edition Keys, as well as typos in the Spanish language edition.
 #'
@@ -81,9 +81,9 @@
 #'
 "ST_higher_taxa_codes_12th"
 
-#' @title Letter Code Lookup Table for Position of Taxa within the Keys to Soil Taxonomy (13th Edition)
+#' Letter Code Lookup Table for Position of Taxa within the Keys to Soil Taxonomy (13th Edition)
 #'
-#' @description A lookup table mapping unique taxonomic Order, Suborder, Great Group and Subgroups to letter codes that denote their logical position within the Keys.
+#' A lookup table mapping unique taxonomic Order, Suborder, Great Group and Subgroups to letter codes that denote their logical position within the Keys.
 #'
 #' @references
 #'
@@ -95,3 +95,20 @@
 #' @keywords datasets
 #'
 "ST_higher_taxa_codes_13th"
+
+#' World Reference Base for Soil Resources (4th Edition , 2022)
+#'
+#' A _list_ containing three _data.frame_ elements `"rsg"`, `"pq"`, and `"sq"` providing information on the 'Representative Soil Groups', 'Principal Qualifiers,' and 'Supplementary Qualifiers,' respectively.
+#' 
+#' @details
+#' 
+#' Each element has the column `code` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `reference_soil_group` which is the corresponding group name. The _data.frame_ `"rsg"` has column `criteria`, describing the criteria for each Reference Soil Group. The _data.frame_ `"pq"` contains column `"principal_qualifier"` and `"sq"` contains column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash `" / "`
+#'
+#' @references
+#'
+#' IUSS Working Group WRB. 2022. World Reference Base for Soil Resources. International soil classification system for naming soils and creating legends for soil maps. 4th edition. International Union of Soil Sciences (IUSS), Vienna, Austria.
+#'
+#' @usage data(wrb_4th_2022)
+#'
+#' @keywords datasets
+#'
\ No newline at end of file
diff --git a/R/higherTaxaCodes.R b/R/higherTaxaCodes.R
index e29e831..bc650f0 100644
--- a/R/higherTaxaCodes.R
+++ b/R/higherTaxaCodes.R
@@ -1,6 +1,6 @@
 #' Decompose taxon letter codes
 #'
-#' @description Find all codes that logically comprise the specified codes. For instance, code "ABC" ("Anhyturbels") returns "A" ("Gelisols"), "AB" ("Turbels"), "ABC" ("Anhyturbels"). Use in conjunction with a lookup table that maps Order, Suborder, Great Group and Subgroup taxa to their codes (see \code{\link{taxon_code_to_taxon}} and \code{\link{taxon_to_taxon_code}}).
+#'  Find all codes that logically comprise the specified codes. For instance, code "ABC" ("Anhyturbels") returns "A" ("Gelisols"), "AB" ("Turbels"), "ABC" ("Anhyturbels"). Use in conjunction with a lookup table that maps Order, Suborder, Great Group and Subgroup taxa to their codes (see \code{\link{taxon_code_to_taxon}} and \code{\link{taxon_to_taxon_code}}).
 #'
 #' @details Accounts for Keys that run out of capital letters (more than 26 subgroups) and use lowercase letters for a unique subdivision within the "fourth character position."
 #'
@@ -49,7 +49,7 @@ decompose_taxon_code <- function(codes) {
 
 #' Get taxon codes of preceding taxa
 #'
-#' @description Find all codes that logically precede the specified codes. For instance, code "ABC" ("Anhyturbels") returns "AA" ("Histels") "ABA" ("Histoturbels") and "ABB" ("Aquiturbels"). Use in conjunction with a lookup table that maps Order, Suborder, Great Group and Subgroup taxa to their codes (see \code{\link{taxon_code_to_taxon}} and \code{\link{taxon_to_taxon_code}}).
+#'  Find all codes that logically precede the specified codes. For instance, code "ABC" ("Anhyturbels") returns "AA" ("Histels") "ABA" ("Histoturbels") and "ABB" ("Aquiturbels"). Use in conjunction with a lookup table that maps Order, Suborder, Great Group and Subgroup taxa to their codes (see \code{\link{taxon_code_to_taxon}} and \code{\link{taxon_to_taxon_code}}).
 #'
 #' @details  Accounts for Keys that run out of capital letters (more than 26 subgroups) and use lowercase letters for a unique subdivision within the "fourth character position."
 #'
@@ -187,7 +187,7 @@ taxon_to_taxon_code <- function(taxon) {
 
 #' Determine relative position of taxon within Keys to Soil Taxonomy (Order to Subgroup)
 #'
-#' @description The relative position of a taxon is `[number of preceding Key steps] + 1`, or `NA` if it does not exist in the lookup table.
+#'  The relative position of a taxon is `[number of preceding Key steps] + 1`, or `NA` if it does not exist in the lookup table.
 #'
 #' @param code A character vector of taxon codes to determine the relative position of.
 #'
diff --git a/data-raw/wrb_4th_2022.R b/data-raw/wrb_4th_2022.R
new file mode 100644
index 0000000..0bc6a9a
--- /dev/null
+++ b/data-raw/wrb_4th_2022.R
@@ -0,0 +1,92 @@
+## code to prepare `wrb_4th_2022` dataset goes here
+library(pdftools)
+
+## SETUP
+## 
+# dir.create("misc/WRB2022")
+# download.file("https://wrb.isric.org/files/WRB_fourth_edition_2022-12-18.pdf",
+#               destfile = "misc/WRB2022/WRB_fourth_edition_2022-12-18.pdf")
+
+## does not work for RSG/qualifiers; tables used in formatting
+## can be used for definitions of diagnostics and qualifiers
+# x <- pdf_text("misc/WRB2022/WRB_fourth_edition_2022-12-18.pdf")
+# x <- unlist(strsplit(x, "\n"))
+# ldx <- cumsum(grepl("Key to the Reference Soil Groups", x))
+# y <- split(x, ldx)
+# data.frame(y[[11]]) |> View()
+
+## nope
+# x <- pdf_data("misc/WRB2022/WRB_fourth_edition_2022-12-18.pdf")
+# y <- do.call('rbind', x)
+# 
+
+x <- readLines("misc/WRB2022/WRB_RSG.txt")
+n <- grep("^[A-Z]+$", x)
+z.names <- x[n]
+x <- x[-n]
+idx <- grep("^(Soils having|Other soils)", x)
+ldx <- rep(FALSE, length(x))
+ldx[idx] <- TRUE
+xx <- split(x, cumsum(ldx))
+z <- lapply(xx, function(y) {
+  i <- grep("(; (and|or)|\\.|:)$", y) + 1
+  i <- i[i < length(y)]
+  l <- rep(FALSE, length(y))
+  l[i] <- TRUE
+  sapply(split(y, cumsum(l)), paste0, collapse = " ")
+})
+names(z) <- z.names
+
+wrb_rsg <- do.call('rbind', lapply(seq(z), function(i) {
+  data.frame(code = i, reference_soil_group = z.names[i], criteria = z[[z.names[i]]])
+}))
+rownames(wrb_rsg) <- NULL
+# View(wrb_rsg)
+
+x <- readLines("misc/WRB2022/WRB_PQ.txt")
+n <- grep("^[A-Z]+$", x)
+z.names <- x[n]
+x <- x[-n]
+idx <- grep("Principal qualifiers", x)
+ldx <- rep(FALSE, length(x))
+ldx[idx] <- TRUE
+xx <- split(x, cumsum(ldx))
+z <- lapply(xx, function(y) {
+  y <- trimws(gsub("([^ ])/ ", "\\1 / ", y))
+  y[y != "Principal qualifiers"]
+})
+names(z) <- z.names
+
+wrb_pq <- do.call('rbind', lapply(seq(z), function(i) {
+  data.frame(code = i, reference_soil_group = z.names[i], principal_qualifiers = z[[z.names[i]]])
+}))
+rownames(wrb_pq) <- NULL
+# View(wrb_pq)
+
+x <- readLines("misc/WRB2022/WRB_SQ.txt")
+n <- grep("^[A-Z]+$", x)
+z.names <- x[n]
+x <- x[-n]
+idx <- grep("Supplementary qualifiers", x)
+ldx <- rep(FALSE, length(x))
+ldx[idx] <- TRUE
+xx <- split(x, cumsum(ldx))
+z <- lapply(xx, function(y) {
+  y <- trimws(gsub("([^ ])/ ", "\\1 / ", y))
+  y[y != "Supplementary qualifiers"]
+})
+names(z) <- z.names
+
+wrb_sq <- do.call('rbind', lapply(seq(z), function(i) {
+  data.frame(code = i, reference_soil_group = z.names[i], supplementary_qualifiers = z[[z.names[i]]])
+}))
+rownames(wrb_sq) <- NULL
+# View(wrb_sq)
+
+wrb_4th_2022 <- list(
+  rsg = wrb_rsg,
+  pq  = wrb_pq,
+  sq  = wrb_sq
+)
+
+usethis::use_data(wrb_4th_2022, overwrite = TRUE)
diff --git a/data/wrb_4th_2022.rda b/data/wrb_4th_2022.rda
new file mode 100644
index 0000000000000000000000000000000000000000..38eb6cc6a7b84289bb9975bb28924bf02d36cdbc
GIT binary patch
literal 6447
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
Jp&%2n>_lKAT4?|P

literal 0
HcmV?d00001

diff --git a/man/SoilTaxonomy-package.Rd b/man/SoilTaxonomy-package.Rd
index c18aee2..50259f8 100644
--- a/man/SoilTaxonomy-package.Rd
+++ b/man/SoilTaxonomy-package.Rd
@@ -2,8 +2,8 @@
 % Please edit documentation in R/SoilTaxonomy-package.R
 \docType{package}
 \name{SoilTaxonomy-package}
+\alias{SoilTaxonomy}
 \alias{SoilTaxonomy-package}
-\alias{_PACKAGE}
 \alias{SoilTaxonomy.env}
 \title{SoilTaxonomy: A System of Soil Classification for Making and Interpreting Soil Surveys}
 \description{
diff --git a/misc/WRB2022/WRB_PQ.txt b/misc/WRB2022/WRB_PQ.txt
new file mode 100644
index 0000000..9a0e87b
--- /dev/null
+++ b/misc/WRB2022/WRB_PQ.txt
@@ -0,0 +1,561 @@
+Principal qualifiers 
+Muusic/ Rockic/ Mawic
+Cryic
+Thionic
+Folic
+Floatic
+Subaquatic/ Tidalic
+Fibric/ Hemic/ Sapric
+Leptic/ Thyric
+Murshic/ Drainic
+Ombric/ Rheic
+Coarsic
+Skeletic
+Andic
+Vitric
+HISTOSOLS
+Principal qualifiers 
+Hydragric/ Irragric/
+Hortic/ Plaggic/
+Pretic/Terric
+Gleyic
+Stagnic
+Ferralic/ Sideralic
+Andic
+ANTHROSOLS
+Principal qualifiers 
+Ekranic/ Thyric
+Linic
+Urbic
+Spolic
+Garbic
+Cryic
+Isolatic
+Leptic
+Subaquatic/ Tidalic
+Reductic
+Coarsic
+Gleyic
+Stagnic
+Andic
+TECHNOSOLS
+Principal qualifiers 
+Glacic
+Turbic
+Subaquatic/ Tidalic/
+Reductaquic/ Oxyaquic
+Leptic
+Histic
+Andic
+Mollic/ Umbric
+Natric
+Salic
+Spodic
+Retic
+Alic/ Luvic
+Calcic/ Wapnic
+Yermic
+Protic
+Cambic
+Coarsic
+Skeletic
+Haplic
+CRYOSOLS
+Principal qualifiers 
+Nudilithic/ Lithic
+Coarsic
+Skeletic
+Subaquatic/ Tidalic
+Histic
+Andic
+Rendzic/ Mollic/ Umbric
+Gypsic
+Calcic
+Cambic/ Brunic
+Yermic/ Takyric
+Folic
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+LEPTOSOLS
+Principal qualifiers 
+Abruptic
+Gleyic
+Stagnic
+Mollic
+Salic
+Gypsic
+Petrocalcic
+Calcic
+Vertic
+Yermic/ Takyric
+Nudinatric
+Albic
+Haplic
+SOLONETZ
+Principal qualifiers 
+Salic
+Sodic
+Leptic
+Petroduric/ Duric
+Gypsic
+Petrocalcic
+Calcic
+Hydragric/ Anthraquic/
+Irragric
+Pellic
+Chromic
+Haplic
+VERTISOLS
+Principal qualifiers 
+etrosalic
+Gleyic
+Stagnic
+Sodic
+Petrogypsic
+Gypsic
+Petrocalcic
+Calcic
+Leptic
+Mollic
+Fluvic
+Yermic/ Takyric
+Haplic
+SOLONCHAKS
+Principal qualifiers 
+Thionic
+Reductic
+Subaquatic/ Tidalic
+Hydragric/ Anthraquic/
+Irragric/ Hortic/ Plaggic/
+Pretic/ Terric
+Histic
+Andic
+Vitric
+Chernic/ Mollic/ Umbric
+Pisoplinthic/ Plinthic
+Stagnic
+Oxyaquic
+Oxygleyic/ Reductigleyic
+Gypsic
+Calcic/ Wapnic
+Spodic
+Fluvic
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+GLEYSOLS
+Principal qualifiers 
+Aluandic/ Silandic
+Vitric
+Leptic
+Hydragric/ Anthraquic
+Gleyic
+Hydric
+Histic
+Chernic/ Mollic/ Umbric
+Petroduric/ Duric
+Gypsic
+Calcic
+Tephric
+Aeolic
+Skeletic
+Dystric/ Eutric
+ANDOSOLS
+Principal qualifiers 
+Ortsteinic
+Carbic/ Rustic
+Albic/ Entic
+Leptic
+Hortic/ Plaggic/ Pretic/
+Terric
+Histic
+Gleyic
+Andic
+Vitric
+Stagnic
+Anthromollic/ Umbric
+Glossic/ Retic
+Acric/ Alic
+Coarsic
+Skeletic
+Principal qualifiers 
+Petric
+Pisoplinthic
+Gibbsic
+Stagnic
+Geric
+Nitic
+Histic
+Mollic/ Umbric
+Albic
+Leptic
+Coarsic
+Skeletic
+Haplic
+PLINTHOSOLS
+Principal qualifiers 
+Reductic
+Thionic
+Leptic
+Hydragric/ Anthraquic/
+Irragric/ Hortic/ Plaggic/
+Pretic/ Terric
+Histic
+Gleyic
+Chernic/ Mollic/ Umbric
+Albic
+Fluvic
+Vertic
+Glossic/ Retic
+Acric/ Lixic/ Alic/ Luvic
+Petroduric/ Duric
+Calcic
+Dolomitic/ Calcaric
+Dystric/ Eutric
+PLANOSOLS
+Reductic
+Thionic
+Leptic
+Hydragric/ Anthraquic/
+Irragric/ Hortic/ Plaggic/
+Pretic/ Terric
+Histic
+Gleyic
+Chernic/ Mollic/ Umbric
+Albic
+Fluvic
+Vertic
+Glossic/ Retic
+Acric/ Lixic/ Alic/ Luvic
+Calcic
+Dolomitic/ Calcaric
+Dystric/ Eutric
+STAGNOSOLS
+Principal qualifiers 
+Ferralic/ Sideralic
+Ferritic
+Leptic
+Rhodic/ Xanthic
+Geric
+Hydragric/ Anthraquic/
+Pretic
+Profundihumic
+Mollic/ Umbric
+Acric/ Lixic/ Alic/ Luvic
+Dystric/ Eutric
+NITISOLS
+Principal qualifiers 
+Ferritic
+Gibbsic
+Rhodic/ Xanthic
+Geric
+Nitic
+Pretic
+Gleyic
+Stagnic
+Profundihumic
+Mollic/ Umbric
+Acric/ Lixic
+Skeletic
+Haplic
+FERRALSOLS
+Principal qualifiers 
+Petroduric/ Duric
+Petrocalcic
+Leptic
+Hortic
+Gleyic
+Vertic
+Greyzemic
+Luvic
+Calcic
+Cambic
+Skeletic
+Vermic
+Tonguic
+Haplic
+CHERNOZEMS
+Principal qualifiers 
+Someric
+Petroduric/ Duric
+Petrogypsic
+Gypsic
+Petrocalcic
+Leptic
+Hortic/ Terric
+Gleyic
+Fluvic
+Vertic
+Luvic
+Calcic
+Cambic/ Brunic
+Skeletic
+Tonguic
+Haplic
+KASTANOZEMS
+Principal qualifiers 
+Rendzic
+Chernic/ Someric
+Mulmic
+Petroduric/ Duric
+Petrocalcic
+Endocalcic
+Leptic
+Irragric/ Hortic/ Pretic/
+Terric
+Gleyic
+Stagnic
+Fluvic
+Vertic
+Greyzemic
+Glossic/ Retic
+Lixic/ Luvic
+Cambic/ Brunic
+Skeletic
+Vermic
+Tonguic
+Gypsiric
+Dolomitic/ Calcaric
+Haplic
+PHAEOZEMS
+Principal qualifiers 
+Hortic/ Plaggic/ Pretic/
+Terric
+Chernic/ Mollic/ Someric
+Mulmic
+Fragic
+Leptic
+Gleyic
+Stagnic
+Fluvic
+Greyzemic
+Glossic/ Retic
+Acric/ Lixic/ Alic/ Luvic
+Cambic/ Brunic
+Skeletic
+Tonguic
+Endodolomitic/
+Endocalcaric
+Haplic
+UMBRISOLS
+Principal qualifiers 
+Petric
+Petrogypsic
+Gypsic
+Petrocalcic
+Calcic
+Leptic
+Acric/ Lixic/ Alic/ Luvic
+Cambic
+Coarsic
+Fractic
+Skeletic
+Yermic/ Takyric
+Andic
+Gypsiric
+Calcaric
+Dystric/ Eutric
+DURISOLS
+Principal qualifiers 
+Petric
+Petrocalcic
+Calcic
+Leptic
+Gleyic
+Stagnic
+Lixic/ Luvic
+Cambic
+Coarsic
+Fractic
+Skeletic
+Yermic/ Takyric
+Calcaric
+Haplic
+GYPSISOLS
+Principal qualifiers 
+Petric
+Leptic
+Gleyic
+Stagnic
+Lixic/ Luvic
+Cambic
+Coarsic
+Fractic
+Skeletic
+Yermic/ Takyric
+Gypsiric
+Haplic
+CALCISOLS
+Principal qualifiers 
+Abruptic
+Fragic
+Glossic
+Leptic
+Plaggic/ Pretic/ Terric
+Histic
+Gleyic
+Stagnic
+Sideralic
+Nudiargic
+Neocambic/ Neobrunic
+Albic
+Calcic
+Skeletic
+Endodolomitic/
+Endocalcaric
+Dystric/ Eutric
+RETISOLS
+Principal qualifiers 
+Abruptic
+Fragic
+Leptic
+Hydragric/ Anthraquic/
+Pretic/ Terric
+Gleyic
+Stagnic
+Ferralic
+Rhodic/ Chromic/ Xanthic
+Nudiargic
+Lamellic
+Albic
+Ferric
+Skeletic
+Haplic
+ACRISOLS
+Principal qualifiers 
+Abruptic
+Fragic
+Petrocalcic
+Leptic
+Hydragric/ Anthraquic/
+Pretic/ Terric
+Gleyic
+Stagnic
+Ferralic
+Rhodic/ Chromic/ Xanthic
+Nudiargic
+Lamellic
+Albic
+Ferric
+Gypsic
+Calcic
+Yermic/ Takyric
+Skeletic
+Haplic
+LIXISOLS
+Principal qualifiers 
+Abruptic
+Fragic
+Leptic
+Hydragric/ Anthraquic/
+Plaggic/ Pretic/ Terric
+Gleyic
+Stagnic
+Vertic
+Rhodic/ Chromic
+Nudiargic
+Lamellic
+Albic
+Ferric
+Skeletic
+Haplic
+ALISOLS
+Principal qualifiers 
+Abruptic
+Fragic
+Petrocalcic
+Leptic
+Hydragric/ Anthraquic/
+Irragric/ Pretic/ Terric
+Gleyic
+Stagnic
+Vertic
+Rhodic/ Chromic
+Nudiargic
+Lamellic
+Albic
+Ferric
+Gypsic
+Calcic
+Yermic/ Takyric
+Skeletic
+Dolomitic/ Calcaric
+Haplic
+LUVISOLS
+Principal qualifiers 
+Fragic
+Thionic
+Hydragric/ Anthraquic/
+Irragric/ Plaggic/ Pretic/
+Terric
+Tsitelic
+Vertic
+Andic
+Vitric
+Leptic
+Histic
+Gleyic
+Stagnic
+Solimovic
+Fluvic
+Sideralic
+Rhodic/ Chromic
+Skeletic
+Yermic/ Takyric
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+CAMBISOLS
+Principal qualifiers 
+Tidalic
+Pantofluvic/ Anofluvic/
+Orthofluvic
+Leptic
+Histic
+Gleyic
+Stagnic
+Skeletic
+Tephric
+Yermic/ Takyric
+Protic
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+FLUVISOLS
+Principal qualifiers 
+Tidalic
+Aeolic
+Solimovic
+Tephric
+Tsitelic
+Brunic
+Gleyic
+Sideralic
+Yermic
+Protic
+Transportic
+Relocatic
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+ARENOSOLS
+Principal qualifiers 
+Tidalic
+Leptic
+Solimovic
+Aeolic
+Tephric
+Brunic
+Gleyic
+Stagnic
+Skeletic
+Vermic
+Yermic/ Takyric
+Protic
+Transportic
+Relocatic
+Gypsiric
+Dolomitic/ Calcaric
+Dystric/ Eutric
+REGOSOLS
diff --git a/misc/WRB2022/WRB_RSG.txt b/misc/WRB2022/WRB_RSG.txt
new file mode 100644
index 0000000..ac8dffc
--- /dev/null
+++ b/misc/WRB2022/WRB_RSG.txt
@@ -0,0 +1,290 @@
+Soils having one or more of the following:
+1. organic material starting ≤ 40 cm from the soil surface and
+having within 100 cm of the soil surface a combined thickness
+of:
+a. ≥ 40 cm if < 75% (by volume, related to the
+fine earth plus all dead plant residues) consists of moss fibres; or
+b. ≥ 60 cm; or
+2. organic material starting at the soil surface, having a
+thickness of ≥ 10 cm and directly overlying ice,
+continuous rock or technic hard material; or
+3. a layer of coarse fragments that, together with overlying
+organic material, if present, starts at the soil surface and has
+a thickness of
+a. ≥ 10 cm if overlying continuous rock or technic hard
+material; or
+b. ≥ 40 cm; and 
+the major part of the interstices between the coarse
+fragments is filled with organic material and the remaining
+interstices, if present, are void.
+HISTOSOLS
+Other soils having:
+1. a hortic, irragric, plaggic or terric horizon, ≥ 50 cm thick; or
+2. an anthraquic horizon and an underlying hydragric horizon
+with a combined thickness of ≥ 50 cm; or
+3. a pretic horizon, the layers of which have a combined
+thickness of ≥ 50 cm, within 100 cm of the mineral soil
+surface.
+ANTHROSOLS
+Other soils:
+1. with all of the following:
+a. one or both of the following:
+i. having ≥ 20% (by volume, weighted 
+average, related to the whole soil)
+artefacts in the upper 100 cm from
+the soil surface or to a limiting layer,
+whichever is shallower; or
+ii. having a layer, ≥ 10 cm thick and
+starting ≤ 50 cm from the soil surface,
+with ≥ 80% (by volume, weighted average, related to the whole soil) artefacts; and
+b. not having a layer containing artefacts
+that qualifies as an argic, duric, ferralic,
+ferric, fragic, hydragric, natric, nitic,
+petrocalcic, petroduric, petrogypsic,
+petroplinthic, pisoplinthic, plinthic,
+spodic or vertic horizon starting
+≤ 100 cm from the soil surface, unless
+buried; and
+c. not having a limiting layer, unless
+consisting of artefacts, starting ≤ 10 cm
+from the soil surface; or
+2. having a continuous, very slowly permeable
+to impermeable, constructed geomembrane
+of any thickness or technic hard material
+starting ≤ 100 cm from the soil surface.
+TECHNOSOLS
+Other soils having:
+1. a cryic horizon starting ≤ 100 cm from the soil surface; or
+2. a cryic horizon starting ≤ 200 cm from the soil surface and evidence of cryogenic alteration (cryoturbation, frost heave, cryogenic sorting, thermal cracking, ice segregation, patterned ground, etc.) in some layer within 100 cm of the soil surface.
+CRYOSOLS
+Other soils having:
+1. one of the following:
+a. continuous rock starting ≤ 25 cm from the soil surface; or
+b. < 20% (by volume, related to the whole soil) fine earth
+plus dead plant residues of any size2, averaged over a depth
+of 75 cm from the soil surface or to continuous rock,
+whichever is shallower; and
+2. no duric, petrocalcic, petroduric, petrogypsic, pisoplinthic or
+spodic horizon.
+LEPTOSOLS
+Other soils having a natric horizon starting ≤ 100 cm from the
+mineral soil surface.
+SOLONETZ
+Other soils having:
+1. a vertic horizon starting ≤ 100 cm from the mineral soil
+surface; and
+2. ≥ 30% clay between the mineral soil surface and the vertic
+horizon throughout; and
+3. shrink-swell cracks that start:
+a. at the mineral soil surface; or
+b. at the base of a plough layer; or
+c. directly below a layer with strong granular structure or
+strong angular or subangular blocky structure with an
+aggregate size of ≤ 1 cm (self-mulching surface); or
+d. directly below a surface crust;
+and extend to the vertic horizon.
+VERTISOLS
+Other soils:
+1. having a salic horizon starting ≤ 50 cm from the soil surface; and
+2. not having a thionic horizon starting ≤ 50 cm from the soil surface; and
+3. not being permanently submerged by water and not located
+below the line affected by tidal water (i.e. not located below
+the line of mean high water springs).
+SOLONCHAKS
+Other soils having one or more of the following:
+1. a layer, ≥ 25 cm thick and starting ≤ 40 cm from the mineral
+soil surface, that has
+a. gleyic properties throughout; and
+b. reducing conditions in some parts of every sublayer; or
+2. both of the following:
+a. a mollic or umbric horizon, > 40 cm thick, that has
+reducing conditions in some parts of every sublayer, from
+40 cm below the mineral soil surface to the lower limit of
+the mollic or umbric horizon; and
+b. directly underneath the mollic/umbric horizon, a layer,
+≥ 10 cm thick, that has its lower limit ≥ 65 cm below the
+mineral soil surface, and that has:
+i. gleyic properties throughout; and
+ii. reducing conditions in some parts of every sublayer; or
+3. permanent saturation by water starting ≤ 40 cm from the
+mineral soil surface.
+GLEYSOLS
+Other soils having:
+1. one or more layers with andic or vitric properties with a
+combined thickness of:
+a. ≥ 30 cm, within 100 cm of the soil surface and starting
+≤ 25 cm from the soil surface; or
+b. ≥ 60% of the entire thickness of the soil, if a limiting layer
+starts > 25 and ≤ 50 cm from the soil surface; and
+2. no argic, ferralic, petroplinthic, pisoplinthic, plinthic or spodic
+horizon starting ≤ 100 cm of the soil surface, unless buried
+deeper than 50 cm from the mineral soil surface.
+ANDOSOLS
+Other soils having a spodic horizon starting ≤ 200 cm from the
+mineral soil surface.
+PODZOLS
+Other soils having a plinthic, pisoplinthic or petroplinthic horizon
+starting ≤ 100 cm from the mineral soil surface.
+PLINTHOSOLS
+Other soils having an abrupt textural difference ≤ 75 cm from the
+mineral soil surface and having within the range of 5 cm directly
+above or below the abrupt textural difference:
+1. stagnic properties, in which the area of reductimorphic
+features plus the area of oximorphic features is ≥ 50%
+(weighted average, related to the fine earth plus oximorphic
+ features of any size and any cementation class) of the total
+area; and
+2. reducing conditions for some time during the year in some
+parts of the soil volume that has the reductimorphic features.
+PLANOSOLS
+Other soils having:
+1. stagnic properties, in which the area of reductimorphic
+features plus the area of oximorphic features is ≥ one third
+(weighted average, related to the fine earth plus oximorphic
+features of any size and any cementation class) of the area
+from the mineral soil surface to a depth of 60 cm or to
+continuous rock, whichever is shallower; and
+2. reducing conditions for some time during the year in some
+parts of the soil volume that has the reductimorphic features
+within 60 cm from the mineral soil surface or to continuous
+rock, whichever is shallower.
+STAGNOSOLS
+Other soils having:
+1. a nitic horizon starting ≤ 100 cm from the mineral soil surface; and
+2. from the mineral soil surface to the nitic horizon, a clay
+content that is at least half of the weighted average clay
+content of the nitic horizon; and
+3. no vertic horizon starting above or at the upper limit of the
+nitic horizon.
+NITISOLS
+Other soils having:
+1. a ferralic horizon starting ≤ 150 cm from the mineral soil
+surface; and
+2. no argic horizon starting above or at the upper limit of the
+ferralic horizon, unless the argic horizon has, in its upper
+30 cm or throughout, whichever is shallower, one or more of
+the following:
+a. < 10% water-dispersible clay; or
+b. a ΔpH (pHKCl - pHwater) ≥ 0 (both in 1:1 solution); or
+c. ≥ 1.4% soil organic carbon.
+FERRALSOLS
+Other soils having:
+1. a chernic horizon; and
+2. starting ≤ 50 cm below the lower limit of the mollic4 horizon
+and, if present, above a petrocalcic horizon, a layer with
+protocalcic properties, ≥ 5 cm thick, or a calcic horizon; and
+3. a base saturation (by 1 M NH4OAc, pH 7)5 of ≥ 50% from the
+mineral soil surface to the layer with protocalcic properties or
+to the calcic horizon, throughout.
+CHERNOZEMS
+Other soils having:
+1. a mollic horizon; and
+2. starting ≤ 70 cm of the mineral soil surface and, if present,
+above a petrocalcic horizon, a layer with protocalcic
+properties, ≥ 5 cm thick, or a calcic horizon; and
+3. a base saturation (by 1 M NH4OAc, pH 7)6 of ≥ 50% from the
+mineral soil surface to the layer with protocalcic properties or
+to the calcic horizon, throughout.
+KASTANOZEMS
+Other soils having:
+1. a mollic horizon; and
+2. a base saturation (by 1 M NH4OAc, pH 7)7 of ≥ 50%
+throughout to a depth of 100 cm from the mineral soil surface
+or to a limiting layer, whichever is shallower.
+PHAEOZEMS
+Other soils having an umbric or mollic or hortic horizon.
+UMBRISOLS
+Other soils having a petroduric or duric horizon starting ≤ 100 cm
+from the mineral soil surface.
+DURISOLS
+Other soils having:
+1. a gypsic or petrogypsic horizon starting ≤ 100 cm from the
+mineral soil surface; and
+2. no argic horizon starting above or at the upper limit of the
+gypsic or petrogypsic horizon, unless the argic horizon
+contains secondary gypsum or secondary carbonates,
+throughout.
+GYPSISOLS
+Other soils having:
+1. a calcic or petrocalcic horizon starting ≤ 100 cm from the
+mineral soil surface; and
+2. no argic horizon starting above or at the upper limit of the
+calcic or petrocalcic horizon unless the argic horizon contains
+secondary carbonates, throughout.
+CALCISOLS
+Other soils having an argic horizon starting ≤ 100 cm from the
+mineral soil surface and having retic properties at its upper
+boundary.
+RETISOLS
+119 18 December 2022
+Key to the Reference Soil Groups Principal qualifiers Supplementary
+qualifiers
+Other soils having:
+1. an argic horizon starting ≤ 100 cm from the mineral soil
+surface;
+and
+2. a CEC (by 1 M NH4OAc, pH 7) of < 24 cmolc kg-1 clay in
+some subhorizon of the argic horizon within 150 cm of the
+mineral soil surface;
+and
+3. exchangeable Al > exchangeable (Ca+Mg+K+Na)8 in half or
+more of:
+a. the depth range between 50 and 100 cm of the mineral soil
+surface; or
+b. the lower half of the mineral soil above a limiting layer
+starting ≤ 100 cm from the mineral soil surface,
+whichever is shallower.
+ACRISOLS
+Other soils having:
+1. an argic horizon starting ≤ 100 cm from the mineral soil
+surface; and
+2. a CEC (by 1 M NH4OAc, pH 7) of < 24 cmolc kg-1 clay in
+some subhorizon of the argic horizon within 150 cm of the
+mineral soil surface.
+LIXISOLS
+Other soils having:
+1. an argic horizon starting ≤ 100 cm from the mineral soil
+surface;
+and
+2. exchangeable Al > exchangeable (Ca+Mg+K+Na)9 in half or
+more of:
+a. the depth range between 50 and 100 cm of the mineral soil
+surface; or
+b. the lower half of the mineral soil above a limiting layer
+starting ≤ 100 cm from the mineral soil surface
+whichever is shallower.
+ALISOLS
+Other soils having an argic horizon starting ≤ 100 cm from the
+mineral soil surface.
+LUVISOLS
+Other soils having:
+1. a cambic horizon
+a. starting ≤ 50 cm from the mineral soil surface; and
+b. having its lower limit ≥ 25 cm from the mineral soil
+surface; or
+2. an anthraquic, hydragric, irragric, plaggic, pretic or terric
+horizon; or
+3. a fragic, thionic or vertic horizon starting ≤ 100 cm from the
+mineral soil surface; or
+4. a tsitelic horizon with a texture class of sandy loam or finer,
+starting ≤ 50 cm from the mineral soil surface; or
+5. one or more layers with andic or vitric properties with a
+combined thickness of ≥ 15 cm within 100 cm of the soil
+surface.
+CAMBISOLS
+Other soils having fluvic material:
+1. ≥ 25 cm thick and starting ≤ 25 cm from the mineral soil
+surface; or
+2. from the lower limit of a plough layer, ≤ 40 cm thick, to a
+depth of ≥ 50 cm from the mineral soil surface.
+FLUVISOLS
+Other soils having within 100 cm of the mineral soil surface:
+1. a weighted average texture class of loamy sand or sand; and
+2. layers of finer texture, if present, with a combined thickness of
+< 15 cm; and
+3. layers with ≥ 40% (by volume, related to the whole soil)
+coarse fragments, if present, with a combined thickness of
+< 15 cm.
+ARENOSOLS
+Other soils:
+REGOSOLS
diff --git a/misc/WRB2022/WRB_SQ.txt b/misc/WRB2022/WRB_SQ.txt
new file mode 100644
index 0000000..b08e569
--- /dev/null
+++ b/misc/WRB2022/WRB_SQ.txt
@@ -0,0 +1,972 @@
+Supplementary qualifiers
+Alcalic/ Dystric/ Eutric
+Aric
+Bryic
+Dolomitic/ Calcaric
+Fluvic
+Gelic
+Hyperorganic
+Isolatic
+Lignic
+Limnic
+Limonic
+Mineralic
+Mulmic
+Ornithic
+Placic
+Pyric
+Relocatic
+Salic
+Sulfidic
+Technic/ Kalaic
+Tephric
+Toxic
+Transportic
+Turbic
+Wapnic
+HISTOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Acric/ Lixic/ Alic/ Luvic
+Alcalic/ Dystric/ Eutric
+Calcic
+Carbonic
+Dolomitic/ Calcaric
+Drainic
+Escalic
+Fluvic
+Glossic/ Retic
+Endoleptic/ Endothyric
+Novic
+Oxyaquic
+Panpaic
+Pyric
+Salic
+Skeletic
+Sodic
+Spodic
+Technic/ Kalaic
+Toxic
+Vertic
+Vitric
+ANTHROSOLS
+Supplementary qualifiers
+Arenic/ Clayic/
+Loamic/ Siltic
+Geoabruptic
+Alcalic/ Dystric/ Eutric
+Anthraquic/ Irragric/
+Hortic/ Plaggic/ Pretic/
+Terric
+Archaic
+Calcic
+Cambic
+Carbonic
+Chernic/ Mollic/
+Umbric
+Densic
+Dolomitic/ Calcaric
+Drainic
+Ferritic
+Fluvic
+Folic/ Histic
+Fractic
+Gelic
+Gypsic
+Gypsiric
+Humic/ Ochric
+Hyperartefactic
+Immissic
+Laxic
+Lignic
+Limnic
+Magnesic
+Mahic
+Novic
+Oxyaquic
+Panpaic/ Raptic
+Protic
+Pyric
+Relocatic
+Salic
+Sideralic
+Skeletic
+Sodic
+Solimovic
+Protospodic
+Sulfidic
+Tephric
+Thionic
+Toxic
+Transportic
+Vitric
+TECHNOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Albic
+Alcalic/ Dystric/ Eutric
+Biocrustic
+Dolomitic/ Calcaric
+Drainic
+Epic/ Endic/ Dorsic
+Evapocrustic/ Puffic
+Fluvic
+Folic
+Gypsiric
+Humic/ Ochric
+Limnic
+Magnesic
+Nechic
+Novic
+Ornithic
+Pyric
+Raptic
+Sodic
+Sulfidic
+Technic/ Kalaic
+Tephric
+Thixotropic
+Toxic
+Transportic
+Vitric
+CRYOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Aeolic
+Aric
+Biocrustic
+Drainic
+Fluvic
+Gelic
+Gleyic
+Humic/ Ochric
+Isolatic
+Lapiadic
+Magnesic
+Nechic
+Novic
+Ornithic
+Oxyaquic
+Panpaic/ Raptic
+Placic
+Protic
+Pyric
+Salic
+Sodic
+Solimovic
+Protospodic
+Stagnic
+Sulfidic
+Technic/ Kalaic
+Tephric
+Toxic
+Transportic
+Turbic
+Protovertic
+Vitric
+LEPTOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Aeolic
+Biocrustic
+Neocambic/ Neobrunic
+Chromic
+Columnic
+Cutanic
+Differentic
+Duric
+Epic/ Endic
+Ferric
+Fluvic
+Fractic
+Humic/ Ochric
+Magnesic
+Hypernatric
+Novic
+Oxyaquic
+Petroplinthic
+Pyric
+Raptic
+Retic
+Skeletic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+SOLONETZ
+Supplementary qualifiers
+Alcalic/ Endodystric
+Aric
+Chernic/ Mollic
+Dolomitic/ Calcaric
+Drainic
+Hypereutric
+Epic/ Endic
+Ferric
+Fractic
+Gilgaic
+Gleyic
+Grumic/ Mazic/ Pelocrustic
+Gypsiric
+Humic/ Ochric
+Magnesic
+Novic
+Oxyaquic
+Pyric
+Raptic
+Skeletic
+Stagnic
+Sulfidic
+Takyric
+Technic/ Kalaic
+Thionic
+Toxic
+Transportic
+VERTISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Aceric
+Aeolic
+Alcalic
+Biocrustic
+Carbonatic/ Chloridic/
+Sulfatic
+Densic
+Dolomitic/ Calcaric
+Drainic
+Duric
+Evapocrustic/ Puffic
+Folic/ Histic
+Fractic
+Gelic
+Gypsiric
+Humic/ Ochric
+Magnesic
+Novic
+Oxyaquic
+Panpaic/ Raptic
+Pyric
+Hypersalic
+Skeletic
+Solimovic
+Sulfidic
+Technic/ Kalaic
+Endothionic
+Toxic
+Transportic
+Turbic
+Vertic
+SOLONCHAKS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Acric/ Lixic/ Alic/ Luvic
+Alcalic
+Arenicolic
+Aric
+Drainic
+Ferralic/ Sideralic
+Folic
+Fractic
+Gelic
+Humic/ Ochric
+Inclinic
+Laxic
+Limnic
+Limonic
+Magnesic
+Mulmic
+Nechic
+Novic
+Placic
+Pyric
+Raptic
+Relocatic
+Salic
+Skeletic
+Sodic
+Solimovic
+Sulfidic
+Takyric
+Technic/ Kalaic
+Tephric
+Toxic
+Transportic
+Turbic
+Uterquic
+Vertic
+GLEYSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Protoandic
+Aric
+Dolomitic/ Calcaric
+Drainic
+Eutrosilic/ Acroxic
+Fluvic
+Folic
+Fragic
+Gelic
+Humic/ Ochric
+Mulmic
+Nechic
+Novic
+Oxyaquic
+Panpaic
+Placic
+Posic
+Pyric
+Reductic
+Sideralic
+Sodic
+Solimovic
+Protospodic
+Technic/ Kalaic
+Thixotropic
+Toxic
+Transportic
+Turbic
+ANDOSOLS
+Supplementary qualifiers
+Arenic/ Loamic/ Siltic
+Abruptic
+Aric
+Neocambic/ Neobrunic
+Cordic
+Densic
+Drainic
+Epic/ Endic/ Dorsic
+Eutric
+Folic
+Fragic
+Gelic
+Limonic
+Novic
+Ornithic
+Oxyaquic
+Placic
+Pyric
+Raptic
+Sideralic
+Hyperspodic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+PODZOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Acric/ Lixic
+Aric
+Cohesic
+Drainic
+Duric
+Dystric/ Eutric
+Epic/ Endic
+Folic
+Humic/ Ochric
+Isopteric
+Magnesic
+Novic
+Oxyaquic
+Posic
+Pyric
+Raptic
+Saprolithic
+Technic/ Kalaic
+Toxic
+Transportic
+PLINTHOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Alcalic
+Andic
+Aric
+Cambic
+Capillaric
+Chromic
+Cohesic
+Columnic
+Densic
+Drainic
+Ferralic/ Sideralic
+Ferric
+Folic
+Fragic
+Gelic
+Gelistagnic
+Geric
+Humic/ Ochric
+Inclinic
+Magnesic
+Mochipic
+Nechic
+Novic
+Pyric
+Raptic
+Skeletic
+Sodic
+Solimovic
+Sulfidic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Uterquic
+PLANOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Endoabruptic
+Alcalic
+Aric
+Cambic
+Capillaric
+Cohesic
+Drainic
+Ferralic/ Sideralic
+Ferric
+Folic
+Fragic
+Gelic
+Gelistagnic
+Geric
+Humic/ Ochric
+Inclinic
+Magnesic
+Mochipic
+Nechic
+Nitic
+Novic
+Ornithic
+Pyric
+Raptic
+Rhodic/ Chromic
+Skeletic
+Sodic
+Solimovic
+Protospodic
+Sulfidic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Uterquic
+STAGNOSOLS
+Supplementary qualifiers
+Andic
+Aric
+Densic
+Epic/ Endic
+Ferric
+Endogleyic
+Humic/ Ochric
+Magnesic
+Novic
+Oxyaquic
+Posic
+Pyric
+Raptic
+Sodic
+Endostagnic
+Technic/ Kalaic
+Toxic
+Transportic
+NITISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Activic
+Andic
+Aric
+Cohesic
+Densic
+Dystric/ Eutric
+Epic/ Endic/ Dorsic
+Ferric
+Fluvic
+Folic
+Humic/ Ochric
+Isopteric
+Litholinic
+Novic
+Oxyaquic
+Posic
+Pyric
+Raptic
+Saprolithic
+Solimovic
+Sombric
+Technic/ Kalaic
+Toxic
+Transportic
+FERRALSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
+Anthric
+Aric
+Chromic
+Densic
+Fractic
+Gelic
+Humic
+Laxic
+Magnesic
+Novic
+Oxyaquic
+Pachic
+Panpaic/ Raptic
+Pyric
+Salic
+Sodic
+Solimovic
+Sombric
+Stagnic
+Technic/ Kalaic
+Tephric
+Transportic
+Turbic
+Vitric
+KASTANOZEMS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Albic
+Andic
+Anthric
+Aric
+Columnic
+Densic
+Ferralic/ Sideralic
+Folic
+Fractic
+Humic
+Isolatic
+Laxic
+Limonic
+Magnesic
+Nechic
+Novic
+Oxyaquic
+Pachic
+Panpaic/ Raptic
+Pyric
+Relocatic
+Rhodic/ Chromic
+Salic
+Sodic
+Solimovic
+Sombric
+Technic/ Kalaic
+Tephric
+Transportic
+Turbic
+Vitric
+PHAEOZEMS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Albic
+Andic
+Anthric
+Aric
+Densic
+Drainic
+Hyperdystric/ Eutric
+Ferralic/ Sideralic
+Folic
+Gelic
+Humic
+Isolatic
+Laxic
+Limonic
+Nechic
+Novic
+Ornithic
+Oxyaquic
+Pachic
+Panpaic/ Raptic
+Placic
+Pyric
+Relocatic
+Rhodic/ Chromic
+Solimovic
+Sombric
+Protospodic
+Sulfidic
+Technic/ Kalaic
+Thionic
+Toxic
+Transportic
+Turbic
+Vitric
+UMBRISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Aeolic
+Aric
+Biocrustic
+Chromic
+Cohesic
+Epic/ Endic
+Gleyic
+Humic/ Ochric
+Isopteric
+Magnesic
+Novic
+Pyric
+Raptic
+Salic
+Sideralic
+Sodic
+Stagnic
+Technic/ Kalaic
+Toxic
+Transportic
+Vertic
+DURISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Abruptic
+Aeolic
+Aric
+Biocrustic
+Epic/ Endic
+Fluvic
+Hypergypsic
+Humic/ Ochric
+Isopteric
+Naramic
+Novic
+Panpaic/ Raptic
+Pyric
+Salic
+Sodic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Vertic
+GYPSISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Aric
+Cutanic
+Densic
+Differentic
+Drainic
+Epic/ Endic
+Folic
+Gelic
+Humic/ Ochric
+Lamellic
+Nechic
+Novic
+Oxyaquic
+Profondic
+Pyric
+Raptic
+Solimovic
+Protospodic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+RETISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
+Aric
+Neocambic/ Neobrunic
+Cohesic
+Cutanic
+Densic
+Differentic
+Hyperdystric/ Epieutric
+Epic/ Endic
+Geric
+Gibbsic
+Humic/ Ochric
+Magnesic
+Nechic
+Nitic
+Novic
+Oxyaquic
+Posic
+Profondic
+Pyric
+Raptic
+Saprolithic
+Sodic
+Solimovic
+Sombric
+Technic/ Kalaic
+Toxic
+Transportic
+Vitric
+ACRISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
+Aric
+Neocambic/ Neobrunic
+Cohesic
+Columnic
+Cutanic
+Densic
+Differentic
+Epidystric/ Hypereutric
+Epic/ Endic
+Fractic
+Geric
+Gibbsic
+Humic/ Ochric
+Magnesic
+Nechic
+Nitic
+Novic
+Oxyaquic
+Profondic
+Pyric
+Raptic
+Saprolithic
+Sodic
+Solimovic
+Technic/ Kalaic
+Toxic
+Transportic
+Vitric
+LIXISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
+Aric
+Neocambic/ Neobrunic
+Cutanic
+Densic
+Differentic
+Hyperdystric/ Epieutric
+Epic/ Endic
+Fluvic
+Folic
+Gelic
+Humic/ Ochric
+Hyperalic
+Magnesic
+Nechic
+Nitic
+Novic
+Oxyaquic
+Profondic
+Pyric
+Raptic
+Sodic
+Solimovic
+Protospodic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Vitric
+ALISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
+Aric
+Neocambic /Neobrunic
+Columnic
+Cutanic
+Densic
+Differentic
+Epidystric/ Hypereutric
+Epic/ Endic
+Escalic
+Fluvic
+Fractic
+Gelic
+Humic/ Ochric
+Magnesic
+Nechic
+Nitic
+Novic
+Oxyaquic
+Profondic
+Pyric
+Raptic
+Sodic
+Solimovic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Vitric
+LUVISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Geoabruptic
+Aeolic
+Alcalic
+Aric
+Biocrustic
+Protocalcic
+Carbonic
+Cohesic
+Columnic
+Densic
+Drainic
+Escalic
+Ferric
+Folic
+Fractic
+Gelic
+Gelistagnic
+Protogypsic
+Humic/ Ochric
+Isopteric
+Laxic
+Limonic
+Litholinic
+Magnesic
+Nechic
+Novic
+Ornithic
+Oxyaquic
+Panpaic/ Raptic
+Pyric
+Salic
+Saprolithic
+Sodic
+Protospodic
+Sulfidic
+Technic/ Kalaic
+Tephric
+Toxic
+Transportic
+Turbic
+CAMBISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Geoabruptic
+Alcalic
+Arenicolic
+Aric
+Protocalcic
+Densic
+Drainic
+Folic
+Gelic
+Humic/ Ochric
+Limnic
+Limonic
+Magnesic
+Nechic
+Oxyaquic
+Panpaic
+Placic
+Pyric
+Salic
+Sideralic
+Sodic
+Sulfidic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Protovertic
+FLUVISOLS
+Supplementary qualifiers
+Geoabruptic
+Alcalic
+Arenicolic
+Aric
+Biocrustic
+Protocalcic
+Carbonic
+Cordic
+Folic
+Gelic
+Protogypsic
+Humic/ Ochric
+Hydrophobic
+Isopteric
+Lamellic/ Protoargic
+Limonic
+Nechic
+Novic
+Ornithic
+Oxyaquic
+Panpaic/ Raptic
+Placic
+Pyric
+Rhodic/ Chromic/ Rubic/
+Claric
+Salic
+Sodic
+Bathyspodic
+Protospodic
+Stagnic
+Sulfidic
+Technic/ Kalaic
+Toxic
+Turbic
+ARENOSOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Geoabruptic
+Alcalic
+Aric
+Biocrustic
+Protocalcic
+Carbonic
+Cordic
+Densic
+Drainic
+Escalic
+Fluvic
+Folic
+Gelic
+Gelistagnic
+Protogypsic
+Humic/ Ochric
+Isolatic
+Isopteric
+Magnesic
+Nechic
+Ornithic
+Oxyaquic
+Panpaic/ Raptic
+Pyric
+Salic
+Saprolithic
+Sodic
+Technic/ Kalaic
+Toxic
+Turbic
+Protovertic
+REGOSOLS

From 0a0b0cd92b4c3e73b8738d868098576eb05199bf Mon Sep 17 00:00:00 2001
From: Andrew Gene Brown <brown.andrewg@gmail.com>
Date: Fri, 16 Feb 2024 05:13:35 -0800
Subject: [PATCH 2/5] fix encoding + docs

---
 R/data-documentation.R  |   9 ++++++---
 data-raw/wrb_4th_2022.R |   1 +
 data/wrb_4th_2022.rda   | Bin 6447 -> 6457 bytes
 man/wrb_4th_2022.Rd     |  26 ++++++++++++++++++++++++++
 misc/.gitignore         |   2 +-
 5 files changed, 34 insertions(+), 4 deletions(-)
 create mode 100644 man/wrb_4th_2022.Rd

diff --git a/R/data-documentation.R b/R/data-documentation.R
index 39de3de..816cf4f 100644
--- a/R/data-documentation.R
+++ b/R/data-documentation.R
@@ -96,13 +96,15 @@
 #'
 "ST_higher_taxa_codes_13th"
 
-#' World Reference Base for Soil Resources (4th Edition , 2022)
+#' World Reference Base for Soil Resources (4th Edition, 2022)
 #'
 #' A _list_ containing three _data.frame_ elements `"rsg"`, `"pq"`, and `"sq"` providing information on the 'Representative Soil Groups', 'Principal Qualifiers,' and 'Supplementary Qualifiers,' respectively.
 #' 
 #' @details
 #' 
-#' Each element has the column `code` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `reference_soil_group` which is the corresponding group name. The _data.frame_ `"rsg"` has column `criteria`, describing the criteria for each Reference Soil Group. The _data.frame_ `"pq"` contains column `"principal_qualifier"` and `"sq"` contains column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash `" / "`
+#' Each element has the column `"code"` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `"reference_soil_group"` which is the corresponding group name. 
+#'  - The _data.frame_ `"rsg"` has column `"criteria"`, describing the logical criteria for each Reference Soil Group. 
+#'  - The _data.frame_ `"pq"` has qualifier names in column `"principal_qualifier"` and `"sq"` has column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash `" / "`
 #'
 #' @references
 #'
@@ -111,4 +113,5 @@
 #' @usage data(wrb_4th_2022)
 #'
 #' @keywords datasets
-#'
\ No newline at end of file
+#'
+"wrb_4th_2022"
\ No newline at end of file
diff --git a/data-raw/wrb_4th_2022.R b/data-raw/wrb_4th_2022.R
index 0bc6a9a..76f6390 100644
--- a/data-raw/wrb_4th_2022.R
+++ b/data-raw/wrb_4th_2022.R
@@ -21,6 +21,7 @@ library(pdftools)
 # 
 
 x <- readLines("misc/WRB2022/WRB_RSG.txt")
+x <- gsub("\u003c", "<", gsub("\u003E", ">", gsub("\u2264", "<=", gsub("\u2265", ">=", x))))
 n <- grep("^[A-Z]+$", x)
 z.names <- x[n]
 x <- x[-n]
diff --git a/data/wrb_4th_2022.rda b/data/wrb_4th_2022.rda
index 38eb6cc6a7b84289bb9975bb28924bf02d36cdbc..2f78c1ab24e406b0b3fceb15f7196883f673ad0b 100644
GIT binary patch
literal 6457
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
T<}%@V|BJaIoG3_M95n%eU$HfC

literal 6447
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
Jp&%2n>_lKAT4?|P

diff --git a/man/wrb_4th_2022.Rd b/man/wrb_4th_2022.Rd
new file mode 100644
index 0000000..54589aa
--- /dev/null
+++ b/man/wrb_4th_2022.Rd
@@ -0,0 +1,26 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/data-documentation.R
+\docType{data}
+\name{wrb_4th_2022}
+\alias{wrb_4th_2022}
+\title{World Reference Base for Soil Resources (4th Edition, 2022)}
+\format{
+An object of class \code{list} of length 3.
+}
+\usage{
+data(wrb_4th_2022)
+}
+\description{
+A \emph{list} containing three \emph{data.frame} elements \code{"rsg"}, \code{"pq"}, and \code{"sq"} providing information on the 'Representative Soil Groups', 'Principal Qualifiers,' and 'Supplementary Qualifiers,' respectively.
+}
+\details{
+Each element has the column \code{"code"} which is a number (1-32) referring to the position in the Reference Soil Groups, and the column \code{"reference_soil_group"} which is the corresponding group name.
+\itemize{
+\item The \emph{data.frame} \code{"rsg"} has column \code{"criteria"}, describing the logical criteria for each Reference Soil Group.
+\item The \emph{data.frame} \code{"pq"} has qualifier names in column \code{"principal_qualifier"} and \code{"sq"} has column \code{"supplementary_qualifier"}. The \code{"pq"} and \code{"sq"} qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash \code{" / "}
+}
+}
+\references{
+IUSS Working Group WRB. 2022. World Reference Base for Soil Resources. International soil classification system for naming soils and creating legends for soil maps. 4th edition. International Union of Soil Sciences (IUSS), Vienna, Austria.
+}
+\keyword{datasets}
diff --git a/misc/.gitignore b/misc/.gitignore
index 21fff61..3905c93 100644
--- a/misc/.gitignore
+++ b/misc/.gitignore
@@ -1,5 +1,5 @@
 *.json
-subgroups.tgz
 .Rproj.user
 .Rhistory
 *.Rproj
+WRB2022/WRB_fourth_edition_2022-12-18.pdf

From f03da16b43ec0b3d7963d0257e6ef798de32c5d2 Mon Sep 17 00:00:00 2001
From: Andrew Gene Brown <brown.andrewg@gmail.com>
Date: Fri, 16 Feb 2024 05:34:06 -0800
Subject: [PATCH 3/5] fix qualifier parsing

---
 data-raw/wrb_4th_2022.R |   2 ++
 data/wrb_4th_2022.rda   | Bin 6457 -> 6475 bytes
 misc/WRB2022/WRB_PQ.txt |   2 ++
 misc/WRB2022/WRB_SQ.txt |  55 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 59 insertions(+)

diff --git a/data-raw/wrb_4th_2022.R b/data-raw/wrb_4th_2022.R
index 76f6390..f64b088 100644
--- a/data-raw/wrb_4th_2022.R
+++ b/data-raw/wrb_4th_2022.R
@@ -90,4 +90,6 @@ wrb_4th_2022 <- list(
   sq  = wrb_sq
 )
 
+stopifnot(all(sapply(wrb_4th_2022, function(x) max(x$code)) == 32))
+
 usethis::use_data(wrb_4th_2022, overwrite = TRUE)
diff --git a/data/wrb_4th_2022.rda b/data/wrb_4th_2022.rda
index 2f78c1ab24e406b0b3fceb15f7196883f673ad0b..88845eeca9d82c28f6ed9ed69497d99b24874490 100644
GIT binary patch
literal 6475
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

literal 6457
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
T<}%@V|BJaIoG3_M95n%eU$HfC

diff --git a/misc/WRB2022/WRB_PQ.txt b/misc/WRB2022/WRB_PQ.txt
index 9a0e87b..cc34978 100644
--- a/misc/WRB2022/WRB_PQ.txt
+++ b/misc/WRB2022/WRB_PQ.txt
@@ -179,6 +179,7 @@ Glossic/ Retic
 Acric/ Alic
 Coarsic
 Skeletic
+PODZOLS
 Principal qualifiers 
 Petric
 Pisoplinthic
@@ -214,6 +215,7 @@ Calcic
 Dolomitic/ Calcaric
 Dystric/ Eutric
 PLANOSOLS
+Principal qualifiers
 Reductic
 Thionic
 Leptic
diff --git a/misc/WRB2022/WRB_SQ.txt b/misc/WRB2022/WRB_SQ.txt
index b08e569..83b1085 100644
--- a/misc/WRB2022/WRB_SQ.txt
+++ b/misc/WRB2022/WRB_SQ.txt
@@ -517,6 +517,31 @@ Supplementary qualifiers
 Arenic/ Clayic/ Loamic/
 Siltic
 Andic
+Aric
+Densic
+Fluvic
+Fractic
+Humic
+Novic
+Oxyaquic
+Pachic
+Pyric
+Raptic
+Salic
+Sodic
+Solimovic
+Sombric
+Stagnic
+Technic/ Kalaic
+Tephric
+Transportic
+Turbic
+Vitric
+CHERNOZEMS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
+Andic
 Anthric
 Aric
 Chromic
@@ -669,6 +694,36 @@ GYPSISOLS
 Supplementary qualifiers
 Arenic/ Clayic/ Loamic/
 Siltic
+Abruptic
+Aeolic
+Aric
+Biocrustic
+Hypercalcic
+Densic
+Epic/ Endic
+Fluvic
+Gelic
+Protogypsic
+Humic/ Ochric
+Isopteric
+Magnesic
+Naramic
+Novic
+Panpaic/ Raptic
+Pyric
+Rhodic/ Chromic
+Salic
+Sodic
+Solimovic
+Technic/ Kalaic
+Toxic
+Transportic
+Turbic
+Vertic
+CALCISOLS
+Supplementary qualifiers
+Arenic/ Clayic/ Loamic/
+Siltic
 Aric
 Cutanic
 Densic

From 3ec0a49ab9ec84a7d25aaa74560571a57c9b3413 Mon Sep 17 00:00:00 2001
From: Andrew Gene Brown <andrew.g.brown@usda.gov>
Date: Tue, 7 May 2024 16:24:50 -0700
Subject: [PATCH 4/5] add `qualifier_group` column for both primary and
 supplementary qualifiers  - used to identify related terms

---
 R/data-documentation.R  |  12 ++++++------
 data-raw/wrb_4th_2022.R |  18 ++++++++++++++----
 data/wrb_4th_2022.rda   | Bin 6475 -> 7957 bytes
 man/wrb_4th_2022.Rd     |   2 +-
 4 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/R/data-documentation.R b/R/data-documentation.R
index 816cf4f..613990a 100644
--- a/R/data-documentation.R
+++ b/R/data-documentation.R
@@ -99,12 +99,12 @@
 #' World Reference Base for Soil Resources (4th Edition, 2022)
 #'
 #' A _list_ containing three _data.frame_ elements `"rsg"`, `"pq"`, and `"sq"` providing information on the 'Representative Soil Groups', 'Principal Qualifiers,' and 'Supplementary Qualifiers,' respectively.
-#' 
+#'
 #' @details
-#' 
-#' Each element has the column `"code"` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `"reference_soil_group"` which is the corresponding group name. 
-#'  - The _data.frame_ `"rsg"` has column `"criteria"`, describing the logical criteria for each Reference Soil Group. 
-#'  - The _data.frame_ `"pq"` has qualifier names in column `"principal_qualifier"` and `"sq"` has column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash `" / "`
+#'
+#' Each element has the column `"code"` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `"reference_soil_group"` which is the corresponding group name.
+#'  - The _data.frame_ `"rsg"` has column `"criteria"`, describing the logical criteria for each Reference Soil Group.
+#'  - The _data.frame_ `"pq"` has qualifier names in column `"principal_qualifier"` and `"sq"` has column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier name columns (`primary_qualifier` and `supplementary_qualifier`) contain individual qualifier terms. Related qualifiers can be identified using `qualifier_group` column which is derived from qualifier names separated with a forward slash `" / "`
 #'
 #' @references
 #'
@@ -114,4 +114,4 @@
 #'
 #' @keywords datasets
 #'
-"wrb_4th_2022"
\ No newline at end of file
+"wrb_4th_2022"
diff --git a/data-raw/wrb_4th_2022.R b/data-raw/wrb_4th_2022.R
index f64b088..dca9da8 100644
--- a/data-raw/wrb_4th_2022.R
+++ b/data-raw/wrb_4th_2022.R
@@ -2,7 +2,7 @@
 library(pdftools)
 
 ## SETUP
-## 
+##
 # dir.create("misc/WRB2022")
 # download.file("https://wrb.isric.org/files/WRB_fourth_edition_2022-12-18.pdf",
 #               destfile = "misc/WRB2022/WRB_fourth_edition_2022-12-18.pdf")
@@ -18,7 +18,7 @@ library(pdftools)
 ## nope
 # x <- pdf_data("misc/WRB2022/WRB_fourth_edition_2022-12-18.pdf")
 # y <- do.call('rbind', x)
-# 
+#
 
 x <- readLines("misc/WRB2022/WRB_RSG.txt")
 x <- gsub("\u003c", "<", gsub("\u003E", ">", gsub("\u2264", "<=", gsub("\u2265", ">=", x))))
@@ -59,7 +59,12 @@ z <- lapply(xx, function(y) {
 names(z) <- z.names
 
 wrb_pq <- do.call('rbind', lapply(seq(z), function(i) {
-  data.frame(code = i, reference_soil_group = z.names[i], principal_qualifiers = z[[z.names[i]]])
+  pq <- lapply(strsplit(z[[z.names[i]]], "/"), trimws)
+  pg <- lapply(seq(pq), function(j) rep(z[[z.names[i]]][j], length(pq[[j]])))
+  data.frame(code = i,
+             reference_soil_group = z.names[i],
+             qualifier_group = unlist(pg),
+             principal_qualifiers = unlist(pq))
 }))
 rownames(wrb_pq) <- NULL
 # View(wrb_pq)
@@ -79,7 +84,12 @@ z <- lapply(xx, function(y) {
 names(z) <- z.names
 
 wrb_sq <- do.call('rbind', lapply(seq(z), function(i) {
-  data.frame(code = i, reference_soil_group = z.names[i], supplementary_qualifiers = z[[z.names[i]]])
+  sq <- lapply(strsplit(z[[z.names[i]]], "/"), trimws)
+  sg <- lapply(seq(sq), function(j) rep(z[[z.names[i]]][j], length(sq[[j]])))
+  data.frame(code = i,
+             reference_soil_group = z.names[i],
+             qualifier_group = unlist(sg),
+             supplementary_qualifiers = unlist(sq))
 }))
 rownames(wrb_sq) <- NULL
 # View(wrb_sq)
diff --git a/data/wrb_4th_2022.rda b/data/wrb_4th_2022.rda
index 88845eeca9d82c28f6ed9ed69497d99b24874490..294e35032d0999cc167a1f80a0a6449b1da6aa6a 100644
GIT binary patch
literal 7957
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
LoG3^%=iRUXJw(ES

literal 6475
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

diff --git a/man/wrb_4th_2022.Rd b/man/wrb_4th_2022.Rd
index 54589aa..94e1bf7 100644
--- a/man/wrb_4th_2022.Rd
+++ b/man/wrb_4th_2022.Rd
@@ -17,7 +17,7 @@ A \emph{list} containing three \emph{data.frame} elements \code{"rsg"}, \code{"p
 Each element has the column \code{"code"} which is a number (1-32) referring to the position in the Reference Soil Groups, and the column \code{"reference_soil_group"} which is the corresponding group name.
 \itemize{
 \item The \emph{data.frame} \code{"rsg"} has column \code{"criteria"}, describing the logical criteria for each Reference Soil Group.
-\item The \emph{data.frame} \code{"pq"} has qualifier names in column \code{"principal_qualifier"} and \code{"sq"} has column \code{"supplementary_qualifier"}. The \code{"pq"} and \code{"sq"} qualifier names may be single qualifiers, or several related qualifiers separated with a forward slash \code{" / "}
+\item The \emph{data.frame} \code{"pq"} has qualifier names in column \code{"principal_qualifier"} and \code{"sq"} has column \code{"supplementary_qualifier"}. The \code{"pq"} and \code{"sq"} qualifier name columns (\code{primary_qualifier} and \code{supplementary_qualifier}) contain individual qualifier terms. Related qualifiers can be identified using \code{qualifier_group} column which is derived from qualifier names separated with a forward slash \code{" / "}
 }
 }
 \references{

From e95198f5a3656eb1afd6ffb365b65aaeb8b03698 Mon Sep 17 00:00:00 2001
From: Andrew Gene Brown <andrew.g.brown@usda.gov>
Date: Mon, 30 Sep 2024 17:07:22 -0700
Subject: [PATCH 5/5] Rename to WRB_4th_2022

---
 DESCRIPTION                              |   2 +-
 R/data-documentation.R                   |  10 ++++++----
 data-raw/wrb_4th_2022.R                  |   8 ++++----
 data/WRB_4th_2022.rda                    | Bin 0 -> 7961 bytes
 data/wrb_4th_2022.rda                    | Bin 7957 -> 0 bytes
 man/{wrb_4th_2022.Rd => WRB_4th_2022.Rd} |  11 ++++++-----
 6 files changed, 17 insertions(+), 14 deletions(-)
 create mode 100644 data/WRB_4th_2022.rda
 delete mode 100644 data/wrb_4th_2022.rda
 rename man/{wrb_4th_2022.Rd => WRB_4th_2022.Rd} (70%)

diff --git a/DESCRIPTION b/DESCRIPTION
index 7a27881..3c99dcb 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -22,7 +22,7 @@ Suggests:
     soilDB,
     ape,
     data.tree
-RoxygenNote: 7.3.1
+RoxygenNote: 7.3.2
 Roxygen: list(markdown = TRUE)
 VignetteBuilder: knitr
 LazyData: false
diff --git a/R/data-documentation.R b/R/data-documentation.R
index 613990a..baf40ef 100644
--- a/R/data-documentation.R
+++ b/R/data-documentation.R
@@ -102,16 +102,18 @@
 #'
 #' @details
 #'
-#' Each element has the column `"code"` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `"reference_soil_group"` which is the corresponding group name.
+#' Each element has the column `"code"` which is a number (1-32) referring to the position in the Reference Soil Groups, and the column `"reference_soil_group"` which is the corresponding group name. The `"pq"` and `"sq"` qualifier name columns (`primary_qualifier` and `supplementary_qualifier`) contain individual qualifier terms. Related qualifiers are identified using `qualifier_group` column derived from qualifier names separated with a forward slash `" / "`
+#'
 #'  - The _data.frame_ `"rsg"` has column `"criteria"`, describing the logical criteria for each Reference Soil Group.
-#'  - The _data.frame_ `"pq"` has qualifier names in column `"principal_qualifier"` and `"sq"` has column `"supplementary_qualifier"`. The `"pq"` and `"sq"` qualifier name columns (`primary_qualifier` and `supplementary_qualifier`) contain individual qualifier terms. Related qualifiers can be identified using `qualifier_group` column which is derived from qualifier names separated with a forward slash `" / "`
+#'  - The _data.frame_ `"pq"` has qualifier names in column `"principal_qualifier"`
+#'  - The _data.frame_ `"sq"` has column `"supplementary_qualifier"`.
 #'
 #' @references
 #'
 #' IUSS Working Group WRB. 2022. World Reference Base for Soil Resources. International soil classification system for naming soils and creating legends for soil maps. 4th edition. International Union of Soil Sciences (IUSS), Vienna, Austria.
 #'
-#' @usage data(wrb_4th_2022)
+#' @usage data(WRB_4th_2022)
 #'
 #' @keywords datasets
 #'
-"wrb_4th_2022"
+"WRB_4th_2022"
diff --git a/data-raw/wrb_4th_2022.R b/data-raw/wrb_4th_2022.R
index dca9da8..1bdfa66 100644
--- a/data-raw/wrb_4th_2022.R
+++ b/data-raw/wrb_4th_2022.R
@@ -1,4 +1,4 @@
-## code to prepare `wrb_4th_2022` dataset goes here
+## code to prepare `WRBs_4th_2022` dataset goes here
 library(pdftools)
 
 ## SETUP
@@ -94,12 +94,12 @@ wrb_sq <- do.call('rbind', lapply(seq(z), function(i) {
 rownames(wrb_sq) <- NULL
 # View(wrb_sq)
 
-wrb_4th_2022 <- list(
+WRB_4th_2022 <- list(
   rsg = wrb_rsg,
   pq  = wrb_pq,
   sq  = wrb_sq
 )
 
-stopifnot(all(sapply(wrb_4th_2022, function(x) max(x$code)) == 32))
+stopifnot(all(sapply(WRB_4th_2022, function(x) max(x$code)) == 32))
 
-usethis::use_data(wrb_4th_2022, overwrite = TRUE)
+usethis::use_data(WRB_4th_2022, overwrite = TRUE)
diff --git a/data/WRB_4th_2022.rda b/data/WRB_4th_2022.rda
new file mode 100644
index 0000000000000000000000000000000000000000..f86d17e57c0f80b2f80a269ad3fa1772df26fda8
GIT binary patch
literal 7961
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
P6aN=-ML1B9r7EFp<(N7D

literal 0
HcmV?d00001

diff --git a/data/wrb_4th_2022.rda b/data/wrb_4th_2022.rda
deleted file mode 100644
index 294e35032d0999cc167a1f80a0a6449b1da6aa6a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 7957
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
LoG3^%=iRUXJw(ES

diff --git a/man/wrb_4th_2022.Rd b/man/WRB_4th_2022.Rd
similarity index 70%
rename from man/wrb_4th_2022.Rd
rename to man/WRB_4th_2022.Rd
index 94e1bf7..566541e 100644
--- a/man/wrb_4th_2022.Rd
+++ b/man/WRB_4th_2022.Rd
@@ -1,23 +1,24 @@
 % Generated by roxygen2: do not edit by hand
 % Please edit documentation in R/data-documentation.R
 \docType{data}
-\name{wrb_4th_2022}
-\alias{wrb_4th_2022}
+\name{WRB_4th_2022}
+\alias{WRB_4th_2022}
 \title{World Reference Base for Soil Resources (4th Edition, 2022)}
 \format{
 An object of class \code{list} of length 3.
 }
 \usage{
-data(wrb_4th_2022)
+data(WRB_4th_2022)
 }
 \description{
 A \emph{list} containing three \emph{data.frame} elements \code{"rsg"}, \code{"pq"}, and \code{"sq"} providing information on the 'Representative Soil Groups', 'Principal Qualifiers,' and 'Supplementary Qualifiers,' respectively.
 }
 \details{
-Each element has the column \code{"code"} which is a number (1-32) referring to the position in the Reference Soil Groups, and the column \code{"reference_soil_group"} which is the corresponding group name.
+Each element has the column \code{"code"} which is a number (1-32) referring to the position in the Reference Soil Groups, and the column \code{"reference_soil_group"} which is the corresponding group name. The \code{"pq"} and \code{"sq"} qualifier name columns (\code{primary_qualifier} and \code{supplementary_qualifier}) contain individual qualifier terms. Related qualifiers are identified using \code{qualifier_group} column derived from qualifier names separated with a forward slash \code{" / "}
 \itemize{
 \item The \emph{data.frame} \code{"rsg"} has column \code{"criteria"}, describing the logical criteria for each Reference Soil Group.
-\item The \emph{data.frame} \code{"pq"} has qualifier names in column \code{"principal_qualifier"} and \code{"sq"} has column \code{"supplementary_qualifier"}. The \code{"pq"} and \code{"sq"} qualifier name columns (\code{primary_qualifier} and \code{supplementary_qualifier}) contain individual qualifier terms. Related qualifiers can be identified using \code{qualifier_group} column which is derived from qualifier names separated with a forward slash \code{" / "}
+\item The \emph{data.frame} \code{"pq"} has qualifier names in column \code{"principal_qualifier"}
+\item The \emph{data.frame} \code{"sq"} has column \code{"supplementary_qualifier"}.
 }
 }
 \references{