data trove glottolog languoids
Reading
This dataset is a comprehensive catalogue of the world's languoids from Glottolog, covering 23,740 entries that span dialects (10,920), languages (8,481), and language families (4,339). The most striking pattern is in endangerment status: while the majority (18,965) are marked 'safe', nearly 4,800 entries are endangered, extinct, or vulnerable — worth examining closely against family and geographic distribution. A second area of interest is the highly skewed child-count columns: most languoids have zero children (74% for dialects, 82% for languages), but a handful of nodes have hundreds or even thousands of descendants, suggesting a very uneven tree structure. Geographic coverage is also notably incomplete, with latitude and longitude missing for 66% of rows, limiting spatial analysis to a subset of the data.
citing: row_count · level.top_values · status.top_values · child_dialect_count.zero_rate · child_dialect_count.max · child_language_count.zero_rate · child_language_count.max · latitude.null_rate · family_id.top_values · country_ids.top_values
Charts the summary said to look at first
Show data table
| value | count | share |
|---|---|---|
| safe | 18965 | 79.9% |
| definitely endangered | 1814 | 7.6% |
| vulnerable | 1194 | 5.0% |
| extinct | 889 | 3.7% |
| critically endangered | 465 | 2.0% |
| severely endangered | 413 | 1.7% |
Show data table
| value | count | share |
|---|---|---|
| dialect | 10920 | 46.0% |
| language | 8481 | 35.7% |
| family | 4339 | 18.3% |
Show data table
| bin | count |
|---|---|
| 0 – 59.23 | 23575 |
| 59.23 – 118.5 | 99 |
| 118.5 – 177.7 | 24 |
| 177.7 – 236.9 | 18 |
| 236.9 – 296.1 | 4 |
| 296.1 – 355.4 | 2 |
| 355.4 – 414.6 | 0 |
| 414.6 – 473.8 | 1 |
| 473.8 – 533 | 1 |
| 533 – 592.2 | 1 |
| 592.2 – 651.5 | 1 |
| 651.5 – 710.7 | 2 |
| 710.7 – 769.9 | 0 |
| 769.9 – 829.1 | 1 |
| 829.1 – 888.4 | 0 |
| 888.4 – 947.6 | 3 |
| 947.6 – 1007 | 0 |
| 1007 – 1066 | 0 |
| 1066 – 1125 | 1 |
| 1125 – 1184 | 1 |
| 1184 – 1244 | 0 |
| 1244 – 1303 | 0 |
| 1303 – 1362 | 1 |
| 1362 – 1421 | 0 |
| 1421 – 1481 | 0 |
| 1481 – 1540 | 0 |
| 1540 – 1599 | 1 |
| 1599 – 1658 | 0 |
| 1658 – 1718 | 0 |
| 1718 – 1777 | 0 |
| 1777 – 1836 | 1 |
| 1836 – 1895 | 1 |
| 1895 – 1954 | 0 |
| 1954 – 2014 | 0 |
| 2014 – 2073 | 0 |
| 2073 – 2132 | 0 |
| 2132 – 2191 | 0 |
| 2191 – 2251 | 1 |
| 2251 – 2310 | 0 |
| 2310 – 2369 | 1 |
Show data table
| value | count | share |
|---|---|---|
| atla1278 | 4663 | 19.6% |
| aust1307 | 3850 | 16.2% |
| indo1319 | 2201 | 9.3% |
| sino1245 | 1666 | 7.0% |
| afro1255 | 1259 | 5.3% |
| nucl1709 | 762 | 3.2% |
| pama1250 | 598 | 2.5% |
| aust1305 | 503 | 2.1% |
| book1242 | 399 | 1.7% |
| otom1299 | 338 | 1.4% |
| mand1469 | 303 | 1.3% |
| sign1238 | 259 | 1.1% |
| drav1251 | 255 | 1.1% |
| cent2225 | 251 | 1.1% |
| turk1311 | 229 | 1.0% |
| taik1256 | 223 | 0.9% |
| nilo1247 | 201 | 0.8% |
| ural1272 | 185 | 0.8% |
| japo1237 | 179 | 0.8% |
| tupi1275 | 157 | 0.7% |
Show data table
| value | count | share |
|---|---|---|
| PG | 874 | 3.7% |
| ID | 695 | 2.9% |
| NG | 480 | 2.0% |
| AU | 432 | 1.8% |
| IN | 356 | 1.5% |
| MX | 297 | 1.3% |
| CN | 271 | 1.1% |
| BR | 263 | 1.1% |
| US | 247 | 1.0% |
| CM | 196 | 0.8% |
| PH | 177 | 0.7% |
| CD | 156 | 0.7% |
| VU | 118 | 0.5% |
| SD | 99 | 0.4% |
| PE | 97 | 0.4% |
| TZ | 93 | 0.4% |
| MY | 90 | 0.4% |
| TD | 88 | 0.4% |
| RU | 83 | 0.3% |
| CO | 82 | 0.3% |
Schema
16 columns| Alerts | ||||
|---|---|---|---|---|
| id | text | 0.0% | 23,740 |
near_unique
one_word
short_text
|
| family_id | categorical | 1.8% | 287 |
|
| parent_id | text | 1.8% | 7,338 |
one_word
short_text
duplicates
|
| name | text | 0.0% | 23,740 |
near_unique
one_word
|
| bookkeeping | categorical | 0.0% | 2 |
imbalance
|
| level | categorical | 0.0% | 3 |
|
| status | categorical | 0.0% | 6 |
|
| latitude | numeric | 66.5% | 7,798 |
null_rate
|
| longitude | numeric | 66.5% | 7,757 |
null_rate
|
| iso639P3code | text | 66.4% | 7,968 |
near_unique
one_word
null_rate
short_text
|
| description | unknown | 0.0% | — |
skipped
|
| markup_description | unknown | 0.0% | — |
skipped
|
| child_family_count | numeric | 0.0% | 88 |
high_skew
outliers
|
| child_language_count | numeric | 0.0% | 126 |
high_skew
outliers
|
| child_dialect_count | numeric | 0.0% | 164 |
high_skew
outliers
|
| country_ids | categorical | 64.2% | 680 |
null_rate
|
id
text identifier near_unique one_word short_textThis column is a structured language or dialect identifier, following the Glottolog-style 8-character code pattern (4 letters + 4 digits, e.g. 'tibe1272', 'east2553'). All 23,740 values are exactly 8 characters long (len_min/max/mean/median all equal 8) with zero nulls and zero duplicates, making it a perfect primary key. The top_words sample aligns precisely with Glottolog languoid codes, suggesting this is a linguistic database. No anomalies — the column is unusually clean. Treatment: Retain as primary key; left-join on this id to enrich with Glottolog metadata.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 23,740
- len_min
- 8
- len_max
- 8
- len_mean
- 8
- len_median
- 8
- len_p95
- 8
- word_mean
- 1
- word_median
- 1
- n_empty
- 0
- n_duplicates
- 0
- duplicate_rate
- 0
- vocab_size
- 20,000
- readability_flesch_mean
- 86.11
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 1
- allcaps_rate
- 0
- boilerplate_rate
- 0
family_id
categorical foreign_keyThis column represents language family identifiers, using Glottolog-style codes (e.g., 'atla1278' = Atlantic-Congo, 'aust1307' = Austronesian, 'indo1319' = Indo-European). With only 287 unique values across 23,740 rows it acts as a low-to-medium cardinality grouping key for linguistic families. The top value 'atla1278' is notably dominant at 20.0% of rows (4,663 records), and the top two families together account for roughly 36% of the dataset, signalling a heavily skewed distribution toward large African and Pacific language families. Treatment: Left-join on this id to a language-family reference table; use as a categorical grouping variable or fixed effect in models, noting the severe class imbalance toward 'atla1278' and 'aust1307'.
- n
- 23,740
- nulls
- 429 (1.8%)
- unique
- 287
- top_value
- atla1278
- top_rate
- 0.2
- cardinality
- 287
- entropy
- 4.886
- entropy_ratio
- 0.5984
parent_id
text foreign_key one_word short_text duplicatesThis column contains Glottolog language family or clade identifiers — fixed 8-character alphanumeric codes (e.g. 'book1242', 'pidg1258') linking each row to a parent node in a linguistic taxonomy. Every value is exactly 8 characters long (len_min=8, len_max=8) and all are single tokens (one_word_rate=1.0), consistent with Glottolog's standardised glottocode format. The duplicate rate is notably high at 68.5%, with 'book1242' appearing 399 times, indicating many child languages share the same parent grouping — expected for a hierarchical classification. Null rate is low at 1.81%, suggesting most records have a resolvable parent. Treatment: Left-join on this id against a Glottolog taxonomy table to enrich with family-level linguistic metadata.
- n
- 23,740
- nulls
- 429 (1.8%)
- unique
- 7,338
- len_min
- 8
- len_max
- 8
- len_mean
- 8
- len_median
- 8
- len_p95
- 8
- word_mean
- 1
- word_median
- 1
- n_empty
- 0
- n_duplicates
- 15,973
- duplicate_rate
- 0.6852
- vocab_size
- 7,189
- readability_flesch_mean
- 91.19
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 1
- allcaps_rate
- 0
- boilerplate_rate
- 0
name
text label near_unique one_wordThis column contains names of linguistic or geographic entities — likely language varieties, dialects, or regional groupings, as evidenced by top words such as 'nuclear', 'central', 'western', 'eastern', 'northern', 'southern', 'language', and 'sign'. All 23,740 rows are unique with zero nulls and zero duplicates, making this a perfect natural-language identifier. Surprisingly, 69.5% of values are single words despite a mean length of ~9.95 characters, suggesting a mix of short atomic names and multi-word descriptors (up to 58 characters), with a vocabulary of 17,915 distinct tokens across the corpus. Treatment: Use as a human-readable label or index key; tokenize and embed if semantic similarity between names is needed downstream.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 23,740
- len_min
- 1
- len_max
- 58
- len_mean
- 9.95
- len_median
- 8
- len_p95
- 22
- word_mean
- 1.398
- word_median
- 1
- n_empty
- 0
- n_duplicates
- 0
- duplicate_rate
- 0
- vocab_size
- 17,915
- readability_flesch_mean
- 42.62
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 0.6953
- allcaps_rate
- 0.0001685
- boilerplate_rate
- 0
bookkeeping
categorical label imbalanceThis column is a boolean flag (stored as strings 'True'/'False') indicating whether a record has some bookkeeping status applied — likely a soft-delete, correction, or administrative override marker. The distribution is severely imbalanced: 98.3% of rows are 'False' (23,341) versus only 1.7% 'True' (399), which triggered the imbalance alert. The entropy of 0.123 confirms near-zero information variance, meaning this flag is rarely set. Analysts should treat the 'True' minority with care as it may mark records to exclude or handle separately. Treatment: Use as a filter or stratification variable; if modelling, oversample or reweight the 399 'True' cases, or exclude them if they represent invalid/corrected records.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 2
- top_value
- False
- top_rate
- 0.9832
- cardinality
- 2
- entropy
- 0.1231
- entropy_ratio
- 0.1231
level
categorical labelThis column classifies linguistic entities into one of three hierarchical levels: 'dialect', 'language', and 'family', suggesting the dataset concerns a linguistic taxonomy or inventory (e.g., Ethnologue-style data). With only 3 unique values across 23,740 rows and zero nulls, it is a clean, fully populated categorical field. Notably, 'dialect' is the modal class at ~46% (10,920), followed by 'language' at ~35.7% (8,481) and 'family' at ~18.3% (4,339) — the class imbalance is moderate but not severe. The entropy ratio of 0.943 is surprisingly high for a 3-class variable, indicating near-uniform distribution across categories. Treatment: One-hot encode or ordinal-encode (dialect < language < family) depending on whether hierarchy is meaningful to the model.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 3
- top_value
- dialect
- top_rate
- 0.46
- cardinality
- 3
- entropy
- 1.494
- entropy_ratio
- 0.9426
status
categorical labelThis column represents a conservation or endangerment status classification, most likely for languages or species, with 6 distinct ordinal categories ranging from 'safe' to 'extinct'. The distribution is heavily skewed: 'safe' dominates at nearly 80% of records (18,965 of 23,740), while the threatened categories collectively account for only ~20%. The low entropy ratio (0.445) confirms this imbalance, and analysts building classification models should expect a significant class imbalance problem. Treatment: Encode as ordinal (safe < vulnerable < severely endangered < definitely endangered < critically endangered < extinct) and apply class-imbalance mitigation (e.g., oversampling or class weights) before modelling.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 6
- top_value
- safe
- top_rate
- 0.7989
- cardinality
- 6
- entropy
- 1.15
- entropy_ratio
- 0.4447
latitude
numeric feature null_rateThis column contains geographic latitude values for records in the dataset, spanning from -55.27° (southern South America or similar) to 73.14° (Arctic latitudes), consistent with global coverage. The most striking issue is a 66.54% null rate — two-thirds of rows lack a latitude value, which severely limits spatial analysis. The distribution is mildly right-skewed (skew 0.54) with a mean of ~8.2° and median of ~6.3°, suggesting a concentration of records in tropical/equatorial regions. Only 129 outliers are flagged (1.6%), so the non-null values themselves appear geographically plausible. Treatment: Investigate and impute or filter nulls (66.54% missing) before use; pair with longitude for spatial modelling or clustering.
- n
- 23,740
- nulls
- 15,797 (66.5%)
- unique
- 7,798
- min
- -55.27
- max
- 73.14
- mean
- 8.17
- median
- 6.306
- std
- 18.96
- q1
- -5.137
- q3
- 19.34
- iqr
- 24.47
- skew
- 0.5403
- kurtosis
- 0.3006
- n_outliers
- 129
- outlier_rate
- 0.01624
- zero_rate
- 0
longitude
numeric feature null_rateThis column represents geographic longitude, covering nearly the full global range from –178.785° to 179.306°. The null rate of 66.54% is a critical alert — two-thirds of records lack a coordinate, which may indicate missing geolocation data for a large subset of entities. The IQR of ~117° and std of ~81° confirm values are broadly distributed across hemispheres, and the mean (51.27°) skewing toward positive (Eastern) longitudes with a median of 47.72° suggests a concentration in Europe/Asia. Only 13 outliers are flagged despite the extreme range, consistent with legitimate global coordinates rather than data entry errors. Treatment: Investigate and impute or filter the 66.54% null records before use; pair with latitude for geospatial modelling or clustering.
- n
- 23,740
- nulls
- 15,797 (66.5%)
- unique
- 7,757
- min
- -178.8
- max
- 179.3
- mean
- 51.27
- median
- 47.72
- std
- 81.14
- q1
- 7.235
- q3
- 124.1
- iqr
- 116.9
- skew
- -0.4832
- kurtosis
- -0.7745
- n_outliers
- 13
- outlier_rate
- 0.001637
- zero_rate
- 0
iso639P3code
text foreign_key near_unique one_word null_rate short_textThis column contains ISO 639-3 language codes — standardised three-letter identifiers for individual languages (e.g., 'aiz', 'kbt', 'mij'). Every non-null value is exactly 3 characters long (min=3, max=3, mean=3.0) and appears only once, yielding 7,968 unique codes across 7,968 vocabulary entries with zero duplicates — consistent with a lookup or reference table of distinct languages. The striking concern is a 66.44% null rate, meaning two-thirds of the 23,740 rows carry no code at all, which likely reflects languages or entries not yet mapped to an ISO 639-3 identifier. Treatment: Left-join on this code to enrich with ISO 639-3 language metadata; investigate and impute or flag the 66.44% nulls before joining.
- n
- 23,740
- nulls
- 15,772 (66.4%)
- unique
- 7,968
- len_min
- 3
- len_max
- 3
- len_mean
- 3
- len_median
- 3
- len_p95
- 3
- word_mean
- 1
- word_median
- 1
- n_empty
- 0
- n_duplicates
- 0
- duplicate_rate
- 0
- vocab_size
- 7,968
- readability_flesch_mean
- 119.5
- emoji_rate
- 0
- url_rate
- 0
- one_word_rate
- 1
- allcaps_rate
- 0
- boilerplate_rate
- 0
description
unknown free_text skippedThis column contains textual descriptions with zero null values across 23,740 rows. The profile was skipped by saturn, so no uniqueness, length, or token statistics are available — the column's exact nature (short labels vs. long free text) cannot be determined from the evidence. The 'skipped' alert and absent stats dict suggest the profiler either timed out or excluded this column type from deep analysis. Treatment: Tokenize and embed before modelling, or apply NLP preprocessing (stopword removal, TF-IDF/sentence embeddings) depending on downstream task.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- —
markup_description
unknown free_text skippedThis column contains markup or formatted description text (likely HTML, Markdown, or similar) across 23,740 rows with zero nulls. The profiler skipped detailed analysis — indicated by the 'skipped' alert — so no uniqueness, length, or content statistics are available. Without further inspection, the content type and cardinality are unknown, but the name strongly implies free-form or templated descriptive text with embedded formatting syntax. Treatment: Strip markup tags, then tokenize and embed before modelling, or inspect raw values to confirm structure before deciding on parsing strategy.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- —
child_family_count
numeric feature high_skew outliersThis column counts the number of children or family members associated with a record, with 90.8% of values being exactly zero and a median of 0.0 — meaning the vast majority of subjects have no associated family/child count. The distribution is extraordinarily right-skewed (skew = 44.4, kurtosis = 2352.9) with a max of 859.0 and 2,179 outliers (9.2% of rows), suggesting a small subset of records have implausibly large counts that warrant investigation for data-entry errors or aggregation anomalies. Treatment: Investigate extreme values (max 859.0) for data errors; consider capping/winsorizing at a defensible threshold, then apply log1p transform before modelling.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 88
- min
- 0
- max
- 859
- mean
- 0.8792
- median
- 0
- std
- 13.2
- q1
- 0
- q3
- 0
- iqr
- 0
- skew
- 44.4
- kurtosis
- 2353
- n_outliers
- 2,179
- outlier_rate
- 0.09179
- zero_rate
- 0.9082
child_language_count
numeric feature high_skew outliersThis column counts the number of child languages associated with a record, likely in a linguistic or taxonomy dataset. The distribution is extremely right-skewed (skew = 41.86, kurtosis = 2115.08): 81.7% of rows have a value of zero, the median is 0.0, and the IQR is 0.0, yet the mean is ~2.0 and the max reaches 1,435. This implies a small number of parent-language nodes dominate with very large child counts, while most entries are leaf nodes with no children. Over 18% of rows (4,339) are flagged as outliers, reinforcing the extreme concentration at zero with a long, sparse upper tail. Treatment: Log-transform (log1p) or apply a zero-inflated model; consider a binary 'has_children' flag as a complementary feature given the 81.7% zero rate.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 126
- min
- 0
- max
- 1,435
- mean
- 1.996
- median
- 0
- std
- 23.41
- q1
- 0
- q3
- 0
- iqr
- 0
- skew
- 41.86
- kurtosis
- 2115
- n_outliers
- 4,339
- outlier_rate
- 0.1828
- zero_rate
- 0.8172
child_dialect_count
numeric feature high_skew outliersThis column counts the number of child dialects associated with each record in what appears to be a linguistic or language-taxonomy dataset. The distribution is extreme: 74.4% of rows have zero child dialects, the median is 0, and the IQR is just 0–1, yet the mean is 3.39 and the maximum reaches 2369—producing a skew of 42.2 and a kurtosis of 2159.3. Nearly 18% of rows (4,272) are flagged as outliers, indicating a small number of language/dialect nodes act as hubs with enormous fan-out while the vast majority are leaf nodes. Treatment: Log-transform (log1p) before regression or distance-based modelling; consider also a binary 'has_children' flag and a separate high-cardinality indicator given the extreme outliers.
- n
- 23,740
- nulls
- 0 (0.0%)
- unique
- 164
- min
- 0
- max
- 2,369
- mean
- 3.389
- median
- 0
- std
- 36.8
- q1
- 0
- q3
- 1
- iqr
- 1
- skew
- 42.22
- kurtosis
- 2159
- n_outliers
- 4,272
- outlier_rate
- 0.1799
- zero_rate
- 0.7442
country_ids
categorical feature null_rateThis column contains ISO 3166-1 alpha-2 country codes, functioning as a categorical geographic identifier for each record. The most striking issue is its 64.24% null rate, meaning nearly two-thirds of the 23,740 rows carry no country information. Among populated rows, Papua New Guinea ('PG') dominates at 10.29% of non-null values, followed by Indonesia ('ID') and Nigeria ('NG') — a developing-world skew that may reflect data collection bias. The 680-unique-value count is anomalously high for standard two-letter ISO codes (only ~250 exist), suggesting some values may be multi-code concatenations, malformed entries, or non-standard codes. Treatment: Investigate the 680 distinct values for malformed or concatenated codes; impute or flag nulls (64.24% missing) before use; one-hot encode or embed after cleaning.
- n
- 23,740
- nulls
- 15,250 (64.2%)
- unique
- 680
- top_value
- PG
- top_rate
- 0.1029
- cardinality
- 680
- entropy
- 6.493
- entropy_ratio
- 0.6901