Repository navigation
Releases: bayramkotan/isnady
Release list
isnady 0.1.7
Statistics in depth: the narrators, the chains and the grades measured, each finding said in a sentence.
- A new Statistics page: one section at a time — Overview, Narrators, Chains, Grades and chains, Books, Graders —
each a few findings: a sentence that says what the numbers show, the chart that shows it, the figures on hover,
and, folded until asked for, how to read it and how it was measured. Every finding can be saved as CSV for a
thesis or a paper. All books or one, chosen at the top; computed once in the background and kept while the data is
unchanged. - Narrators: Ibn Hajar's ranks of everyone he judged, of the narrators in the chains, and of every name counted
as often as it appears (what the hadith actually rest on); how concentrated the transmission is (Lorenz curve,
Gini, the busiest 1% and 10%, how few carry half); the pillars, the weak narrators the most hadith pass through,
the network (PageRank on who narrates from whom), and reliability generation by generation. Names in the interface
language; a click opens the narrator. - Chains: length (isnad 'ali and nazil); the weakest link of every chain; teacher–student pairs too far apart in
time and pairs out of the order of generations — each a sign of a wrongly identified name or a wrong year, listed
so it can be checked. - Grades and chains: does the weakest narrator foretell the grade? Kendall's tau-b and Goodman–Kruskal's gamma
with bootstrap intervals for every grader of every book, the cross-tables behind them, and chain length against
grade. Ranks and grades stay ordered categories: counted, cross-tabulated and rank-correlated, never averaged. - The hadith model (Statistics → The hadith model;
iy stats model): what each scholar's grade follows, as an
ordinal (proportional-odds) regression of the grade on the hadith's best chain — its weakest narrator, further weak
narrators, length, names not identified, chains in the book, narrations elsewhere, stopping short of the Prophet, a
doubtful link. Odds ratios with 95% intervals, a likelihood-ratio test for every factor (Holm-adjusted), McFadden's
R², accuracy against the base rate, Somers' D, a calibration chart; the hadith graded higher than their chain
foretells (candidates for strengthening by other routes) and lower (candidates for a hidden defect), and the
surprises several scholars share. Fitted in pure Python and checked against statsmodels' OrderedModel (the same
estimates; standard errors within 0.005). - Books side by side, and the narrators each pair of books shares.
- Command line:
iy stats corpus|narrators|chains|grades|books [--book KEY] [--csv DIR]. - Charts follow one design: thin marks, a two-sided blue–grey–red scale for ranks and grades (accepted ↔ rejected),
solid hairline grids, a legend and the figures on hover so colour never carries meaning alone.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.7-windows-portable.exe — portable: nothing to install, run it from anywhere. Windows may say the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.7-linux-x86_64.AppImage — portable: chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.7-macos-arm64.zip — unzip, run isnady.app |
| macOS, Intel | isnady-0.1.7-macos-x86_64.zip |
| Python | pip install -U isnady (or iy update) |
All three applications are portable. Put a folder named isnady-data beside the file and isnady keeps its databases
and settings there — isnady on a USB stick. The macOS app is not notarized: the first time, right-click it and choose
Open. SHA256SUMS.txt lists the checksum of every file. The same version is on PyPI and npm.
isnady 0.1.6
Names in your language, the two languages always in sight, close spellings found, and themes that change at once.
-
Names read in the interface language: every Arabic name isnady can read is shown in Latin letters where it
was shown only in Arabic — the teachers and Companions of a compiler (Hadith Scholars), a narrator's teachers and
students (Narrators) — with the Arabic on hover; a name isnady cannot read yet stays in Arabic. -
Two languages, always in sight (sidebar, and View → Interface Language / Content Languages): the
interface language, English or Türkçe, decides how names are read (Musaddad b. Musarhad / Müsedded b.
Müserhed) and the language of the glossary — menus and pages are in English for now; the content languages
are the languages the hadith texts are shown in (all, or those chosen). A text a search matched is shown whatever
its language, and each book in Books can still choose its own.iy config set view.ui_language tr,
iy config set view.content_languages "Arabic,Turkish". -
The npm README is written the same on every system (LF line endings), so its MD5 is the same on Windows.
-
Close spellings (Search → Narrators and Scholars, the Narrators page,
iy search --in): when the letters
typed find little, isnady looks for names one slip away — a letter typed twice or missing ("zuberyyyr",
"Buhaari", "Müslümm"), two letters swapped, one wrong, or written as Turkish and English differ (h and kh,
"Buhari" = al-Bukhari; z and dh, "Muaz bin Cebel" = Mu'adh b. Jabal; a final h, "Abu Hurayrah"). They come after
every exact match, each card marked "≈ close spelling", and the page says when nothing was written exactly so. -
Weaker matches apart: Arabic is written without its short vowels, so names are matched by their consonants
first — and "Bayram" (b-r-m) has the consonants of al-Barmaki. A Latin query is now compared with the READINGS of
the parts of the name it matched; where the vowels differ the match is weaker, shown after the others under
"Weaker matches" with the reason, and each such card names the word it matched (البرمكي). A name isnady cannot
read yet is marked "same consonants" rather than judged. -
Turkish and one-word names: "İbni Abbas", "İbni Ömer", "binti" are read as ibn and bint; "Abdullah",
"Abdurrahman", "Abdülaziz", عبدالله typed as one word are found as the books write them (عبد الله, عبد الرحمن);
an Arabic name typed without the article finds it with it (زبير finds الزبير). -
A new theme in under a second or so, instead of five to seven: Qt styles every widget of the window again,
the hidden pages too, and every page was then drawn again — the two narrator lists alone are two thousand
widgets. Now the pages let go of what they show before the new style is applied, the page in view is drawn at
once, and every other page is drawn when it is next opened. The style engine is no longer set up again on every
change. Measured with Sunan Abi Dawud, the Taqrib and al-Najashi imported: 5.5–7.6 s before, 0.7–1.3 s now. -
Pages draw faster: the settings file is read again only when it changes (drawing the Narrators list asked
for it over a thousand times), and the names a narrator is known by are not worked out again while nothing
in the database has changed. The Narrators and Shia Rijal pages open in about half the time.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.6-windows-portable.exe — portable: nothing to install, run it from anywhere. Windows may say the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.6-linux-x86_64.AppImage — portable: chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.6-macos-arm64.zip — unzip, run isnady.app |
| macOS, Intel | isnady-0.1.6-macos-x86_64.zip |
| Python | pip install -U isnady (or iy update) |
All three applications are portable. Put a folder named isnady-data beside the file and isnady keeps its databases
and settings there — isnady on a USB stick. The macOS app is not notarized: the first time, right-click it and choose
Open. SHA256SUMS.txt lists the checksum of every file. The same version is on PyPI and npm.
isnady 0.1.5
Search finds people: the narrators of both traditions and the scholars of hadith.
- Search → Narrators / Scholars: a drop-down before the search field chooses what is searched — Hadith (the
default at every start), Narrators or Scholars. Each card shows the person in brief: the name he is known by, in
reading and in Arabic, his full name, his standing in words (the Arabic term and Ibn Hajar's rank, or al-Najashi's
judgment and the narrator's school, on hover), his generation, year of death and how often he is in the imported
chains. A click opens him on his own page: Narrators, Shia Rijal or Hadith Scholars. - Both traditions in one search, each card marked Sunni or Shia, with a Tradition filter. The two are never
matched to each other: each keeps its own terms. - The closest first: the person KNOWN by the words typed (Abu Hurayra, al-Zuhri, Ibn Umar), then those in whose
name they stand, then those whose entry only mentions them. A scholar known by the name is first among the
narrators too ("Bukhari" → Muhammad b. Isma'il, "Abu Dawud" → Sulayman b. al-Ash'ath). - Turkish and English spellings alike: "Âişe", "Ebû Hüreyre", "İbn Ömer", "Câbir", "Buhârî", "Elbânî" find
the same people as "Aisha", "Abu Hurayra", "Ibn Umar", "Jabir", "al-Bukhari", "al-Albani". Names are matched by
their consonants, and the vowels then put A'isha before al-A'sha and Umar before 'Amir. - Narrator search, also on the Narrators page: "b." is read as ibn ("Hammad b. Zayd" found nothing); a match in
the person's own entry counts above the same name read from another entry; a two-letter skeleton ("Anas",
"Aisha") must be a whole word, no longer the beginning of hundreds.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.5-windows-portable.exe — portable: nothing to install, run it from anywhere. Windows may say the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.5-linux-x86_64.AppImage — portable: chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.5-macos-arm64.zip — unzip, run isnady.app |
| macOS, Intel | isnady-0.1.5-macos-x86_64.zip |
| Python | pip install -U isnady (or iy update) |
All three applications are portable. Put a folder named isnady-data beside the file and isnady keeps its databases
and settings there — isnady on a USB stick. The macOS app is not notarized: the first time, right-click it and choose
Open. SHA256SUMS.txt lists the checksum of every file. The same version is on PyPI and npm.
isnady 0.1.4
Portable applications, a fix for every new computer, graders compared fairly, and seven themes.
- Themes: seven, each drawn as a small live isnady window in Edit → Preferences → Themes (and listed in View →
Theme): Lapis and Lapis Night (followed by "Follow system"), Paper, Slate (light sidebar), Emerald, Midnight and
High Contrast. A click applies the theme at once;iy config set view.theme slate. Cards are rounder and the
sidebar rows have more room. - First start on a new computer fixed: since 0.1.0 a fresh database could not be built — an index stood in the
schema before its table — so the first import on a computer that had never run isnady failed ("no such table:
isnad_links"). Databases upgraded from earlier versions were never affected, which is why it went unseen. The
tables are now created in order, and every release first builds a database from nothing (tools/release_check.py). - Graders compared fairly: a grade of the chain only ("Isnaad Sahih" — the chain is sound, the text not judged)
is no longer compared with a grade of the hadith ("Munkar"). It was 25.8% of Zubair 'Ali Za'i's grades of Sunan
Abi Dawud (4.5% of al-Albani's). Statistics → Graders and the Hadith Scholars page leave such grades out and say
how many: alpha 0.705 → 0.738; al-Albani–Zubair agreement 70.0% → 74.4%; Zubair's strictness −0.10 → −0.14.
The alignment of his grades with the hadith numbers was checked and is right (no shift fits better, in any part
of the book). - Portable applications: Windows gets one portable
.exeinstead of an installer, macOS a zippedisnady.app
instead of a disk image; the Linux AppImage was portable already. Nothing is installed; a folder named
isnady-databeside the application keeps all its data there (isnady on a USB stick). - Version badges that cannot go stale: the PyPI and npm badges carry the version in their address, so GitHub's
and npm's image caches can no longer show an older one (0.1.3 showed v0.1.2 there for a while). - One command for a new version (
tools/bump_version.py 0.1.4): code, npm files, the README's status line and
badges, the CHANGELOG heading and the npm README, together. The release check now also checks the README, and
tools/release_status.pyshows what PyPI, npm, GitHub and the Release page publish after a release.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.4-windows-portable.exe — portable: nothing to install, run it from anywhere. Windows may say the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.4-linux-x86_64.AppImage — portable: chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.4-macos-arm64.zip — unzip, run isnady.app |
| macOS, Intel | isnady-0.1.4-macos-x86_64.zip |
| Python | pip install -U isnady (or iy update) |
All three applications are portable. Put a folder named isnady-data beside the file and isnady keeps its databases
and settings there — isnady on a USB stick. The macOS app is not notarized: the first time, right-click it and choose
Open. SHA256SUMS.txt lists the checksum of every file. The same version is on PyPI and npm.
isnady 0.1.3
Deep statistics begin, a glossary to learn from, and two fixes everyone sees.
- Learn: 81 terms of hadith and its sciences, written for isnady with their classical sources — grades, kinds of
hadith by their chain, chain and text, ways of receiving, judging narrators, generations, Arabic names, Imami
rijal, books, and isnady's own measures. Each with its Arabic, a one-line and a longer definition in English or
Turkish, related terms, and its source; searchable in both languages. Pointing at a grade on a search result,
or at a narrator's rank, shows what it means.iy term. - Statistics → Graders, the first deep statistics tab: for a book graded by several scholars, the agreement of
every pair (same grade, Cohen's kappa, ordinal kappa) with 95% bootstrap intervals; Krippendorff's ordinal alpha;
a Dawid–Skene model of each hadith's true grade with each grader's confusion matrix and the model's certainty;
strictness by order only (P below the true grade − P above it) with intervals; pair-by-pair who grades higher;
the disputed hadith, opening in their book. A pair agreeing far too often to be independent (al-Albani and Muhyi
al-Din, 98.1%) is one voice in the model. Computed once in the background and kept in a file;iy stats graders. - The Hadith Scholars page measures strictness by order only (how often his grade is lower or higher than the
others' on the same hadith), no longer by averaging grades as numbers. - No more empty space below the results: the Search page (and the Books reader) ended in thousands of empty
pixels — up to half the page after widening the window — because each text measured its least height at the
width it was made with. The page now ends where the last result does, at any window size. - Clearer filters on the Narrators and Shia Rijal pages: each filter sits under its own title (Generation,
Rank, Book; Assessment), the boxes are plain to see, a chosen filter is coloured, and Clear filters appears
when one is on.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.3-windows-setup.exe — installer; Windows may warn that the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.3-linux-x86_64.AppImage — chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.3-macos-arm64.dmg |
| macOS, Intel | isnady-0.1.3-macos-x86_64.dmg |
| Python | pip install -U isnady (or iy update) |
The macOS app is not notarized: the first time, right-click it and choose Open. SHA256SUMS.txt lists the
checksum of every file. The same version is on PyPI and npm.
isnady 0.1.2
Names that can be read, and a desktop shortcut.
- Names, redesigned: every narrator and scholar is shown by the name he is known by — al-A'mash,
Ibn 'Umar, Abu Hurayra, al-Zuhri, al-Bukhari, Ibn Hajar — large, in Arabic and in Latin letters, with his
full name and how he is known (by-name, kunya, nisba, an ancestor's name) beneath. Below, each part of the
name on its own line: name (ism), lineage (nasab), kunya, by-name (laqab), nisbas (places marked), client
of (wala'), other names — the part he is known by marked ★, with a one-line explanation of what the parts
are. The same card on the Narrators, Shia Rijal and Hadith Scholars pages; the lists, the chains and the
books use the same known-as names. The entry as the critic wrote it is folded into the critics' card. - Which name a person is known by is taken only from what the sources say: Ibn Hajar's cross-references, an
entry that opens with the kunya, or "known as …" in the entry. A name shared by several narrators names only
the one the chains cite far more often ("Ibn 'Umar" is the Companion); a by-name inside someone else's name
("… bint Abi Bakr al-Siddiq") is not taken as hers. Checked on blind samples of the most-cited narrators.
Readings are in English for now; Turkish and other languages come with the interface language. - Create Desktop Shortcut (Tools menu,
iy shortcut): isnady on the desktop and in the applications menu,
with its own icon, starting isnady the way it is installed (AppImage, application, orisnady-gui). The
Desktop folder is the system's own (e.g. "Masaüstü"); on Windows the shortcut and the taskbar show isnady's
icon, not Python's.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.2-windows-setup.exe — installer; Windows may warn that the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.2-linux-x86_64.AppImage — chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.2-macos-arm64.dmg |
| macOS, Intel | isnady-0.1.2-macos-x86_64.dmg |
| Python | pip install -U isnady (or iy update) |
The macOS app is not notarized: the first time, right-click it and choose Open. SHA256SUMS.txt lists the
checksum of every file. The same version is on PyPI and npm.
isnady 0.1.1
Desktop applications, one release for every place, and two new sections.
- Desktop applications on every GitHub Release: a Windows installer (
.exe), a LinuxAppImage, and
macOS apps (.dmg, Apple silicon and Intel) — isnady with everything it needs, including the AI features.
The application has its own icon. - One release, everywhere at once: a version tag builds the Python package and the three applications
first; only when every build succeeds is anything published — PyPI, then the GitHub Release with all files
and their checksums. A check stops the release if the version differs anywhere. The npm README is now made
from this README, so GitHub, PyPI and npm say the same. - Books: open every imported work and read it in its own order — a hadith collection chapter by chapter,
each hadith with its card; Ibn Hajar's Taqrib letter by letter. Previous / next, find in a chapter,
languages, isnady remembers where you were. In its book on every search result opens the hadith in its
chapter. Works are general (any depth, any kind of book), the shape of isnady's own exchange format. - Shia Rijal: al-Najashi's Rijal — 1,266 narrators — read on the Imami scale: reliability (thiqa,
praised, weak) and creed (Imami, Waqifi, Fathi, Zaydi, 'ammi …), giving the classical four (thiqa, mamduh,
muwaththaq, da'if); the critic's words always shown; checked on four blind samples. Shia narrators are never
matched to the (Sunni) chains. Open his entry in the book on both Narrators pages. - Command line:
iy book,iy import najashi. - Database schema 7, upgraded in place. Re-import the Taqrib (Data Sources → Update) to read it as a book.
Download
| System | File |
|---|---|
| Windows 10/11 (64-bit) | isnady-0.1.1-windows-setup.exe — installer; Windows may warn that the publisher is unknown (the app is not signed): More info → Run anyway |
| Linux (x86-64) | isnady-0.1.1-linux-x86_64.AppImage — chmod +x it and run; needs libxcb-cursor0 on some systems |
| macOS, Apple silicon | isnady-0.1.1-macos-arm64.dmg |
| macOS, Intel | isnady-0.1.1-macos-x86_64.dmg |
| Python | pip install -U isnady (or iy update) |
The macOS app is not notarized: the first time, right-click it and choose Open. SHA256SUMS.txt lists the
checksum of every file. The same version is on PyPI and npm.