isnady 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +38 -8
  2. package/index.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -8,12 +8,12 @@
8
8
 
9
9
  <p align="center">
10
10
  <a href="https://pypi.org/project/isnady/">
11
- <img src="https://img.shields.io/badge/PyPI-v0.3.0-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
11
+ <img src="https://img.shields.io/badge/PyPI-v0.3.2-1D4777?style=for-the-badge&logo=pypi&logoColor=white" alt="PyPI">
12
12
  </a>
13
13
  <img src="https://img.shields.io/pypi/pyversions/isnady?style=for-the-badge&color=A47E24&logo=python&logoColor=white" alt="Python">
14
14
  <img src="https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS-5B6878?style=for-the-badge" alt="Platform">
15
15
  <a href="https://www.npmjs.com/package/isnady">
16
- <img src="https://img.shields.io/badge/npm-v0.3.0-14304F?style=for-the-badge&logo=npm" alt="npm">
16
+ <img src="https://img.shields.io/badge/npm-v0.3.2-14304F?style=for-the-badge&logo=npm" alt="npm">
17
17
  </a>
18
18
  <a href="https://github.com/bayramkotan/isnady-data">
19
19
  <img src="https://img.shields.io/badge/data-isnady--data-2E6B4F?style=for-the-badge&logo=github" alt="isnady-data">
@@ -45,7 +45,7 @@
45
45
  <img src="https://raw.githubusercontent.com/bayramkotan/isnady/main/assets/screenshots/search-arabic.png" alt="Searching النيات finds بالنيات in Sahih al-Bukhari 1, with the chain above the text" width="850">
46
46
  </p>
47
47
 
48
- > **Pre-alpha (0.3.0).** Search, chains of transmission, narrators, books, scholars, statistics and
48
+ > **Pre-alpha (0.3.2).** Search, chains of transmission, narrators, books, scholars, statistics and
49
49
  > the glossary work today, Sunni and Shia, on data you import in one click. Everything is built in
50
50
  > the open, one piece at a time.
51
51
 
@@ -336,7 +336,7 @@ without authentication (credentials are never stored), are read as well.
336
336
  | **Pasted passages** | Punctuation and quotation marks clinging to the words do not matter |
337
337
  | **Books** | All books, all Sunni, all Shia, or any few ticked one by one |
338
338
  | **Order** | Book by book in the order of the book lists — Sahih al-Bukhari, Sahih Muslim, Sunan Abi Dawud … then the Shia books — and within a book by its numbering |
339
- | **Language** | One language to search in; the languages you do not read are folded behind an arrow on each hadith, a click opens them. The list holds the languages imported; the languages the same books have in isnady-data (Urdu, Indonesian, Bengali, French, Russian, Tamil) are named at its end — choosing them opens **File → Data Sources** to import them |
339
+ | **Language** | One language or several to search in — tick them in the list (Arabic and Turkish, say); the languages you do not read are folded behind an arrow on each hadith, a click opens them. The list holds the languages imported; the languages the same books have in isnady-data (Urdu, Indonesian, Bengali, French, Russian, Tamil) are named at its end — choosing them opens **File → Data Sources** to import them |
340
340
  | **Active books** | A book can be switched off in **Settings → Books and languages**: it stays imported but is left out of searches, book lists and statistics until switched on |
341
341
  | **Grades** | Shown under each hadith with the scholar's name, exactly as given, and explained when you point at them |
342
342
  | **Highlighting** | On the original, diacritised text, diacritics included |
@@ -475,11 +475,22 @@ The **Narrators** page lists every narrator of the imported rijal works — **Al
475
475
  - what his critic says, in the critic's own words: Ibn Hajar's verdict and its rank for a Sunni
476
476
  narrator; al-Najashi's words, reliability and creed for a Shia narrator — the entry as written one
477
477
  click away;
