{"columns":[{"alerts":[{"code":"near_unique","level":"info","message":"100.0% of rows are unique strings"},{"code":"one_word","level":"warn","message":"100.0% rows are a single word"},{"code":"short_text","level":"info","message":"95th-percentile length under 20 chars"}],"column":"iso_639_3","extras":{"language_counts":{},"language_sample_size":5000,"length_histogram":{"counts":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7130,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"edges":[2.5,2.525,2.55,2.575,2.6,2.625,2.65,2.675,2.7,2.725,2.75,2.775,2.8,2.825,2.85,2.875,2.9,2.925,2.95,2.975,3.0,3.025,3.05,3.075,3.1,3.125,3.15,3.175,3.2,3.225,3.25,3.275,3.3,3.325,3.35,3.375,3.4,3.425,3.45,3.475,3.5]},"near_unique":true,"sample":["abq","qui","tys","sby","kzn","wca","pbn","tpy","sod","aoa","mtj","mva","esg","mgj","gwb","wlc","bae","ssu","zpn","kew","hnd","anj","cna","bts","org","rml","mvb","cui","bcr","yry","ngd","nwe","ngw","kcb","kce","khe","wlw","mkd","dkr","mlt","snc","vao","oub","vap","wmo","yyr","jra","kyz","cay","tob"],"top_values":[],"top_words":[["aou",1],["aiw",1],["aas",1],["kbt",1],["abf",1],["bzy",1],["abm",1],["aau",1],["abq",1],["aba",1],["aaq",1],["abe",1],["abi",1],["bsa",1],["pcn",1],["abk",1],["aob",1],["abo",1],["abr",1],["ado",1],["abn",1],["abz",1],["kgr",1],["abu",1],["mgj",1]],"vocab_skipped":null,"word_histogram":{"counts":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7130,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"edges":[0.5,0.5333333333333333,0.5666666666666667,0.6,0.6333333333333333,0.6666666666666666,0.7,0.7333333333333334,0.7666666666666666,0.8,0.8333333333333333,0.8666666666666667,0.9,0.9333333333333333,0.9666666666666667,1.0,1.0333333333333332,1.0666666666666667,1.1,1.1333333333333333,1.1666666666666665,1.2,1.2333333333333334,1.2666666666666666,1.3,1.3333333333333335,1.3666666666666667,1.4,1.4333333333333333,1.4666666666666668,1.5]}},"kind":"text","n":7130,"n_null":0,"n_unique":7130,"null_rate":0.0,"stats":{"allcaps_rate":0.0,"boilerplate_rate":0.0,"duplicate_rate":0.0,"emoji_rate":0.0,"len_max":3,"len_mean":3.0,"len_median":3.0,"len_min":3,"len_p95":3.0,"n_duplicates":0,"n_empty":0,"one_word_rate":1.0,"readability_flesch_mean":120.37400000000001,"url_rate":0.0,"vocab_size":7130,"word_mean":1.0,"word_median":1.0}},{"alerts":[{"code":"near_unique","level":"info","message":"100.0% of rows are unique strings"},{"code":"one_word","level":"warn","message":"72.9% rows are a single word"}],"column":"name","extras":{"language_counts":{},"language_sample_size":5000,"length_histogram":{"counts":[25,195,761,1106,1096,847,529,351,278,238,213,215,191,202,149,95,75,72,66,70,154,50,26,30,23,8,7,10,14,6,8,2,10,1,4,0,1,0,1,1],"edges":[1.0,2.05,3.1,4.15,5.2,6.25,7.300000000000001,8.350000000000001,9.4,10.450000000000001,11.5,12.55,13.600000000000001,14.65,15.700000000000001,16.75,17.8,18.85,19.900000000000002,20.95,22.0,23.05,24.1,25.150000000000002,26.200000000000003,27.25,28.3,29.35,30.400000000000002,31.450000000000003,32.5,33.550000000000004,34.6,35.65,36.7,37.75,38.800000000000004,39.85,40.9,41.95,43.0]},"near_unique":true,"sample":["Abaza","Quileute","T\u00e0y Sa Pa","Soli","Kokola","Yanom\u00e1mi","Kpasam","Trumai","Songoora","Angolar","Moskona","Manam","Aheri Gondi","Abureni","Gwa","Mwali Comorian","Bar\u00e9","Susuami","Santa In\u00e9s Yatzechi Zapotec","West Kewa","Southern Hindko","Anor","Changthang","Batak Simalungun","Oring","Baltic Romani","Mattole","Cuiba","Babine","Yarluyandi","Ngando (Central African Republic)","Ngwe","Ngwaba","Kawacha","Kaivi","Korowai","Walak","Macedonian","Kuijau","Maltese","Sinaugoro","Vao","Glio-Oubi","Vaiphei","Wom (Papua New Guinea)","Yir Yoront","Jarai","Kayab\u00ed","Cayuga","Toba"],"top_values":[],"top_words":[["language",153],["sign",152],["southern",70],["northern",65],["zapotec",58],["mixtec",52],["western",51],["eastern",49],["naga",49],["central",45],["creole",34],["quechua",33],["arabic",32],["chin",32],["new",31],["guinea)",28],["nahuatl",28],["(papua",27],["north",26],["malay",26],["san",22],["south",21],["english",20],["dogon",19],["(nigeria)",18]],"vocab_skipped":null,"word_histogram":{"counts":[5199,0,0,0,0,0,1382,0,0,0,0,0,415,0,0,0,0,0,103,0,0,0,0,0,27,0,0,0,0,4],"edges":[1.0,1.1666666666666667,1.3333333333333333,1.5,1.6666666666666665,1.8333333333333333,2.0,2.1666666666666665,2.333333333333333,2.5,2.6666666666666665,2.833333333333333,3.0,3.1666666666666665,3.333333333333333,3.5,3.6666666666666665,3.833333333333333,4.0,4.166666666666666,4.333333333333333,4.5,4.666666666666666,4.833333333333333,5.0,5.166666666666666,5.333333333333333,5.5,5.666666666666666,5.833333333333333,6.0]}},"kind":"text","n":7130,"n_null":0,"n_unique":7130,"null_rate":0.0,"stats":{"allcaps_rate":0.0,"boilerplate_rate":0.0,"duplicate_rate":0.0,"emoji_rate":0.0,"len_max":43,"len_mean":8.993688639551193,"len_median":7.0,"len_min":1,"len_p95":21.0,"n_duplicates":0,"n_empty":0,"one_word_rate":0.7291725105189341,"readability_flesch_mean":56.15055000000003,"url_rate":0.0,"vocab_size":7124,"word_mean":1.3715287517531556,"word_median":1.0}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"joshua_project","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"glottolog","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"language_history","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"us_indigenous","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"speaker_count","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}},{"alerts":[{"code":"skipped","level":"info","message":"no profiler for kind=unknown"}],"column":"data_sources","extras":{},"kind":"unknown","n":7130,"n_null":0,"n_unique":null,"null_rate":0.0,"stats":{}}],"insights":{"errors":[],"insights":[{"confidence":"medium","critiques":[],"evidence_keys":["row_count","column_count","columns.iso_639_3.n_unique","columns.iso_639_3.stats.len_mean","columns.name.stats.len_mean","columns.name.stats.one_word_rate","columns.name.top_words","kinds"],"featured_charts":[{"caption":"Distribution of language-name lengths shows most names are short (median 7 chars) with a long tail up to 43.","column":"name","kind":"length"},{"caption":"Top tokens in language names highlight directional qualifiers (southern, northern, eastern) and the prominence of 'sign' languages.","column":"name","kind":"bar"}],"model":"anthropic:claude-opus-4-7","narrative":"This dataset catalogs 7,130 world languages, each row keyed by a unique ISO 639-3 code paired with a language name. Only two of the eight columns (iso_639_3, name) parsed cleanly as text; the other six \u2014 including data_sources, glottolog, speaker_count, and us_indigenous \u2014 were skipped as nested or non-scalar structures and will need flattening before they yield insight. The name column is the most interesting surface feature: it averages about 9 characters, is single-word ~73% of the time, and its top tokens reveal heavy use of regional qualifiers like 'southern', 'northern', 'eastern', and 'central', plus 152\u2013153 entries containing 'language' or 'sign'. Start by unpacking the skipped object columns (especially speaker_count and glottolog) and look at name-token frequencies to understand naming conventions and language-family clustering.","scope":"dataset","target":"__global__"},{"confidence":"high","critiques":[],"evidence_keys":["n","n_unique","null_rate","stats.len_min","stats.len_max","stats.one_word_rate","stats.vocab_size","stats.duplicate_rate","top_words"],"model":"anthropic:claude-opus-4-7","narrative":"This column holds ISO 639-3 language codes: every value is exactly 3 characters, single-word, and unique across all 7130 rows (vocab_size 7130, len_min/max 3, one_word_rate 1.0). With n_unique equal to n and zero nulls or duplicates, it functions as a primary key for languages rather than a feature. Sample tokens like 'aou', 'aiw', 'aas' match the ISO 639-3 three-letter convention.","role":"identifier","scope":"column","target":"iso_639_3","treatment":"Use as the join key to language-level metadata; do not feed into a model directly."},{"confidence":"high","critiques":[],"evidence_keys":["n","n_unique","null_rate","stats.one_word_rate","stats.len_mean","stats.vocab_size","top_words"],"model":"anthropic:claude-opus-4-7","narrative":"This column appears to be a unique name identifier, likely for languages given the prominence of 'language', 'sign', 'zapotec', 'mixtec', and 'naga' in top words. All 7130 values are unique (n_unique equals n) with zero nulls or duplicates, and 72.9% are single words with a mean length of ~9 characters. The directional modifiers (southern, northern, western, eastern, central) suggest many entries are regional language variants.","role":"identifier","scope":"column","target":"name","treatment":"Use as a primary key or label; do not feed raw into models."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","kind","n","null_rate","stats"],"model":"anthropic:claude-opus-4-7","narrative":"The column \"joshua_project\" was skipped by the profiler, so no type, cardinality, or value statistics are available beyond a row count of 7130 and a null rate of 0.0. Without unique counts or sample values it is not possible to infer whether this is an identifier, code, or descriptive field. The name suggests a reference to the Joshua Project (an ethnographic/missiological dataset), which would typically indicate a people-group code or link.","role":"other","scope":"column","target":"joshua_project","treatment":"Re-profile with the skip cleared to determine type and cardinality before deciding on use."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","column","kind","n","null_rate","stats"],"model":"anthropic:claude-opus-4-7","narrative":"The column 'glottolog' was skipped by the profiler and carries no computed statistics beyond a row count of 7130 and a null rate of 0.0. The name suggests Glottolog language identifiers (e.g., codes like 'stan1293'), which would align with the ~7000-language scale of that catalogue, but uniqueness, type, and value distribution are all unknown here. No further signal is available to characterise it.","role":"identifier","scope":"column","target":"glottolog","treatment":"Re-profile with parsing enabled; if confirmed as Glottolog codes, treat as a foreign key to join against the Glottolog reference."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","kind","n","null_rate","stats","n_unique"],"model":"anthropic:claude-opus-4-7","narrative":"The column `language_history` was skipped by the profiler, which emitted no type, uniqueness, or value statistics. All 7130 rows are non-null, but with `kind` reported as unknown and `stats` empty, nothing can be inferred about the contents from this evidence alone. The name suggests a record of languages (possibly a list or sequence per row), which would explain why a scalar profiler bailed out.","role":"other","scope":"column","target":"language_history","treatment":"Re-profile after parsing the field (e.g., explode list values) before deciding on use."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","kind","n","null_rate","stats"],"model":"anthropic:claude-opus-4-7","narrative":"The column `us_indigenous` was skipped by the profiler, so its data type and value distribution are unknown. We can only confirm it has 7130 rows with a 0.0 null rate; cardinality and any descriptive statistics are missing. Without further inspection it is impossible to tell whether this is a flag, category, or something else.","role":"other","scope":"column","target":"us_indigenous","treatment":"Re-profile or inspect manually to determine type before any downstream use."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","n","null_rate","kind"],"model":"anthropic:claude-opus-4-7","narrative":"Column `speaker_count` was skipped by the profiler, so no type, cardinality, or distribution stats are available beyond a row count of 7130 and zero nulls. The name suggests an integer count of speakers per record, but this cannot be confirmed from the evidence. Re-profile with the appropriate parser before drawing conclusions.","role":"other","scope":"column","target":"speaker_count","treatment":"Re-run the profiler on this column to recover type and distribution before use."},{"confidence":"low","critiques":[],"evidence_keys":["alerts","kind","n","n_unique","null_rate","stats"],"model":"anthropic:claude-opus-4-7","narrative":"The column 'data_sources' was skipped by saturn's profiler (alerts: 'skipped') and reports kind 'unknown' with no unique count or stats. Only the row count (7130) and a null_rate of 0.0 are available, so the actual content and structure are unverified here. Likely a nested or non-scalar field (e.g. list/struct of source identifiers) that the profiler could not flatten.","role":"other","scope":"column","target":"data_sources","treatment":"Inspect manually and parse/explode the structure before any downstream modelling."}],"providers":["anthropic:claude-opus-4-7"],"total_usage":{"completion_tokens":2416,"prompt_tokens":7133,"total_tokens":9549}},"language_counts":{},"meta":{"generated_at":"2026-05-01T23:00:44+00:00","mode":"full","row_count":7130,"sampled_rows":7130,"seed":42,"source":"/home/coolhand/datasets/language-data/world_languages_integrated.json"},"notes":[],"saturn_version":"0.2.0","schema":{"data_sources":"unknown","glottolog":"unknown","iso_639_3":"text","joshua_project":"unknown","language_history":"unknown","name":"text","speaker_count":"unknown","us_indigenous":"unknown"}}
