A Julia package for working with the Quranic Arabic Corpus.
Author alstat
2 Stars
Updated Last
1 Year Ago
Started In
January 2021


Build status Coverage MIT License

A Julia package for working with the Qur'an (Islam's Holy Book), computationally. QuranTree.jl is based on The Quranic Arabic Corpus by Kais Dukes of University of Leeds, and is aimed at offerring a high-level API alternative to the Java package, JQuranTree.


The following are the features of the package:

  • Indexing
    • Intuitive indexing for Chapters, Verses, Words and Parts
  • Transliteration
    • Buckwalter as default
    • Functionality for creating custom transliterator
    • Update transliteration in 1 line of code
  • Complete type for all Morphological Features and Part of Speech
  • Seemless transition between Arabic and Buckwalter (or custom transliteration)
  • Simple Encoding (refer here)
  • Character Normalization
    • For both Arabic and Buckwalter (or custom transliteration)
  • Character Dediacritization
    • For both Arabic and Buckwalter (or custom transliteration)
  • Utilities
    • Function for detailed description of the Morphological Features.
  • Modularity and Type-Safe
    • Can easily integrate with other Julia packages, thanks to Julia's Multiple Dispatch
    • Can easily integrate with Python (using PyCall.jl) and R (Using RCall.jl) for packages that are not yet in Julia
    • Like JQuranTree, QuranTree.jl is type-safe
  • Others
    • Supports Tanzil data
    • Read-only array for raw datasets (Corpus and Tanzil)


To install the package, run the following:

julia> using Pkg
julia> Pkg.add("QuranTree")


    title = "{Q}uran{T}ree.jl: A Julia Package for Quranic {A}rabic Corpus",
    author = "Asaad, Al-Ahmadgaid",
    booktitle = "Proceedings of the Sixth Arabic Natural Language Processing Workshop",
    month = apr,
    year = "2021",
    address = "Kyiv, Ukraine (Virtual)",
    publisher = "Association for Computational Linguistics",
    url = "https://www.aclweb.org/anthology/2021.wanlp-1.22",
    pages = "208--212",



See the documentation.

Used By Packages

No packages found.