478
+ - **the entry of the classical work beside the life written for isnady**: for 109 of the written lives, al-Dhahabi's
479
+ *Siyar A'lam al-Nubala'* in its own words — "vol. 2, no. 126" for Abu Hurayra — downloaded once on request (about
480
+ 22 MB, from OpenITI) and kept in your data folder; the Prophet's life ﷺ points to Ibn Hisham's *Sira* and to
481
+ al-Tirmidhi's *al-Shama'il* in isnady;
478
482
  - tabaqa and death year, the books his hadith appear in (Ibn Hajar's marks);
479
483
  - **whom he narrates from and who narrates from him** in the imported chains, and the compilers who
480
484
  narrate from him directly;
481
485
  - every hadith whose chain includes him, each a click from its chain.
482
486
 
487
+ **Who a name in a chain is.** A chain names its men as the narrators named each other — "Ibrahim", "Abu Ishaq",
488
+ "al-Hasan" — and isnady reads each name against the Taqrib (or al-Najashi on road B) by the name itself, the
489
+ generation, the books, and then by its neighbours: whom the same pair of teacher and student is in the chains where
490
+ they are named in full; a client named "mawla of X" by his patron; the well-known men a bare name means in a given
491
+ circle (Ibrahim from 'Alqama is al-Nakha'i, Abu Ishaq from al-Bara' is al-Sabi'i). About 218,000 links are
492
+ identified this way, more than half of every Sunni chain.
493
+
483
494
  Sunni narrators filter by tabaqa, rank and book; Shia narrators by the Imami assessment.
484
495
 
485
496
  <p align="center">
@@ -506,6 +517,14 @@ isnady carries its own — all 642 chapter titles of the 33 books in Turkish and
506
517
  al-Mufrad, Bulugh al-Maram, Mishkat, Riyad al-Salihin, al-Shama'il). The book titles too: *Sahîh-i Buhârî*,
507
518
  *صحيح البخاري*.
508
519
 
520
+ Musnad Ahmad and Sunan al-Darimi come as numbered texts without chapters; isnady keeps their tables of contents
521
+ itself, two levels deep, from the editions in OpenITI: the Musnad in its 13 parts (the Ten promised Paradise, the
522
+ Household of the Prophet ﷺ, the Companions who narrated most, the Companions of Mecca, Medina, Syria and Kufa, the
523
+ Ansar, the Tribes) and under them the musnad of each Companion — 1,252 in all, Abu Bakr al-Siddiq's first —; al-Darimi
524
+ in its 24 books (Introduction, Purification, Prayer …) and 1,382 chapters (bab). The parts and books are named in
525
+ the interface language; the musnad of every Companion in Turkish and English too ("Hz. Ebû Bekir es-Sıddîk (r.a.)
526
+ müsnedi", "Musnad of Abu Bakr al-Siddiq (RA)"), al-Darimi's chapters in the Arabic of the book.
527
+
509
528
  The shelf holds the Sunni and the Shia books together, each under its own heading — *All*, *Sunni*
510
529
  or *Shia* at the top shows one of them alone — and every Shia book carries a gold *Shia* tag. Books
511
530
  are not tied to hadith collections: a work is a tree of any depth (volume, book, chapter, section)
@@ -557,6 +576,7 @@ it. Every result is computed once and saved as JSON in your data folder (`derive
557
576
 
558
577
  | Section | What it shows |
559
578
  |---|---|
579
+ | **All books** | the first entry of the book list: every section measured on both roads at once, each road under its own heading — never added together |
560
580
  | **Overview** | the corpus at a glance: books, hadith, chains, narrators, grades |
561
581
  | **Narrators** | reliability, concentration (the busiest 10% carry 75% of the transmission — the Lorenz curve) and the pillars of transmission |
562
582
  | **Chains** | length, the weakest link, and the time between narrators (who could not have met) |
@@ -629,7 +649,10 @@ Shia are shown as the line of the Prophet's family ﷺ that the Sunni genealogis
629
649
  is the Shia's belief, shown as theirs (where the Sunni historians differ — a son of al-Hasan al-'Askari — the box
630
650
  is dashed and both are given).
631
651
 
632
- Click a name for what the sources say about it; a narrator opens on the Narrators page, which has the links to
652
+ Click a name for what the sources say about it. The Prophet ﷺ opens his life, with the sira to read; a prophet
653
+ whose name the Qur'an and the hadith give opens the hadith that speak of him — the Sunni books and the Shia books
654
+ apart, each a click from its book; a Companion, a caliph or an Imam whose life isnady has opens it, and the Narrators
655
+ page links back to his place in the tree of Quraysh. A narrator opens on the Narrators page, which has the links to
633
656
  his family and his line of learning too. `iy tree prophets`, `iy tree prophets Musa`, `iy tree family "Ibn
634
657
  Umar"`, `iy tree learning al-Zuhri --depth 2 --width 4`.
635
658
 
@@ -760,6 +783,12 @@ and a folder named `isnady-data` beside a portable application is used instead:
760
783
 
761
784
  ---
762
785
 
786
+ **Profiles.** Several people can use one isnady, each with their own settings, place in the books and bookmarks:
787
+ **File → Profiles** makes, switches, renames, deletes, exports and imports them (one `.isnady-profile.zip` file
788
+ carries a profile to another computer). The books and the database are shared. The first profile is the data folder
789
+ itself, so nothing changes for anyone who never makes a second one. `iy profile list`, `iy profile new Ayşe`,
790
+ `iy profile use Ayşe`, `iy profile export Ayşe ~/`; `ISNADY_PROFILE=Ayşe iy …` for one command.
791
+
763
792
  ## ⌨️ CLI
764
793
 
765
794
  Everything the window does also works without it — on a server, over SSH, or in a script. The
@@ -776,10 +805,11 @@ command line never loads Qt. Every command that takes a book accepts its full na
776
805
  | `iy book [KEY [CHAPTER]]` | `iy book bukhari 2` | The books; a book's chapters; a chapter read in order |
777
806
  | `iy scholar [NAME]` | `iy scholar albani` | The scholars in the data, or one of them with his measured statistics |
778
807
  | `iy tahric BOOK NUMBER` | `iy tahric bukhari 1` | Other narrations of a hadith in the imported books (takhrij) |
779
- | `iy stats [SECTION]` | `iy stats graders --book abudawud` | `corpus`, `narrators`, `chains`, `grades`, `books`, `graders`, `model`, `lab`; `--csv DIR`, `--recompute` |
808
+ | `iy stats [SECTION]` | `iy stats graders --book abudawud` | `corpus`, `narrators`, `chains`, `grades`, `books`, `graders`, `model`, `lab`; `--csv DIR`, `--recompute`; `--book @all` measures both roads |
780
809
  | `iy term [NAME]` | `iy term --search tadlis` | The glossary, English, Turkish or Arabic (`--lang tr`, `--lang ar`) |
781
- | `iy life NAME` | `iy life Abu Hurayra --lang tr` | The life of a Companion, a narrator or a scholar (`--lang en\|tr\|ar`, `--tradition`, `--limit`) |
782
- | `iy tree WHICH [NAME]` | `iy tree family "Ibn Umar"` | Genealogies: `prophets`, `quraysh`, a narrator's `family`, his line of `learning` (`--depth`, `--width`) |
810
+ | `iy life NAME` | `iy life Abu Hurayra --lang tr` | The life of a Companion, a narrator or a scholar (`--lang en\|tr\|ar`, `--tradition`, `--limit`); `--source` downloads al-Dhahabi's *Siyar* and shows its entry |
811
+ | `iy tree WHICH [NAME]` | `iy tree family "Ibn Umar"` | Genealogies: `prophets`, `quraysh`, a narrator's `family`, his line of `learning` (`--depth`, `--width`); `--hadith` the hadith that speak of a prophet |
812
+ | `iy profile ACTION` | `iy profile new Ayşe --copy default` | Profiles: `list`, `new`, `use`, `rename`, `delete`, `export`, `import` |
783
813
  | `iy bookmark ACTION` | `iy bookmark add hadith bukhari:1 --folder Prayer` | Bookmarks: `list`, `folders`, `add`, `remove`, `export`, `import` |
784
814
  | `iy ai build` | `iy ai status` | Learn the meaning index from the imported texts |
785
815
  | `iy catalog list` | `iy catalog list --repo lk-hadith-corpus` | The books of the repository in use, and your own, with what is imported |
package/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * database (used by both the Python and JavaScript packages) exists.
7
7
  */
8
8
 
9
- export const version = "0.3.0";
9
+ export const version = "0.3.2";
10
10
  export const name = "isnady";
11
11
 
12
12
  /** Returns basic package information. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "isnady",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Hadith search with full isnad chains, narrator biographies, jarh wa ta'dil verdicts and reliability scores",
5
5
  "type": "module",
6
6
  "main": "./index.js",