Quranic Universal Library (QUL)
repository·main·Indexed 21 days ago
https://github.com/tarteelai/quranic-universal-libraryA Ruby on Rails-based Content Management System (CMS) designed for managing complex Quranic datasets, including translations, tafsirs, audio segments, Mushaf layouts, and morphology. QUL provides resources for discovering, downloading, and integrating Quranic data via JSON or SQLite formats, and includes guidelines for data schema optimization and performance best practices.
What's inside Quranic Universal Library
- The Quranic Universal Library (QUL) is a comprehensive Content Management System (CMS) built with Ruby on Rails and Active Admin. It is designed to manage diverse Quranic datasets, including translations, tafsirs, audio (both ayah-by-ayah and gapless), audio segments, Arabic scripts (ayah and word-by-word), Mushaf layouts, and Quranic grammar/morphology. It also supports user role management, content versioning, and data import/export capabilities.
Overview of QUL Documentation
mainThe Quranic Universal Library (QUL) documentation provides instructions for discovering, downloading, and integrating QUL resources into applications or research workflows.
Key Note: You do not need to run the QUL CMS locally to use most QUL datasets.
Explore Audio, Recitations, and Linguistic Data Resources
mainQUL provides specialized data for audio and linguistic analysis:
- Recitations: Resources and tutorials for audio recitations.
- Morphology: Documentation and tutorials for Quranic morphological data.
Tutorial Index for Resource Integration
mainThe Quranic Universal Library provides end-to-end tutorials for various resource types. Use these tutorials to learn how to implement specific data types into your application. The available tutorials are:
- Recitation:
tutorial-recitation-end-to-end.md - Mushaf Layout:
tutorial-mushaf-layout-end-to-end.md - Translation:
tutorial-translation-end-to-end.md - Tafsir:
tutorial-tafsir-end-to-end.md - Quran Script:
tutorial-quran-script-end-to-end.md - Font:
tutorial-font-end-to-end.md - Quran Metadata:
tutorial-quran-metadata-end-to-end.md - Transliteration:
tutorial-transliteration-end-to-end.md - Surah Information:
tutorial-surah-information-end-to-end.md - Ayah Topics:
tutorial-ayah-topics-end-to-end.md - Morphology:
tutorial-morphology-end-to-end.md - Mutashabihat:
tutorial-mutashabihat-end-to-end.md - Similar Ayah:
tutorial-similar-ayah-end-to-end.md - Ayah Theme:
tutorial-ayah-theme-end-to-end.md
- Recitation:
Explore Translations, Tafsirs, and Transliteration Resources
mainQUL offers resources for semantic and phonetic layers of the Quran:
- Translations: Documentation for various Quranic translations.
- Tafsirs: Resources for Quranic exegesis (Tafsir).
- Transliteration: Guides for handling Quranic transliteration data.
Explore Quran Text, Script, and Metadata Resources
mainQUL provides specialized resources for the structural and visual aspects of the Quranic text:
- Quran Script: Documentation and tutorials for handling Quranic scripts.
- Quran Metadata: Resources for managing Quranic metadata.
- Surah Information: Data and guides regarding Surah-level details.
- Mushaf Layouts: Information on Mushaf-specific layouts.
- Quran Fonts: Resources for Quranic typography and fonts.
Choose a QUL dataset category
mainBefore integrating Quranic Universal Library (QUL) into your application, identify the appropriate dataset category based on your use case. All datasets can be explored via the central resources directory:https://qul.tarteel.ai/resources.Explore Topics, Themes, and Similarities Resources
mainQUL provides semantic analysis and relationship data:
- Ayah Topics: Resources for identifying topics within Ayahs.
- Ayah Theme: Resources for thematic analysis of Ayahs.
- Similar Ayah: Data regarding similarities between different Ayahs.
- Mutashabihat: Resources for handling Mutashabihat (verses with similar wording).
- Topics and Concepts: A legacy umbrella resource for broader thematic data.
What is Mushaf Layout and when to use it
mainMushaf Layout resources provide page-structured layout data for Quran pages, including page lines and word ranges. Unlike standard content resources (recitation, translation, etc.) that are keyed by ayah/word, Mushaf Layout is a rendering-structure resource that provides page geometry.
Use Mushaf Layout when building:
- Page-by-page mushaf readers
- Navigation by page number (instead of only surah/ayah)
- Memorization or classroom tools that depend on printed page structure
By combining layout data with appropriate scripts and fonts, you can recreate a printed mushaf page layout accurately without hardcoding line templates in your application code.
Join different QUL resources together
mainTo combine data from multiple QUL resources, use shared identifiers to perform joins. The primary identifiers available are:
surah_idayah_numberword_position(specifically for word-level resources)
For detailed guidance on the data structure, refer to the
data-model.mddocumentation.How data contribution works in QUL
mainData contributions are primarily managed through the QUL CMS. Each resource type (e.g., translations, audio, morphology) follows its own specific editing and review workflow within the CMS. All contributions undergo a review process before being published to the official resources directory.How Ayah Topics resources are structured
mainAyah Topics resources are designed to map thematic concepts to Quranic verses. They consist of two primary logical layers that should be treated separately in your application logic:
- Topic Entities: Contains metadata such as
name,category,description, andayahs_count. - Topic-to-Ayah Mappings: A relational layer that connects a
topic_idto anayah_key.
Mental Model: Always build your topic search/index first using the topic entities, and only resolve the ayah lists (via the mapping layer) once a specific topic has been selected by the user.
- Topic Entities: Contains metadata such as