{
 "name": "divinediscourses-exports",
 "title": "Divine Discourses public export tables",
 "version": "1.2.0",
 "created": "2026-08-09",
 "homepage": "https://divinediscourses.org/export",
 "licenses": [
  {
   "name": "GPL-3.0-or-later",
   "title": "GNU General Public License",
   "path": "https://www.gnu.org/licenses/gpl-3.0.html"
  }
 ],
 "sources": [
  {
   "title": "The Quranic Arabic Corpus, version 0.4 (Kais Dukes, University of Leeds)",
   "path": "https://corpus.quran.com"
  }
 ],
 "contributors": [
  {
   "title": "Divine Discourses project",
   "path": "https://divinediscourses.org/about"
  }
 ],
 "resources": [
  {
   "name": "association-pairs",
   "title": "Divine Discourses: association-pairs",
   "description": "Root-pair association statistics: the union of every pair appearing in any root's top-25-by-LLR partner list, deduplicated by unordered pair.",
   "path": "association-pairs.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "rootA",
      "type": "string",
      "description": "First root of the pair (Buckwalter)."
     },
     {
      "name": "rootASafeKey",
      "type": "string",
      "description": "URL/filename-safe encoding of rootA."
     },
     {
      "name": "rootALatin",
      "type": "string",
      "description": "rootA in Latin transliteration."
     },
     {
      "name": "rootB",
      "type": "string",
      "description": "Second root of the pair (Buckwalter)."
     },
     {
      "name": "rootBSafeKey",
      "type": "string",
      "description": "URL/filename-safe encoding of rootB."
     },
     {
      "name": "rootBLatin",
      "type": "string",
      "description": "rootB in Latin transliteration."
     },
     {
      "name": "sharedVerses",
      "type": "integer",
      "description": "k11: number of verses in which both roots are attested. Unit: verses."
     },
     {
      "name": "pmi",
      "type": "number",
      "description": "Pointwise mutual information: log2((k11*N)/((k11+k12)*(k11+k21))), N=6,236, rounded to 2 decimals. Unit: bits (log base 2)."
     },
     {
      "name": "dice",
      "type": "number",
      "description": "Dice coefficient: 2*k11/(2*k11+k12+k21), rounded to 3 decimals."
     },
     {
      "name": "llr",
      "type": "number",
      "description": "Dunning's log-likelihood ratio (G2) over the pair's verse-level 2x2 table, rounded to 2 decimals."
     }
    ]
   }
  },
  {
   "name": "centrality",
   "title": "Divine Discourses: centrality",
   "description": "Network centrality for all 1,642 roots over the root co-occurrence graph (5,211 edges, built from each root's top-25-by-LLR partners).",
   "path": "centrality.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "root",
      "type": "string",
      "description": "Buckwalter-transliterated root."
     },
     {
      "name": "safeKey",
      "type": "string",
      "description": "URL/filename-safe encoding of root."
     },
     {
      "name": "rootLatin",
      "type": "string",
      "description": "Root in Latin transliteration with diacritics."
     },
     {
      "name": "degree",
      "type": "integer",
      "description": "Count of distinct partner roots. Unit: neighbors."
     },
     {
      "name": "degreeRank",
      "type": "integer",
      "description": "Rank by degree, 1 = highest, among 1,642 roots."
     },
     {
      "name": "weightedDegree",
      "type": "number",
      "description": "Sum of incident edge weights (LLR)."
     },
     {
      "name": "weightedDegreeRank",
      "type": "integer",
      "description": "Rank by weighted degree."
     },
     {
      "name": "betweenness",
      "type": "number",
      "description": "Betweenness centrality (unweighted shortest paths)."
     },
     {
      "name": "betweennessRank",
      "type": "integer",
      "description": "Rank by betweenness."
     },
     {
      "name": "eigenvector",
      "type": "number",
      "description": "Eigenvector centrality (LLR-weighted, power iteration, L2-normalized)."
     },
     {
      "name": "eigenvectorRank",
      "type": "integer",
      "description": "Rank by eigenvector centrality."
     }
    ]
   }
  },
  {
   "name": "discursive-pivots",
   "title": "Divine Discourses: discursive-pivots",
   "description": "137 verses mechanically flagged for opening with a temporal particle (idh or idha) while sharing a content root with the immediately preceding verse.",
   "path": "discursive-pivots.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "verse",
      "type": "integer",
      "description": "The flagged verse."
     },
     {
      "name": "marker",
      "type": "string",
      "description": "The temporal particle opening the verse: idh or idha."
     },
     {
      "name": "previousVerse",
      "type": "integer",
      "description": "The preceding verse the flagged verse shares a root with."
     },
     {
      "name": "sharedRoots",
      "type": "string",
      "description": "Semicolon-separated list of the shared root(s) in Latin transliteration."
     }
    ]
   }
  },
  {
   "name": "dispersion",
   "title": "Divine Discourses: dispersion",
   "description": "How evenly each of the 1,642 roots is spread across the 114 surahs, weighted by surah token count.",
   "path": "dispersion.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "root",
      "type": "string",
      "description": "Buckwalter-transliterated root."
     },
     {
      "name": "safeKey",
      "type": "string",
      "description": "URL/filename-safe encoding of root."
     },
     {
      "name": "rootLatin",
      "type": "string",
      "description": "Root in Latin transliteration with diacritics."
     },
     {
      "name": "totalCount",
      "type": "integer",
      "description": "Corpus-wide occurrence count. Unit: occurrences."
     },
     {
      "name": "surahsOccurringIn",
      "type": "integer",
      "description": "Count of the 114 surahs the root occurs in at least once."
     },
     {
      "name": "dp",
      "type": "number",
      "description": "Gries's Deviation of Proportions. Range [0, 1 - min part share]. Attains 1 - min part share exactly when all occurrences fall in the corpus's smallest part."
     },
     {
      "name": "dpNorm",
      "type": "number",
      "description": "DP rescaled to [0, 1] via the Lijffijt & Gries (2012) correction. Attains 1 at the same extreme as dp's own maximum."
     },
     {
      "name": "juillandD",
      "type": "number",
      "description": "Juilland's D; 1 = perfectly even. Not clamped, can be negative."
     },
     {
      "name": "adjustedFrequency",
      "type": "number",
      "description": "totalCount * (1 - dp): raw frequency discounted for clumping."
     }
    ]
   }
  },
  {
   "name": "fawatih",
   "title": "Divine Discourses: fawatih",
   "description": "The 29 surahs opening with a sequence of isolated letters (fawatih / al-muqatta'at), and which combination.",
   "path": "fawatih.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "verse",
      "type": "integer",
      "description": "Verse carrying the isolated letters (always 1)."
     },
     {
      "name": "letters",
      "type": "string",
      "description": "The isolated letters in Arabic script, as written."
     }
    ]
   }
  },
  {
   "name": "formulaic-density",
   "title": "Divine Discourses: formulaic-density",
   "description": "Per-surah mean share of words covered by a recurring 3-5-word phrase (Bannister's oral-formulaic density), tested against a length-matched null, for all 114 surahs.",
   "path": "formulaic-density.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "verseCount",
      "type": "integer",
      "description": "Verses in this surah."
     },
     {
      "name": "meanDensityRoot",
      "type": "number",
      "description": "Mean per-verse root-stream formulaic density, 0-1."
     },
     {
      "name": "pValueRoot",
      "type": "number",
      "description": "One-sided permutation p-value, root stream."
     },
     {
      "name": "survivorRoot",
      "type": "string",
      "description": "Survives the pooled BH-FDR correction at q<0.05, root stream."
     },
     {
      "name": "meanDensitySurface",
      "type": "number",
      "description": "Mean per-verse surface-stream formulaic density, 0-1."
     },
     {
      "name": "pValueSurface",
      "type": "number",
      "description": "One-sided permutation p-value, surface stream."
     },
     {
      "name": "survivorSurface",
      "type": "string",
      "description": "Survives the pooled BH-FDR correction at q<0.05, surface stream."
     }
    ]
   }
  },
  {
   "name": "formulas",
   "title": "Divine Discourses: formulas",
   "description": "Every recurring 3-5 word sequence in the Qur'an (18,408 rows: 6,403 root-view + 12,005 surface-view), with its first occurrence.",
   "path": "formulas.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "stream",
      "type": "string",
      "description": "root or surface."
     },
     {
      "name": "n",
      "type": "integer",
      "description": "Sequence length, 3-5. Unit: words."
     },
     {
      "name": "display",
      "type": "string",
      "description": "Root stream: dot-separated Latin transliteration. Surface stream: the Arabic phrase itself."
     },
     {
      "name": "arabic",
      "type": "string",
      "description": "Arabic script for the sequence (root stream: root letters; surface stream: same as display)."
     },
     {
      "name": "count",
      "type": "integer",
      "description": "Total occurrences of this sequence across the corpus. Unit: occurrences."
     },
     {
      "name": "firstSurah",
      "type": "integer",
      "description": "Surah of the sequence's first occurrence."
     },
     {
      "name": "firstVerse",
      "type": "integer",
      "description": "Verse of the sequence's first occurrence."
     }
    ]
   }
  },
  {
   "name": "rhyme-summary",
   "title": "Divine Discourses: rhyme-summary",
   "description": "Per-surah roll-up of verse-ending (rhyme) patterns for all 114 surahs.",
   "path": "rhyme-summary.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number, 1-114."
     },
     {
      "name": "verseCount",
      "type": "integer",
      "description": "Number of verses in the surah. Unit: verses."
     },
     {
      "name": "familyCount",
      "type": "integer",
      "description": "Count of distinct fine-key rhyme families in the surah."
     },
     {
      "name": "dominantKey",
      "type": "string",
      "description": "The most frequent fine rhyme key in the surah."
     },
     {
      "name": "dominantShare",
      "type": "number",
      "description": "Share of verses ending on the dominant key, 0-1."
     },
     {
      "name": "shiftCount",
      "type": "integer",
      "description": "Number of verse-to-verse changes in the fine rhyme key."
     },
     {
      "name": "topRefrainPausal",
      "type": "string",
      "description": "Pausal form of the most-repeated verse ending recurring 3+ times, if any; null otherwise."
     },
     {
      "name": "topRefrainCount",
      "type": "integer",
      "description": "Occurrences of topRefrainPausal; null if there is no refrain."
     },
     {
      "name": "meanRunLength",
      "type": "number",
      "description": "verseCount / (shiftCount + 1): average consecutive-verse run on one ending before it changes. Unit: verses."
     }
    ]
   }
  },
  {
   "name": "root-frequencies",
   "title": "Divine Discourses: root-frequencies",
   "description": "Every one of the 1,642 roots: raw occurrence count, overall normalized frequency, and per-period count and normalized frequency.",
   "path": "root-frequencies.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "root",
      "type": "string",
      "description": "Buckwalter-transliterated root."
     },
     {
      "name": "safeKey",
      "type": "string",
      "description": "URL/filename-safe encoding of root, used to link to data/association/{safeKey}.json and roots.html?root={safeKey}."
     },
     {
      "name": "arabic",
      "type": "string",
      "description": "Root letters in Arabic script, space-separated."
     },
     {
      "name": "rootLatin",
      "type": "string",
      "description": "Root in Latin transliteration with diacritics."
     },
     {
      "name": "totalCount",
      "type": "integer",
      "description": "Total occurrences of this root across the whole corpus (77,429 tokens). Unit: tokens."
     },
     {
      "name": "normalizedFrequencyOverall",
      "type": "number",
      "description": "(totalCount / 77,429) * 1000. Unit: occurrences per 1,000 tokens."
     },
     {
      "name": "count_meccan-early",
      "type": "integer",
      "description": "Occurrences of this root in the Early Meccan period. Unit: tokens."
     },
     {
      "name": "normalizedFrequency_meccan-early",
      "type": "number",
      "description": "(count_meccan-early / period token total) * 1000. Unit: occurrences per 1,000 tokens."
     },
     {
      "name": "count_meccan-middle",
      "type": "integer",
      "description": "Occurrences of this root in the Middle Meccan period. Unit: tokens."
     },
     {
      "name": "normalizedFrequency_meccan-middle",
      "type": "number",
      "description": "(count_meccan-middle / period token total) * 1000. Unit: occurrences per 1,000 tokens."
     },
     {
      "name": "count_meccan-late",
      "type": "integer",
      "description": "Occurrences of this root in the Late Meccan period. Unit: tokens."
     },
     {
      "name": "normalizedFrequency_meccan-late",
      "type": "number",
      "description": "(count_meccan-late / period token total) * 1000. Unit: occurrences per 1,000 tokens."
     },
     {
      "name": "count_medinan",
      "type": "integer",
      "description": "Occurrences of this root in the Medinan period. Unit: tokens."
     },
     {
      "name": "normalizedFrequency_medinan",
      "type": "number",
      "description": "(count_medinan / period token total) * 1000. Unit: occurrences per 1,000 tokens."
     }
    ]
   }
  },
  {
   "name": "structure",
   "title": "Divine Discourses: structure",
   "description": "Mechanically segmented sections for all 114 surahs (TextTiling-derived changepoint detection over lexical cohesion), not a transcribed scholarly outline.",
   "path": "structure.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "sectionIndex",
      "type": "integer",
      "description": "1-based section number within the surah."
     },
     {
      "name": "fromVerse",
      "type": "integer",
      "description": "First verse of the section."
     },
     {
      "name": "toVerse",
      "type": "integer",
      "description": "Last verse of the section."
     },
     {
      "name": "verseCount",
      "type": "integer",
      "description": "Number of verses in the section. Unit: verses."
     }
    ]
   }
  },
  {
   "name": "structure-tests",
   "title": "Divine Discourses: structure-tests",
   "description": "Four block-level mirror-symmetry tests (concentric pairing, inclusio, formula bookending, verse-length symmetry) over the computed sections in the structure table, one row per surah.",
   "path": "structure-tests.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "verseCount",
      "type": "integer",
      "description": "Verses in the surah. Unit: verses."
     },
     {
      "name": "sections",
      "type": "integer",
      "description": "Number of computed sections (from the structure table)."
     },
     {
      "name": "concentricParallelism_observed",
      "type": "number",
      "description": "Observed mean Jaccard similarity of mirrored section pairs; null if the surah has too few sections for this test."
     },
     {
      "name": "concentricParallelism_pValue",
      "type": "number",
      "description": "Permutation p-value for concentricParallelism; null if not applicable."
     },
     {
      "name": "concentricParallelism_survivor",
      "type": "string",
      "description": "Whether this candidate survived the pooled Benjamini-Hochberg correction; null if not applicable."
     },
     {
      "name": "inclusio_observed",
      "type": "number",
      "description": "Observed vocabulary overlap between the first and last section; null if not applicable."
     },
     {
      "name": "inclusio_pValue",
      "type": "number",
      "description": "Permutation p-value for inclusio; null if not applicable."
     },
     {
      "name": "inclusio_survivor",
      "type": "string",
      "description": "Whether this candidate survived correction; null if not applicable."
     },
     {
      "name": "formulaBookending_observed",
      "type": "number",
      "description": "Observed formula-bracketing statistic; null if not applicable."
     },
     {
      "name": "formulaBookending_pValue",
      "type": "number",
      "description": "Permutation p-value for formulaBookending; null if not applicable."
     },
     {
      "name": "formulaBookending_survivor",
      "type": "string",
      "description": "Whether this candidate survived correction; null if not applicable."
     },
     {
      "name": "lengthSymmetry_observed",
      "type": "number",
      "description": "Observed correlation of the verse-length profile with its reverse; null if not applicable."
     },
     {
      "name": "lengthSymmetry_pValue",
      "type": "number",
      "description": "Permutation p-value for lengthSymmetry; null if not applicable."
     },
     {
      "name": "lengthSymmetry_survivor",
      "type": "string",
      "description": "Whether this candidate survived correction; null if not applicable."
     }
    ]
   }
  },
  {
   "name": "surah-stats",
   "title": "Divine Discourses: surah-stats",
   "description": "Per-surah corpus fingerprint: all 114 surahs.",
   "path": "surah-stats.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number, 1-114, Cairo (mushaf) order."
     },
     {
      "name": "nameTranslit",
      "type": "string",
      "description": "Transliterated surah name."
     },
     {
      "name": "nameArabic",
      "type": "string",
      "description": "Surah name in Arabic script."
     },
     {
      "name": "nameEnglish",
      "type": "string",
      "description": "English meaning of the surah name."
     },
     {
      "name": "revelationOrder",
      "type": "integer",
      "description": "Position in the Cairo 1924 revelation-order sequence (1 = first revealed)."
     },
     {
      "name": "period",
      "type": "string",
      "description": "One of meccan-early, meccan-middle, meccan-late, medinan (Nöldeke-Bell four-period classification)."
     },
     {
      "name": "verseCount",
      "type": "integer",
      "description": "Number of verses (ayat) in the surah, Cairo numbering. Unit: verses."
     },
     {
      "name": "tokenCount",
      "type": "integer",
      "description": "Total Leeds morphological tokens in the surah. Unit: tokens."
     },
     {
      "name": "distinctRootCount",
      "type": "integer",
      "description": "Count of distinct roots attested in the surah. Unit: roots."
     },
     {
      "name": "rootDiversityRatio",
      "type": "number",
      "description": "distinctRootCount / tokenCount."
     },
     {
      "name": "distinctFormCount",
      "type": "integer",
      "description": "Count of distinct surface (written) forms in the surah. Unit: forms."
     },
     {
      "name": "formDiversityRatio",
      "type": "number",
      "description": "distinctFormCount / tokenCount. Mechanically declines as tokenCount grows (a sample-size artifact); see formMATTR/formMTLD for length-robust alternatives."
     },
     {
      "name": "formMATTR",
      "type": "number",
      "description": "Moving-average type-token ratio (Covington & McFall 2010) over the surah's ordered surface-form tokens, 25-token window. Null for the 9 surahs shorter than the window."
     },
     {
      "name": "formMTLD",
      "type": "number",
      "description": "Measure of Textual Lexical Diversity (McCarthy & Jarvis 2010): mean tokens-per-factor at a 0.72 TTR threshold, bidirectionally averaged. Null only if the surah's running TTR never reaches the threshold. Unit: tokens."
     },
     {
      "name": "distinctLemmaCount",
      "type": "integer",
      "description": "Count of distinct lemmas in the surah. Unit: lemmas."
     },
     {
      "name": "lemmaDiversityRatio",
      "type": "number",
      "description": "distinctLemmaCount / tokenCount."
     },
     {
      "name": "nounPct",
      "type": "number",
      "description": "Percentage of the surah's tokens tagged noun (N) by Leeds POS tagging. Unit: percent."
     },
     {
      "name": "verbPct",
      "type": "number",
      "description": "Percentage of the surah's tokens tagged verb (V) by Leeds POS tagging. Unit: percent."
     }
    ]
   }
  },
  {
   "name": "theme-surah-density",
   "title": "Divine Discourses: theme-surah-density",
   "description": "Sparse theme-by-surah matrix: for each surah, the themes whose root-family vocabulary clusters most densely in it.",
   "path": "theme-surah-density.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number."
     },
     {
      "name": "themeSlug",
      "type": "string",
      "description": "Theme identifier, matches themes.html's slug."
     },
     {
      "name": "themeTitle",
      "type": "string",
      "description": "Theme display title."
     },
     {
      "name": "perThousand",
      "type": "number",
      "description": "Density of this theme's root family in this surah. Unit: theme-root tokens per 1,000 surah tokens."
     }
    ]
   }
  },
  {
   "name": "verse-lengths",
   "title": "Divine Discourses: verse-lengths",
   "description": "Every verse in the corpus (6,236 rows) with its token length and revelation period.",
   "path": "verse-lengths.csv",
   "format": "csv",
   "mediatype": "text/csv",
   "encoding": "utf-8",
   "schema": {
    "fields": [
     {
      "name": "surah",
      "type": "integer",
      "description": "Surah number, 1-114."
     },
     {
      "name": "verse",
      "type": "integer",
      "description": "Verse (ayah) number within the surah, Cairo numbering."
     },
     {
      "name": "tokens",
      "type": "integer",
      "description": "Number of Leeds morphological tokens in this verse. Unit: tokens."
     },
     {
      "name": "period",
      "type": "string",
      "description": "One of meccan-early, meccan-middle, meccan-late, medinan; null if the surah has no chronology entry."
     }
    ]
   }
  }
 ]
}
