{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\n", "---\n", "\n", "To get started: consult [start](start.ipynb)\n", "\n", "---\n", "\n", "# Similar lines\n", "\n", "We spot the similarities between ayas in the quran.\n", "\n", "There are 6216 ayas in the Quran. To compare them all requires 20 million comparisons.\n", "That is a costly operation.\n", "[On this laptop it took 30 whole seconds](https://nbviewer.jupyter.org/github/q-ran/quran/blob/master/programs/parallels.ipynb).\n", "\n", "The good news it that we have stored the outcome in an extra feature.\n", "\n", "This feature is packaged in a TF data module, that we will load below, by using the parameter `mod` in the `use()` statement." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-05-24T10:06:39.818664Z", "start_time": "2018-05-24T10:06:39.796588Z" } }, "outputs": [], "source": [ "import collections\n", "\n", "from tf.app import use" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "TF-app: ~/text-fabric-data/q-ran/quran/app" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/text-fabric-data/q-ran/quran/tf/0.4" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "data: ~/github/q-ran/quran/parallels/tf/0.4" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "This is Text-Fabric 9.2.3\n", "Api reference : https://annotation.github.io/text-fabric/tf/cheatsheet.html\n", "\n", "41 features found and 0 ignored\n" ] }, { "data": { "text/html": [ "Text-Fabric: Text-Fabric API 9.2.3, q-ran/quran/app v3, Search Reference
Data: QURAN, Character table, Feature docs
Features:
\n", "
q-ran/quran/parallels/tf\n", "
\n", "\n", "
\n", "
\n", "sim\n", "
\n", "
int
\n", "
\n", " similarity between ayas, as a percentage of the common material wrt the combined material\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
converters:
\n", "
Cale Johnson, Dirk Roorda
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2020-05-08T10:41:11Z
\n", "
\n", "\n", "
\n", "
editor:
\n", "
Cale Johnson et. al.
\n", "
\n", "\n", "
\n", "
institute:
\n", "
CDL
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
name:
\n", "
AbB Old Babylonian Cuneiform
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "\n", "
Quran\n", "
\n", "\n", "
\n", "
\n", "a\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "ascii\n", "
\n", "
str
\n", "
\n", " transliterated text of word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "ax\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "case\n", "
\n", "
str
\n", "
\n", " case of word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "component\n", "
\n", "
str
\n", "
\n", " role of the word in its word group (prefix, main, or suffix)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "definite\n", "
\n", "
int
\n", "
\n", " whether the word is definite\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "f\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "formation\n", "
\n", "
str
\n", "
\n", " stem formation of verb\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "fx\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "gn\n", "
\n", "
str
\n", "
\n", " gender of word (masculine, feminine)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "interjection\n", "
\n", "
str
\n", "
\n", " kind of interjection\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "l\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "lemma\n", "
\n", "
str
\n", "
\n", " lemma of word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "lx\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "mood\n", "
\n", "
str
\n", "
\n", " mood of a verb (subj, jus, ...)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "n\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "name\n", "
\n", "
str
\n", "
\n", " Name of sura in Arabic\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
language:
\n", "
arabic
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "name@ll\n", "
\n", "
str
\n", "
\n", " Name of sura in English\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
language:
\n", "
english
\n", "
\n", "\n", "
\n", "
languageCode:
\n", "
en
\n", "
\n", "\n", "
\n", "
languageEnglish:
\n", "
English
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "nameAscii\n", "
\n", "
str
\n", "
\n", " Name of sura in Arabic, transliterated\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
language:
\n", "
arabic
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "nameTrans\n", "
\n", "
str
\n", "
\n", " Name of sura in Arabic, transcribed\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
language:
\n", "
arabic
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "nu\n", "
\n", "
str
\n", "
\n", " number of word (singular, dual, plural)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:55Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "number\n", "
\n", "
int
\n", "
\n", " Number of sura, aya, word group, or word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "order\n", "
\n", "
int
\n", "
\n", " ordinal number of sura\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "otype\n", "
\n", "
str
\n", "
\n", " Quran: plain text plus morphological annotations at the word level\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "pos\n", "
\n", "
str
\n", "
\n", " part-of-speech of word, main class\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
documentation:
\n", "
http://corpus.quran.com/documentation/tagset.jsp
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "posx\n", "
\n", "
str
\n", "
\n", " part-of-speech of word, refined class\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
documentation:
\n", "
http://corpus.quran.com/documentation/tagset.jsp
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "ps\n", "
\n", "
str
\n", "
\n", " person of word (1st, 2nd, 3rd)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "root\n", "
\n", "
str
\n", "
\n", " root of word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "sp\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "space\n", "
\n", "
str
\n", "
\n", " material between this word and the next\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "tense\n", "
\n", "
str
\n", "
\n", " tense of a verb (perfect, imperfect, ...)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "translation@ll\n", "
\n", "
str
\n", "
\n", " english translation of whole aya\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
translator:
\n", "
Arthur Arberry (1955), https://en.wikipedia.org/wiki/Arthur_John_Arberry
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "type\n", "
\n", "
str
\n", "
\n", " type of sura\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "unicode\n", "
\n", "
str
\n", "
\n", " unicode arabic text of word\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:56Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "voice\n", "
\n", "
str
\n", "
\n", " voice of a verb (active, passive)\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:57Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "w\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:57Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "wx\n", "
\n", "
str
\n", "
\n", " not yet understood\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:57Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "oslots\n", "
\n", "
none
\n", "
\n", " Quran: plain text plus morphological annotations at the word level\n", "
\n", "\n", "
\n", "
acronym:
\n", "
quran
\n", "
\n", "\n", "
\n", "
convertedBy:
\n", "
Dirk Roorda and Cornelis van Lit
\n", "
\n", "\n", "
\n", "
createdBy:
\n", "
Kais Dukes
\n", "
\n", "\n", "
\n", "
createdDate:
\n", "
2011
\n", "
\n", "\n", "
\n", "
dateWritten:
\n", "
2019-05-13T07:17:57Z
\n", "
\n", "\n", "
\n", "
license1:
\n", "
Open Source, unspecified, see http://corpus.quran.com/releasenotes.jsp
\n", "
\n", "\n", "
\n", "
license2:
\n", "
Creative Commons BY-ND 3.0 Unported
\n", "
\n", "\n", "
\n", "
source1:
\n", "
Morphology: Quranic Arabic Corpus 0.4 (2011) by Kais Dukes
\n", "
\n", "\n", "
\n", "
source1Url:
\n", "
http://corpus.quran.com
\n", "
\n", "\n", "
\n", "
source2:
\n", "
Text: Tanzil Quran Text (Uthmani, version 1.0.2)
\n", "
\n", "\n", "
\n", "
source2Url:
\n", "
http://tanzil.net/docs/home
\n", "
\n", "\n", "
\n", "
writtenBy:
\n", "
Text-Fabric
\n", "
\n", "\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Text-Fabric API: names N F E L T S C TF directly usable

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A = use(\n", " \"q-ran/quran\",\n", " hoist=globals(),\n", " mod=\"q-ran/quran/parallels/tf:clone\",\n", ")\n", "# A = use('q-ran/quran', hoist=globals(), mod='q-ran/quran/parallels/tf')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The new feature is **sim** and it it an edge feature.\n", "It annotates pairs of ayas $(l, m)$ where $l$ and $m$ have similar content.\n", "The degree of similarity is a percentage (between 60 and 100), and this value\n", "is annotated onto the edges.\n", "\n", "Here is an example:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "query = \"\"\"\n", "aya\n", " aya\n", "\"\"\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.02s 2468 results\n" ] } ], "source": [ "results = A.search(query)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "812 ayas with a similar aya, the first one has node number 128221\n" ] } ], "source": [ "similars = [n for n in F.otype.s(\"aya\") if E.sim.b(n)]\n", "exampleAya = similars[0]\n", "print(\n", " f\"{len(similars)} ayas with a similar aya, the first one has node number {exampleAya}\"\n", ")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 similar ayas\n", "132189 with similarity 100\n", "132728 with similarity 67\n" ] }, { "data": { "text/html": [ "\n", "\n", "
npaya
137:182وَٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ
245:36فَلِلَّهِ ٱلْحَمْدُ رَبِّ ٱلسَّمَٰوَٰتِ وَرَبِّ ٱلْأَرْضِ رَبِّ ٱلْعَٰلَمِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sisters = E.sim.b(exampleAya)\n", "print(f\"{len(sisters)} similar ayas\")\n", "print(\"\\n\".join(f\"{s[0]} with similarity {s[1]}\" for s in sisters[0:10]))\n", "A.table(tuple((s[0],) for s in sisters), end=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# All similarities\n", "\n", "Let's first find out the range of similarities:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "minimum similarity is 60\n", "maximum similarity is 100\n" ] } ], "source": [ "minSim = None\n", "maxSim = None\n", "\n", "for ln in F.otype.s(\"aya\"):\n", " sisters = E.sim.f(ln)\n", " if not sisters:\n", " continue\n", " thisMin = min(s[1] for s in sisters)\n", " thisMax = max(s[1] for s in sisters)\n", " if minSim is None or thisMin < minSim:\n", " minSim = thisMin\n", " if maxSim is None or thisMax > maxSim:\n", " maxSim = thisMax\n", "\n", "print(f\"minimum similarity is {minSim:>3}\")\n", "print(f\"maximum similarity is {maxSim:>3}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The bottom lines\n", "\n", "We give a few examples of the least similar lines.\n", "\n", "**N.B.** When lines are less than 60% similar, they have not made it into the `sim` feature!\n", "\n", "We can use a search template to get the 60% lines." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "query = \"\"\"\n", "aya\n", " aya\n", "\"\"\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In words: find a line connected via a sim-edge with value 90 to an other line." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.01s 290 results\n" ] } ], "source": [ "results = A.search(query)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not very much indeed. It seems that lines are either very similar, or not so similar at all." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
nayaaya
12:39  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلنَّارِ هُمْ فِيهَا خَٰلِدُونَ5:10  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلْجَحِيمِ
22:39  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلنَّارِ هُمْ فِيهَا خَٰلِدُونَ5:86  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلْجَحِيمِ
32:107  أَلَمْ تَعْلَمْ أَنَّ ٱللَّهَ لَهُۥ مُلْكُ ٱلسَّمَٰوَٰتِ وَٱلْأَرْضِ وَمَا لَكُم مِّن دُونِ ٱللَّهِ مِن وَلِىٍّ وَلَا نَصِيرٍ29:22  وَمَآ أَنتُم بِمُعْجِزِينَ فِى ٱلْأَرْضِ وَلَا فِى ٱلسَّمَآءِ وَمَا لَكُم مِّن دُونِ ٱللَّهِ مِن وَلِىٍّ وَلَا نَصِيرٍ
43:5  إِنَّ ٱللَّهَ لَا يَخْفَىٰ عَلَيْهِ شَىْءٌ فِى ٱلْأَرْضِ وَلَا فِى ٱلسَّمَآءِ14:38  رَبَّنَآ إِنَّكَ تَعْلَمُ مَا نُخْفِى وَمَا نُعْلِنُ وَمَا يَخْفَىٰ عَلَى ٱللَّهِ مِن شَىْءٍ فِى ٱلْأَرْضِ وَلَا فِى ٱلسَّمَآءِ
53:74  يَخْتَصُّ بِرَحْمَتِهِۦ مَن يَشَآءُ وَٱللَّهُ ذُو ٱلْفَضْلِ ٱلْعَظِيمِ62:4  ذَٰلِكَ فَضْلُ ٱللَّهِ يُؤْتِيهِ مَن يَشَآءُ وَٱللَّهُ ذُو ٱلْفَضْلِ ٱلْعَظِيمِ
64:138  بَشِّرِ ٱلْمُنَٰفِقِينَ بِأَنَّ لَهُمْ عَذَابًا أَلِيمًا15:50  وَأَنَّ عَذَابِى هُوَ ٱلْعَذَابُ ٱلْأَلِيمُ
74:138  بَشِّرِ ٱلْمُنَٰفِقِينَ بِأَنَّ لَهُمْ عَذَابًا أَلِيمًا84:24  فَبَشِّرْهُم بِعَذَابٍ أَلِيمٍ
85:10  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلْجَحِيمِ2:39  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلنَّارِ هُمْ فِيهَا خَٰلِدُونَ
95:86  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلْجَحِيمِ2:39  وَٱلَّذِينَ كَفَرُوا۟ وَكَذَّبُوا۟ بِـَٔايَٰتِنَآ أُو۟لَٰٓئِكَ أَصْحَٰبُ ٱلنَّارِ هُمْ فِيهَا خَٰلِدُونَ
106:30  وَلَوْ تَرَىٰٓ إِذْ وُقِفُوا۟ عَلَىٰ رَبِّهِمْ قَالَ أَلَيْسَ هَٰذَا بِٱلْحَقِّ قَالُوا۟ بَلَىٰ وَرَبِّنَا قَالَ فَذُوقُوا۟ ٱلْعَذَابَ بِمَا كُنتُمْ تَكْفُرُونَ46:34  وَيَوْمَ يُعْرَضُ ٱلَّذِينَ كَفَرُوا۟ عَلَى ٱلنَّارِ أَلَيْسَ هَٰذَا بِٱلْحَقِّ قَالُوا۟ بَلَىٰ وَرَبِّنَا قَالَ فَذُوقُوا۟ ٱلْعَذَابَ بِمَا كُنتُمْ تَكْفُرُونَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A.table(results, start=1, end=10, withPassage=\"1 2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or in lemma transcription:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
nayaaya
12:39  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b naAr fiY xa`lid5:10  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b jaHiym
22:39  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b naAr fiY xa`lid5:86  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b jaHiym
32:107  lam Ealima >an~ {ll~ah mulok samaA^' >aroD maA min duwn {ll~ah min waliY~ laA naSiyr29:22  maA muEojiz fiY >aroD laA fiY samaA^' maA min duwn {ll~ah min waliY~ laA naSiyr
43:5  <in~ {ll~ah laA yaxofaY` EalaY` $aYo' fiY >aroD laA fiY samaA^'14:38  rab~ <in~ Ealima maA >uxofiYa maA >aEolan maA yaxofaY` EalaY` {ll~ah min $aYo' fiY >aroD laA fiY samaA^'
53:74  yaxotaS~u raHomap man $aA^'a {ll~ah *uw faDol EaZiym62:4  *a`lik faDol {ll~ah A^taY man $aA^'a {ll~ah *uw faDol EaZiym
64:138  bu$~ira muna`fiquwn >an~ Ea*aAb >aliym15:50  >an~ Ea*aAb Ea*aAb >aliym
74:138  bu$~ira muna`fiquwn >an~ Ea*aAb >aliym84:24  bu$~ira Ea*aAb >aliym
85:10  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b jaHiym2:39  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b naAr fiY xa`lid
95:86  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b jaHiym2:39  {l~a*iY kafara ka*~aba 'aAyap >uwla`^}ik >aSoHa`b naAr fiY xa`lid
106:30  law ra'aA <i* wuqifu EalaY` rab~ qaAla l~ayosa ha`*aA Haq~ qaAla balaY` rab~ qaAla *aAqu Ea*aAb maA kaAna kafara46:34  yawom EaraDa {l~a*iY kafara EalaY` naAr l~ayosa ha`*aA Haq~ qaAla balaY` rab~ qaAla *aAqu Ea*aAb maA kaAna kafara
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A.table(results, start=1, end=10, fmt=\"lex-trans-full\", withPassage=\"1 2\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From now on we forget about the level of similarity, and focus on whether two lines are just \"similar\", meaning that they have\n", "a high degree of similarity." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Cluster the lines\n", "\n", "Before we try to find them, let's see if we can cluster the lines in similar clusters." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "CLUSTER_THRESHOLD = 0.5\n", "\n", "\n", "def makeClusters():\n", " A.indent(reset=True)\n", " chunkSize = 1000\n", " b = 0\n", " j = 0\n", " clusters = []\n", " for ln in F.otype.s(\"aya\"):\n", " j += 1\n", " b += 1\n", " if b == chunkSize:\n", " b = 0\n", " A.info(f\"{j:>5} ayas and {len(clusters):>5} clusters\")\n", " lSisters = {x[0] for x in E.sim.b(ln)}\n", " lAdded = False\n", " for cl in clusters:\n", " if len(cl & lSisters) > CLUSTER_THRESHOLD * len(cl):\n", " cl.add(ln)\n", " lAdded = True\n", " break\n", " if not lAdded:\n", " clusters.append({ln})\n", " A.info(f\"{j:>5} ayas and {len(clusters):>5} clusters\")\n", " return clusters" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0.10s 1000 ayas and 985 clusters\n", " 0.34s 2000 ayas and 1956 clusters\n", " 0.76s 3000 ayas and 2903 clusters\n", " 1.31s 4000 ayas and 3777 clusters\n", " 2.03s 5000 ayas and 4673 clusters\n", " 2.86s 6000 ayas and 5564 clusters\n", " 3.09s 6236 ayas and 5777 clusters\n" ] } ], "source": [ "clusters = makeClusters()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the distribution of the clusters, in terms of how many similar lines they contain?\n", "We count them." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "clusters of size 32: 1\n", "clusters of size 12: 1\n", "clusters of size 9: 1\n", "clusters of size 8: 2\n", "clusters of size 7: 2\n", "clusters of size 6: 2\n", "clusters of size 5: 3\n", "clusters of size 4: 14\n", "clusters of size 3: 24\n", "clusters of size 2: 271\n", "clusters of size 1: 5456\n" ] } ], "source": [ "clusterSizes = collections.Counter()\n", "\n", "for cl in clusters:\n", " clusterSizes[len(cl)] += 1\n", "\n", "for (size, amount) in sorted(\n", " clusterSizes.items(),\n", " key=lambda x: (-x[0], x[1]),\n", "):\n", " print(f\"clusters of size {size:>4}: {amount:>5}\")" ] }, { "cell_type": "markdown", "metadata": { "incorrectly_encoded_metadata": "toc-hr-collapsed=false" }, "source": [ "# Interesting groups\n", "\n", "Let's investigate some interesting groups, that lie in some sweet spots.\n", "\n", "* the biggest clusters: more than 31 members\n", "* the medium clusters: between 5 and 31 members\n", "* the small clusters: between 2 and 4 members" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Medium clusters\n", "\n", "There are a few ayas that occur in a moderately sized cluster. Lets print those clusters:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 9 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
126:108فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
226:110فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
326:126فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
426:131فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
526:144فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
626:150فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
726:163فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
826:179فَٱتَّقُوا۟ ٱللَّهَ وَأَطِيعُونِ
971:3أَنِ ٱعْبُدُوا۟ ٱللَّهَ وَٱتَّقُوهُ وَأَطِيعُونِ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 8 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
126:8إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
226:67إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
326:103إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
426:121إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
526:139فَكَذَّبُوهُ فَأَهْلَكْنَٰهُمْ إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
626:158فَأَخَذَهُمُ ٱلْعَذَابُ إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
726:174إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
826:190إِنَّ فِى ذَٰلِكَ لَءَايَةً وَمَا كَانَ أَكْثَرُهُم مُّؤْمِنِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 8 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
126:9وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
226:68وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
326:104وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
426:122وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
526:140وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
626:159وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
726:175وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
826:191وَإِنَّ رَبَّكَ لَهُوَ ٱلْعَزِيزُ ٱلرَّحِيمُ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 7 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
110:48وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
221:38وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
327:71وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
432:28وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْفَتْحُ إِن كُنتُمْ صَٰدِقِينَ
534:29وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
636:48وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
767:25وَيَقُولُونَ مَتَىٰ هَٰذَا ٱلْوَعْدُ إِن كُنتُمْ صَٰدِقِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 7 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
115:40إِلَّا عِبَادَكَ مِنْهُمُ ٱلْمُخْلَصِينَ
237:40إِلَّا عِبَادَ ٱللَّهِ ٱلْمُخْلَصِينَ
337:74إِلَّا عِبَادَ ٱللَّهِ ٱلْمُخْلَصِينَ
437:128إِلَّا عِبَادَ ٱللَّهِ ٱلْمُخْلَصِينَ
537:160إِلَّا عِبَادَ ٱللَّهِ ٱلْمُخْلَصِينَ
637:169لَكُنَّا عِبَادَ ٱللَّهِ ٱلْمُخْلَصِينَ
738:83إِلَّا عِبَادَكَ مِنْهُمُ ٱلْمُخْلَصِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 6 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
110:1الٓر تِلْكَ ءَايَٰتُ ٱلْكِتَٰبِ ٱلْحَكِيمِ
212:1الٓر تِلْكَ ءَايَٰتُ ٱلْكِتَٰبِ ٱلْمُبِينِ
326:2تِلْكَ ءَايَٰتُ ٱلْكِتَٰبِ ٱلْمُبِينِ
427:1طسٓ تِلْكَ ءَايَٰتُ ٱلْقُرْءَانِ وَكِتَابٍ مُّبِينٍ
528:2تِلْكَ ءَايَٰتُ ٱلْكِتَٰبِ ٱلْمُبِينِ
631:2تِلْكَ ءَايَٰتُ ٱلْكِتَٰبِ ٱلْحَكِيمِ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 6 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
npaya
112:104وَمَا تَسْـَٔلُهُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ هُوَ إِلَّا ذِكْرٌ لِّلْعَٰلَمِينَ
226:109وَمَآ أَسْـَٔلُكُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ أَجْرِىَ إِلَّا عَلَىٰ رَبِّ ٱلْعَٰلَمِينَ
326:127وَمَآ أَسْـَٔلُكُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ أَجْرِىَ إِلَّا عَلَىٰ رَبِّ ٱلْعَٰلَمِينَ
426:145وَمَآ أَسْـَٔلُكُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ أَجْرِىَ إِلَّا عَلَىٰ رَبِّ ٱلْعَٰلَمِينَ
526:164وَمَآ أَسْـَٔلُكُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ أَجْرِىَ إِلَّا عَلَىٰ رَبِّ ٱلْعَٰلَمِينَ
626:180وَمَآ أَسْـَٔلُكُمْ عَلَيْهِ مِنْ أَجْرٍ إِنْ أَجْرِىَ إِلَّا عَلَىٰ رَبِّ ٱلْعَٰلَمِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 5 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
npaya
126:107إِنِّى لَكُمْ رَسُولٌ أَمِينٌ
226:125إِنِّى لَكُمْ رَسُولٌ أَمِينٌ
326:143إِنِّى لَكُمْ رَسُولٌ أَمِينٌ
426:162إِنِّى لَكُمْ رَسُولٌ أَمِينٌ
526:178إِنِّى لَكُمْ رَسُولٌ أَمِينٌ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 5 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
npaya
137:80إِنَّا كَذَٰلِكَ نَجْزِى ٱلْمُحْسِنِينَ
237:110كَذَٰلِكَ نَجْزِى ٱلْمُحْسِنِينَ
337:121إِنَّا كَذَٰلِكَ نَجْزِى ٱلْمُحْسِنِينَ
437:131إِنَّا كَذَٰلِكَ نَجْزِى ٱلْمُحْسِنِينَ
577:44إِنَّا كَذَٰلِكَ نَجْزِى ٱلْمُحْسِنِينَ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Cluster with 5 ayas\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "
npaya
157:1سَبَّحَ لِلَّهِ مَا فِى ٱلسَّمَٰوَٰتِ وَٱلْأَرْضِ وَهُوَ ٱلْعَزِيزُ ٱلْحَكِيمُ
259:1سَبَّحَ لِلَّهِ مَا فِى ٱلسَّمَٰوَٰتِ وَمَا فِى ٱلْأَرْضِ وَهُوَ ٱلْعَزِيزُ ٱلْحَكِيمُ
359:24هُوَ ٱللَّهُ ٱلْخَٰلِقُ ٱلْبَارِئُ ٱلْمُصَوِّرُ لَهُ ٱلْأَسْمَآءُ ٱلْحُسْنَىٰ يُسَبِّحُ لَهُۥ مَا فِى ٱلسَّمَٰوَٰتِ وَٱلْأَرْضِ وَهُوَ ٱلْعَزِيزُ ٱلْحَكِيمُ
461:1سَبَّحَ لِلَّهِ مَا فِى ٱلسَّمَٰوَٰتِ وَمَا فِى ٱلْأَرْضِ وَهُوَ ٱلْعَزِيزُ ٱلْحَكِيمُ
562:1يُسَبِّحُ لِلَّهِ مَا فِى ٱلسَّمَٰوَٰتِ وَمَا فِى ٱلْأَرْضِ ٱلْمَلِكِ ٱلْقُدُّوسِ ٱلْعَزِيزِ ٱلْحَكِيمِ
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mediumClusters = []\n", "\n", "for cluster in clusters:\n", " nAyas = len(cluster)\n", " if 4 < nAyas < 10:\n", " mediumClusters.append(cluster)\n", "\n", "for cluster in sorted(\n", " mediumClusters,\n", " key=lambda x: -len(x),\n", "):\n", " print(f\"Cluster with {len(cluster)} ayas\")\n", " A.table([(a,) for a in sorted(cluster)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Next steps\n", "\n", "* **[display](display.ipynb)** become an expert in creating pretty displays of your text structures\n", "* **[search](search.ipynb)** turbo charge your hand-coding with search templates\n", "* **[exportExcel](exportExcel.ipynb)** make tailor-made spreadsheets out of your results\n", "* **[share](share.ipynb)** draw in other people's data and let them use yours\n", "* **similar Ayas** spot the similarities between lines\n", "* **[rings](rings.ipynb)** ring structures in sura 2\n", "\n", "CC-BY Dirk Roorda" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.2" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }