| Work / author / dates | Mishkāt al-anwār (مشكاة الأنوار, "The Niche of Lights") · Abū Ḥāmid Muḥammad b. Muḥammad al-Ghazālī al-Ṭūsī (450–505/1058–1111) |
| Part added | The introduction (the questioner's request, «أما بعد فقد سألتني …»), Part I (fī bayān anna l-nūr al-ḥaqq huwa Allāh taʿālā wa-anna ism al-nūr li-ghayrihi majāz maḥḍ lā ḥaqīqa lahu) complete, and Part II (fī bayān mithāl al-mishkāt wa-l-miṣbāḥ wa-l-zujāja wa-l-shajara wa-l-zayt wa-l-nār) complete: the two poles, the correspondence of the five spirits with niche, glass, lamp, tree and oil, and the khātima on Q 24:40. Part III (the seventy veils) not yet added. 126 passages, 8,415 words; printed pp. 99–138 of the base. |
| Text id | mishkat |
| Reader route | /read/mishkat (proposed) · apparatus /read/mishkat/notes (proposed) |
| Status | text of the base established (steps 2–6, 8), collated with two OpenITI texts, 28 Sept 2026 · vowelling (step 7), translation: not yet · reviewed by: — |
Structure of the part added (passage numbers): introduction (0–3) · Part I (4–73): the three senses of "light" (4–6), the seeing eye (7–9), the seven defects of the eye and the intellect as the truer light (10–23), self-evident and theoretical knowledge and the Quran as the sun of the intellect (24–26), the two eyes and the two worlds, mulk and malakūt (27–32), the light-giving lamp and the fire (33–36), the ranked heavenly lights (37–39), the first source (40–41), "light" for anything but God is pure metaphor (42–44), non-existence as utmost darkness (45–46), ḥaqīqat al-ḥaqāʾiq: nothing but God and His face (47–50), the gnostics' intoxication, union and fanāʾ (51–54), khātima: how God is the light of the heavens and the earth, tawḥīd of the commons and of the elect, the descent to the lowest heaven (55–65), musāʿada: light hidden by its own manifestness (66–73) · Part II (74–125): announcement of the two poles and the readings of Ibn Masʿūd and Ubayy (74–75), first pole, the secret of symbolising and the correspondence of the two worlds, Abraham's star, moon and sun (6:76–79), dream interpretation, mountain, valley, fire, pen, tablet, hand, form (76–93), khātima wa-iʿtidhār: outward and inward together (94–100), daqīqa: prophetic vision through images (101–105), second pole: the five luminous spirits (106–114), the similitudes of the verse (115–121), khātima: Q 24:40 (122–125).
1. Witnesses
| Siglum | Witness | Kind | Vowelled? | Licence | Location / hash |
|---|---|---|---|---|---|
| J | al-Jawāhir al-ghawālī min rasāʾil al-imām Ḥujjat al-Islām al-Ghazālī, "comprising seven rasāʾil": al-Adab fī l-dīn, Ayyuhā l-walad, Fayṣal al-tafriqa, al-Qawāʿid al-ʿashara, Mishkāt al-anwār (the 5th), Risālat al-ṭayr, al-Risāla al-waʿẓiyya. Title page (read from the scan, PDF p. 2 left): «طبعت على نفقة ناشرها البحاثة المنقب عن الاسفار النفيسة محيي الدين صبري الكردي · الطبعة الاولى سنة ١٣٤٣ه · حقوق الطبع محفوظة لناشرها · المطبعة العربية بمصر لصاحبها خير الدين الزركلي». 1343 AH = 1924–25 CE (not 1934, as the brief had it). No editor named, no apparatus, no source manuscript stated. The Mishkāt has its own half-title («الرسالة الخامسة … طبعت على نفقة …»), then the text pp. 99–(c.)150; our part pp. 99–138. | early print (single text, no apparatus) | sparsely (tanwīn alif, a few hamzas and shaddas) | Anonymous 1924–25 Egyptian print of a medieval text; public domain in the US (published before 1931) and in Egypt (no editorial authorship); the publisher's reserved "rights of printing" are long expired. | archive.org 20240203_20240203_2048 → local copy (87 PDF pages, two printed pages per PDF page; printed p. = 99 + 2·(PDF p. − 55) for the right page, +1 for the left), SHA-256 a628286f5334f34cf49b9b668b9709fac6dd2eb4ed791c75f55051b77449fe5b; the archive.org OCR (SHA-256 c9c606f9…b905b) poor, not used. |
| Af | OpenITI 0505Ghazali.MishkatAnwar.Shamela0012421-ara1 (RELEASE v2025.1.9): from al-Shamela (book 12421); its metadata give ed. Abū l-ʿAlā ʿAfīfī, Cairo: al-Dār al-Qawmiyya li-l-ṭibāʿa wa-l-nashr (no year; the edition is 1964); includes ʿAfīfī's introduction and analysis and his folio references to the manuscript («(و 2 - ا)»). | digital text of the standard edition | no | CC BY-NC-SA (OpenITI); the underlying edition © | local copy, SHA-256 af3410bc2eb1dbe5fb448b53a617a602ba8077289d9cb3ab058486b9db3d3250 (+ .yml: no edition stated there) |
| S | OpenITI 0505Ghazali.MishkatAnwar.JK009401-ara1 (RELEASE v2025.1.9): metadata give ed. al-Shaykh ʿAbd al-ʿAzīz ʿIzz al-Dīn al-Sayrawān, Beirut: ʿĀlam al-kutub, 1st ed. 1407/1986 (page markers = its pp. 115–186). The .yml notes paratext removed in the 2023 OpenITI clean. Used as the typing aid (its line order and punctuation are close to the print) and as a second comparison. | digital text of a modern edition | no | CC BY-NC-SA (OpenITI); underlying edition © | local copy, SHA-256 8d9ae6ec0d24a62b8e0cc4db9cc5ec9f59a84fa814742d63b9ba91fc1ab518fc |
| — | The same Sayrawān edition as a PDF (a private PDF copy, SHA-256 257c4f92…6cf, © 1986): not consulted for readings; S is its text. | © | private only | ||
| — | ʿAfīfī 1964 as a scan: not lawfully available (bulk-uploader copies only; Bibliotheca Alexandrina BBib-Alex-17342 returned 500). Not used. | ||||
| M | AUB Jafet MS 297 G41mA (copied Syria 541/1146), archive.org ms297g41ma: not consulted in this pass (see §12). | MS | not on disk |
Independence: Af and S agree closely with each other (429 difference units, 101 substantive, over the same stretch) and differ from J in the same places (in 520 units both agree against J). J represents a different, sometimes shorter, line of the text (see §3).
2. Base and why
J (al-Jawāhir al-ghawālī, 1343/1924–25): the only openly usable print (public domain), with clear page images. ʿAfīfī (the standard edition, from manuscripts) is the better text but is not lawfully available as a scan; its OpenITI transcription serves as the check witness, and its readings are published only as counts (as for Corbin in the Ghurba). Our text is J's text, not OpenITI's: S was used only as a typing aid and every word was read against J's page images. No reading of J was replaced by an OpenITI reading except letter-level misprints (§4).
3. Collation
- Transcription: each printed page cropped from the 85 dpi spread renders; every doubtful word re-read at 150–200 dpi (dots legible). Page-by-page transcription files, pp. 99–138, kept locally (line for line as printed;
##= centred section title;[[printed|corrected]]= misprint). - Proofreading: (1) while typing, word by word against the page image with S beside it; (2) the whole text was then aligned automatically with Af and S, and every place where both OpenITI texts agree against our reading and could be our error (omissions of more than four words, and some 30 single-word readings such as عالقون, المشبه, تؤثر, حقيقة, طبيعتي, استغرقه, مضرب, ينادي, يكتب, صده, المبكي, ماج, and the lines around the omissions) was re-checked on the page image at 150–200 dpi. No typing error of ours was found in that check; one misprint was found (وأقول for وأفول, p. 125). This second pass was targeted at the disagreements, not a second full independent read-through of all 40 pages.
- Tool:
difflibalignment of the consonantal text (marks stripped), J (misprints corrected, before Quran replacement; 8,371 tokens incl. headings) against each witness; a unit is orthographic if the two sides are equal after normalising hamza seats, alif forms, alif maqṣūra/yāʾ and tāʾ marbūṭa. - Result against Af (ʿAfīfī): 1,540 difference units: 745 orthographic, 795 substantive (640 replacements; 79 places where only J has words, 155 words; 76 places where only Af has words, 121 words). Agreement ratio 0.743.
- Against S (Sayrawān): 1,391 units: 602 orthographic, 789 substantive; ratio 0.776.
- Readings: private layer only (both witnesses).
- Characteristic places where J is shorter (apparent omissions in J, recorded in
uncertain, not supplied): p. 105 (والحواس [الخمس جواسيسه وله في الباطن جواسيس] سواها), p. 126 (الوادي الايمن … الوادي الايمن, c. 20 words), p. 135–136 ([الماشية التي يكثر نسلها و]الشجرة). Places where J has more: the full text of 37:164, 6:79 and 42:52 (the OpenITI texts abbreviate), «ولم يكن له كفواً أحد», «مجرى الثمر بالاضافة الى المثمر» (p. 109), «فهو باعتبار وجه نفسه عدم وباعتبار وجه الله وجود» (p. 114), the second hemistich «نحن روحان حللنا بدنا» (p. 115), «اذ كل شيء يسبح بحمده …» (p. 120), «فم في كل فم سبعون ألف» (p. 110). J also reads «سبعين ألف حجاب» in the veils hadith (p. 99) where Af and S have «سبعين حجابا».
4. Decisions (substantive)
| Where | Reading adopted | Rejected / J | Reason | By |
|---|---|---|---|---|
11 misprints corrected (changes, type proof) | نور (p. 103), لسر (103), الاعداد (106), مجن (106), الاول (112), عرفت (117), لشدة (121), الشهادة ×2 (123), وأفول (125), الحيواني (131) | بحور, اسر, الاعدد, مجر, الاولى, عرف, اشدة, الشهاة, الشهاد, وأقول, الحيوان | Letter-level slips giving no sense (a dropped letter, a wrong dot); each agrees with both OpenITI texts. | AI (Claude), provisional |
| 16 doubtful readings | left as printed, in uncertain | — | Print clear, sense doubtful or apparently defective; the OpenITI reading is given in each note (e.g. عالقون/عاكفون, طبيعتي/طبقتي, مضرب/مغرب الهوى, صده/حسده, يكتب/يستثبت, the three omissions). | AI |
| Headings | kept in the text | — | The two faṣl titles, the pole headings and the section words ((دقيقة), (حقيقة), (خاتمة) …) are in every witness: the author's. | AI |
Excluded as not the author's: the risāla's half-title page (series number, publisher's line), running page numbers, the printer's sheet signature «(م — ٩)» (p. 130), an ornamental asterisk (p. 100). The print has no footnotes in pp. 99–138. The print has no basmala and no «رب أنعمت فزد بفضلك» (both in Af and S).
5. Quotations verified
- 38 Quran quotations replaced with the verbatim Tanzil Uthmani text (
changestypequran;quoteswithref,text,sheetText,match,note): 24:35 (×2, incl. the opening verse), 50:22 (split over a page), 32:12, 64:8, 4:174, 7:179, 95:5, 78:38, 37:164–166, 28:88 (×2), 40:16, 27:62, 2:30, 2:115 (only تولوا فثم وجه الله: the print has وأينما), 41:53 (×2), 67:22, 6:76 (×2), 6:79, 112:1–4, 26:23, 26:24, 26:26, 26:27, 42:52 (×2), 114:1–3, 13:17, 24:40 (×4), 47:12 (the exact words only). Check:python3 scripts/recitals/check_quotes.py mishkat→ 38 verified, 0 failures (eachtextis a substring of its āya(s) and occurs in its passage). - 20 allusions / adapted quotations left as printed (
quran-allusion), e.g. 14:48, 6:59 (مفاتيح), 33:46 (سراجا منيراً), نوراً على نور in the accusative (24:35, ×2), 11:61 and 24:55 (adapted), 17:44, 20:12 (اخلع نعليك without fa-; الوادي المقدس; خلع النعلين), 26:25 (تسمعون), 28:29/20:10/27:7 (جذوة، قبس، شهاب), 52:3, 58:11 (ويرفع), the paraphrases of 24:35 in Part II, 47:12 (verbs reversed). - 2 non-canonical readings (
quran-variant-reading): Ibn Masʿūd «مثل نوره في قلب المؤمن كمشكاة فيها», Ubayy «مثل نور قلب من آمن كمشكاة فيها» (p. 122). - 16 hadith (
hadith, with the source where we could state it; three marked "not traced by us"), and 8 sayings/verses (saying: al-Ḥallāj, al-Bisṭāmī, al-Ṣāḥib b. ʿAbbād, the verse «فمن منح الجهال علماً أضاعه», «الغضب غول العقل», etc.).
6. Vowelling
- Source: J's own sparse marks, kept (vowelSource per passage). Quran quotations fully vowelled from Tanzil.
- AI vowelling: to be run by the parent with
scripts/recitals/prepare.py mishkat(not run here). - Comparison with authoritative vowelled editions: none available (Af and S are unvowelled). TODO.
7. Segmentation and word IDs
126 passages, 36–107 words (median 66): the author's own sections, each divided at J's clause boundaries (the seven defects, the five spirits, the three properties of imagination …) by scripts/recitals/mishkat_base.py, which never breaks inside a quotation. Section starts carry label. printedPage = page of the first word; printedPages gives the span. Word IDs: to be assigned when the reader file is built.
Where we stopped: end of Part II, after its khātima on Q 24:40, at «ويكفيك هذا القدر من أسرار هذه الآية فاقنع» (printed p. 138, line 5), immediately before the heading «الفصل الثالث في معنى قوله صلى الله عليه وسلم ان لله سبعين حجابا من نور وظلمة …» on the same page.
Figure: passages 106–125 carry "figure": "GhazaliNiche"; the top-level figures entry says which part where: 106–114 the five spirits defined; 115 niche (sensory) and the start of the glass; 116–117 glass (imaginative); 118 lamp (intellectual) and tree (reflective); 119 blessed olive, neither eastern nor western; 120–121 oil (holy prophetic) and "light upon light"; 122–125 the darkness of Q 24:40 (sea, two waves, cloud, the hand unseen). Note: in J (as in Af and S) the Light-Verse exposition and the 24:40 khātima belong to Part II, not Part III.
8. Analysis layer
TODO.
9. Commentaries aligned
TODO. Candidates: none classical in wide use; W. H. T. Gairdner's introduction (1924) and ʿAfīfī's analysis (1964) are modern studies.
10. Translation
TODO. AI from the Arabic with the glossary in data/sources/mishkat-meta.json; Gairdner (London 1924, archive.org mishkatalanwar0000gair) and Buchman (Provo 1998, ©) to be compared privately.
11. Rights and private layers
J: public domain (text published). Af and S: CC BY-NC-SA transcriptions of copyrighted editions; used for comparison; their readings stay in the private layer, only counts are published. The Sayrawān PDF: private, not used for readings.
12. Open questions / to review
- Review by a person of the 11 misprint corrections and the 16
uncertainreadings, especially طبيعتي/طبقتي and مضرب/مغرب (possible further misprints). - Spot-check the doubtful readings against the dated manuscript AUB Jafet MS 297 G41mA (541/1146; archive.org
ms297g41ma), not done in this pass. - Part III (the seventy veils, pp. 138–c.150) to add.
scripts/recitals/prepare.pyrebuilds passages as{n, text, vowelMask, vowelSource, printedPage, ambiguous}frompassages[].textonly: it dropslabel,printedPagesandfigure(and readsprintedPagefrom a key it does not pass through for base-derived texts, so that becomes null). These must be carried over (or prepare.py extended) whenmishkat.jsonis built. ItsSYSTEMprompt also names "Mehren's edition" and the tilde-alif rule, which do not apply to J.- The GhazaliNiche component (
app/src/components/OtherFigures.tsx) links to OpenITI JK009401 lines; once the reader hasmishkat, it could link to our passages 106–125 instead.
13. Change log
- 2026-09-28: record created; witness survey; base J transcribed pp. 99–138 (introduction, Parts I–II), 126 passages, 8,415 words; 38 Quran quotations replaced and verified; 11 misprints corrected; collated with Af (ʿAfīfī via OpenITI Shamela0012421: 1,540 units, 745 orthographic, 795 substantive) and S (Sayrawān via OpenITI JK009401: 1,391 / 602 / 789). Scripts:
scripts/recitals/mishkat_base.py,scripts/recitals/mishkat_finalize.py,scripts/recitals/check_quotes.py. - 2026-09-28 (later):
prepare.py mishkatvowelled only passages 0–6; every later headless call failed (HTTP 429, monthly spend limit), so passages 7–125 are unvowelled indata/sources/mishkat.json(flagvowellingStatus).printedPage,printedPages,label,figuremerged back from the base (prepare.py drops them); Tanzil text restored in 2 words the AI pass had altered.analyze.py mishkat.json mishkat-analysis.json m1run on this partial text (8,374 words, 5,395 with a root, 690 roots, 78 vowel conflicts): provisional, re-run after vowelling.translate.py mishkat opusnot run (same limit). To finish:python3 scripts/recitals/prepare.py mishkat, re-merge the base fields,analyze.py … m1,translate.py mishkat opus. - 2026-09-28 (after the limit reset):
prepare.py mishkatre-run: 126/126 passages vowelled, 0 failures. Base fields (printedPage,printedPages,label,figure,stoppedAt,figures,comparison) merged back; the verbatim Tanzil text restored in 33 quotations whose marks the AI pass had altered or reordered (all 38 now verbatim inmishkat.json);vowellingStatusflag removed.analyze.py mishkat.json mishkat-analysis.json m1: 8,374 words, 5,391 with a root, 694 roots, 290 vowel conflicts.translate.py mishkat opus: 126/126 passages (app/src/content/ai/mishkat.json; the script also wrote its hard-coded, irrelevant Ibn Zayla stub toapp/public/data/commentaries/mishkat.json).