Divine Discourses

Datasets — take the data, check the work

Every number on this site is computed from data that ships with the site. This page documents each dataset for reuse: what it contains, the script that generates it, its license, and a direct download.

Regeneration is deterministic: run any listed script twice and the output is byte-identical. The full pipeline and every generator live in the public repository (directory datasets are easiest to grab there — clone or use the per-directory links below). Licensing in one line: data derived from the Leeds corpus is GPL; site code is MIT. Details in NOTICE.md.

Corpus foundation

data/morphology/{1..114}.json

Word-by-word morphology for all 77,429 word-units: per verse, an array of words, each {w, ar, root, lemma, pos, gloss} (word index, Uthmani surface form, Buckwalter root, Buckwalter lemma, part-of-speech tag; the per-word-unit gloss field is empty — the word glosses that ship live separately in data/gloss/, six surahs from Khan 2011). ●

Derived from Leeds Quranic Arabic Corpus v0.4 · GPL · generator scripts/build-leeds.js · sample (surah 1) · full directory

data/roots-summary.json · data/roots-index.json · data/roots-list.json

The 1,642 roots: per root, Arabic and Latin display forms, total counts, per-chronology-period counts, first/last occurrence, and surface-form inventories. ●

GPL (Leeds-derived) · generators build-roots-index.py, build-roots-list.mjs · roots-summary · roots-index · roots-list

data/word-index.json

Per-lemma index: Arabic form, root, POS, corpus frequency, and every verse reference. ●

GPL · generator build-word-index.mjs · download

Per-root analytics

data/root-analytics/{root}.json × 1,642

Per root: total and Makki/Madani occurrence counts, per-surah distribution, surface-form inventory (derivedForms), derivational lemmaFamilies grouped by (lemma, POS), top co-occurring roots, and the full verse list. ●

GPL · generator build-root-analytics.mjs · sample (r-ḥ-m) · full directory

data/cooccurrence/{root}.json × 1,642

Verse-level co-occurrence per root: top partner roots overall and broken out by the four traditional revelation periods (byChronologyCoRoots), with the shared-verse counts. ●

GPL · generator build-cooccurrence.mjs · sample (r-ḥ-m) · full directory

data/association/{root}.json × 1,642

Root-pair association statistics per root: the top 25 partners by log-likelihood ratio, each with shared-verse count (k11), PMI, Dice, and LLR, plus overall normalized frequency. Shared formulas and thresholds live once in association/methods.json. ●

GPL · generator compute-association-stats.mjs · sample (r-ḥ-m) · methods · full directory

data/network/{root}.json × 1,642 · heatmap.json

Precomputed, deterministic radial layouts for each root's association ego network (static x/y coordinates, no browser layout), plus the top-40-roots-by-114-surahs density matrix behind the Numbers page heatmap. ●

GPL · generator compute-network-layout.mjs · sample (r-ḥ-m) · heatmap · full directory

data/centrality/{root}.json × 1,642

Network centrality per root over the association graph: degree (raw and normalized), weighted degree, betweenness (Brandes), and eigenvector centrality (power iteration), each with its rank out of all 1,642 nodes. Algorithms and the graph definition live in centrality/methods.json. ●

GPL · generator compute-centrality.mjs · sample (r-ḥ-m) · methods · full directory

data/exports/ · data/coverage/report.json

The public download tables (root frequencies, root dispersion, roots by surah, lemma frequencies, association pairs, per-surah stats, verse lengths, verse durations, formulas, formulaic density, centrality, rhyme summary, fawatih, direct address, discursive pivots, computed structure, structure tests, and theme-surah density — 18 tables, each as CSV and JSON, with schema.json and a prose data dictionary) — browsable on Export — and the measured data-coverage report behind the Coverage dashboard. ●

GPL (Leeds-derived) · generators build-exports.mjs, compute-coverage.mjs · schema · coverage report

Structure, sound, and phrase recurrence

data/formulas-root.json · data/formulas-surface.json

Every 3-, 4-, or 5-word-unit sequence recurring 2+ times corpus-wide, with all verse locations — root-sequence and surface-form streams (each catches phrases the other cannot). Browsable on Formulas. ●

GPL · generator build-formulas.mjs · root stream · surface stream

data/formulaic-density.json

Per-verse and per-surah share of words covered by a recurring formula (Bannister's oral-formulaic density), tested per surah against a length-matched resampling null, pooled into one Benjamini-Hochberg correction across both streams. Method and citations in the file's own _method/ _hypothesis fields. Browsable on Formulas and per-surah on Dossier. ●

GPL · generator build-formulaic-density.mjs · download

data/rhyme/{1..114}.json · data/rhyme-summary.json

Verse-ending (fāṣila) analysis per surah: each verse's final word reduced to an approximate pausal form, rhyme families under a fine and a coarse ending key, shift points, and refrains. An orthographic proxy, not a phonological transcription — the method note inside each file states the limits. ~

GPL · generator build-rhyme-map.mjs · sample (surah 91) · summary · full directory

data/rhetorical-features.json · data/discursive-pivots.json · data/symmetry-test.json

Direct-address formula locations and muqaṭṭaʿāt letters; verse-initial temporal-marker boundaries with lexical continuity; and a significance-tested (and honestly null) rare-root symmetry check — including its full statistical method. ●

GPL · generators build-rhetorical-features.mjs, build-discursive-pivots.mjs, build-symmetry-test.mjs · rhetorical-features · discursive-pivots · symmetry-test

Surah metadata and cross-references

data/surah-profiles.json · data/surah-meta.json · data/surah-names.json · data/chronology.json · data/juz.json

Per-surah corpus fingerprints (length, vocabulary spread, grammatical texture, cross-reference reach), Makki/Madani classification, display names, the Cairo 1924 revelation order with four-period classification, and juz boundaries. ●

GPL (profiles) / public-domain reference (chronology) / API-sourced factual metadata (surah-meta) · generators build-surah-profiles.mjs, build-surah-meta.mjs, build-juz.mjs · profiles · chronology · juz

data/numbers.json · data/themes.json · data/sources.json

Corpus-wide statistics behind the Numbers page (hapax counts, verse-length distribution, vocabulary growth); the theme-to-root mappings (editorial groupings — the labels are choices, the counts are computed); and the machine-readable bibliography that every verification badge resolves against. ~

GPL (numbers, themes data content) / MIT (sources.json) · generators build-numbers.mjs, build-themes.mjs · numbers · themes · sources

If you build something on this data — a replication, a correction, a better method — the contribution guide explains how to send it back, and Validation documents how claims earn their labels here.