Skip to content
View fahares's full-sized avatar

Block or report fahares

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fahares/README.md

فهارس (FAHARES)

ابرپایگاه، متافهرستگان و موتور کاوش هوشمند میراث مکتوب و نسخه‌های خطی
Islamic & Persian Manuscripts Meta-Catalog & Search Platform

Laravel PHP Meilisearch MariaDB Docker Corpus License: MIT


📖 درباره پروژه

پروژه فهارس (Fahares) یک متافهرستگان (Meta-Catalog) یکپارچه و موتور کاوش هوشمند برای نسخه‌های خطی و اسناد مکتوب تاریخی ایران و جهان اسلام است.

برخلاف سامانه‌های سنتی تک‌مأخذی، فهارس با معماری چندمنبعی (Multi-Catalog Architecture) طراحی شده است؛ به این معنا که بستر داده‌ای سامانه قابلیت میزبانی، تطبیق و یکپارچه‌سازی هم‌زمان چندین فهرست مرجع و کاتالوگ‌های کتابخانه‌ای مستقل را داراست و هر اثر، نسخه خطی و ارجاع دارای پیوند مستقیم با مأخذ اصلی خود (catalog_id) می‌باشد.

نخستین و بزرگ‌ترین مأخذ مستقر در سامانه:

دوره ۳۴ جلدی «فهرستگان نسخه‌های خطی ایران (فنخا)» به کوشش استاد مصطفی درایتی، به عنوان مأخذ پایه (کاتالوگ شماره ۱) به‌صورت کامل استخراج، پالایش ساختاری و در پایگاه داده بارگذاری شده است. زیرساخت پلتفرم به گونه‌ای مهندسی شده که در گام‌های آتی پذیرای سایر مراجع بزرگ (نظیر «دنا»، فهرست‌واره دایرةالمعارف بزرگ اسلامی، فهارس تفصیلی کتابخانه‌های ملی، مجلس، ملک، رضوی، مرعشی و مجموعه‌های خطی سراسر جهان) باشد.


📊 کارنامه آماری داده‌های مستقر (داده‌های منبع ۱ - فنخا)

ردیف شاخص تعداد رکورد توضیحات
۱ مآخذ و کاتالوگ‌های فعال ۱ مأخذ مرجع دوره ۳۴ جلدی فنخا به کوشش مصطفی درایتی (پشتیبانی آماده از مراجع دیگر)
۲ مجلدات پردازش‌شده ۳۴ جلد پوشش ۱۰۰٪ تمام مجلدات فنخا با پیوستگی کامل ۳۳ هزار صفحه چاپی
۳ عناوین آثار مستقل (Works) ۷۱,۵۵۰ عناوین اصلی و پیراسته، آوانگاری لاتین، رده‌بندی ساختاریافته موضوعات، زبان‌ها و دوره‌های تاریخی
۴ نسخه‌های خطی (Manuscripts) ۳۲۳,۸۸۴ شناسنامه کامل نسخه‌شناسی، آغاز/انجام، کاتبان، خطوط، جلد و اندازه‌ها
۵ ارجاعات کتاب‌شناختی (Referrals) ۱۴,۸۰۵ مدخل‌های ارجاعی الفبایی جهت اتصال به سرشناسه‌ها و عناوین معیار
۶ اشخاص و اعلام رجالی (People) ۷۴,۲۱۳ پرونده یکپارچه مؤلفان، کاتبان، مترجمان و واقفان با انتساب سده و سال وفات
۷ کتابخانه‌ها و مراکز اسنادی (Libraries) ۴۹۷ مرکز معتبر تجمیع و پالایش کامل از ۱,۰۴۸ ورودی تکراری در ۵۷ شهر استاندارد کشور و جهان
۸ پیوندهای چندخطی نسخ (Scripts) ۲۹۲,۷۶۸ ثبت ساختاریافته انواع خطوط و سبک‌های کتابت (نستعلیق، نسخ، شکسته و...)
۹ اسناد جستجوی زنده (Meilisearch) ۴۶۹,۶۴۷ ایندکس تمام‌متن بلادرنگ با پاسخ‌دهی زیر ۵ میلی‌ثانیه و خطایابی تایپی

✨ قابلیت‌ها و ویژگی‌های کلیدی سامانه

۱. معماری متافهرستگان و چندمنبعی (Multi-Catalog Architecture)

  • عدم وابستگی داده‌ها به یک منبع خاص و امکان اتصال بی‌درنگ چندین کاتالوگ مستقل.
  • نمایش استناد رسمی و استاندارد علمی برای هر نسخه (citation_format) متناسب با کاتالوگ مربوطه.
  • نمایش ردیف و شماره بازیابی نسخه در مأخذ مشخص.

۲. موتور کاوش پیشرفته و آنی (Instant & Faceted Search)

  • محدوده‌های تفکیک‌شده جستجو (Search Scopes):
    • فقط در عناوین: متمرکز بر عناوین اصلی، پیراسته و هم‌تراز آثار.
    • فقط در عناوین و اعلام (پیش‌فرض): جستجوی هدفمند در عناوین، نام مؤلفان و کاتبان (جلوگیری از هجوم نتایج متنی ناخواسته).
    • در همۀ اطلاعات: جستجوی تمام‌متن در سراسر شناسنامه، عبارات آغاز و انجام، کتابخانه‌ها، یادداشت‌ها و تملکات.
  • ناوبری فیلترهای چندبعدی پویا (Faceted Navigation): توزیع بلادرنگ فراوانی بر اساس کتابخانه‌ها، خطوط، سده‌ها و مؤلفه‌های کالبدشناسی.
  • تطبیق هوشمند رسم‌الخط: یکپارچه‌سازی حروف عربی/فارسی (ک، ی، ة، ه، تشدید، نیم‌فاصله) با انعطاف‌پذیری در خطاهای تایپی (Typo-Tolerance).

۳. رده‌بندی سلسله‌مراتبی و درختی موضوعات (Taxonomy Hierarchy & Subject Tree)

  • ساختار درختی چندسطحی: دسته‌بندی موضوعات در قالب رابطه والد/فرزند (مانند «فقه»، «اصول فقه»، «ادبیات»، «فلسفه و کلام» و شاخه‌های تخصصی هر یک).
  • تفکیک خودکار موضوعات ترکیبی: جداسازی هوشمند مدخل‌های چندموضوعی به شناسه‌های مجزای موضوعی جهت ارتقای دقت استخراج و بازیابی.
  • کاوش هوشمند زیرمجموعه‌ها (Inclusive Child Querying): با انتخاب هر موضوع کلان یا والد در فیلترهای جستجو، آثار منتسب به زیرشاخه‌های فرعی آن نیز به صورت خودکار و یکپارچه در نتایج جستجو بازیابی می‌شوند.
  • کامبوباکس جستجوپذیر موضوعات: جستجوی آسان و بدون محدودیت میان تمامی موضوعات با ناوبری کامل صفحه‌کلید (کلیدهای جهت‌نما و اینتر).

۴. کالبدشناسی عمیق نسخه‌شناسی (Rich Codicology)

  • استخراج ساختاریافته آغازها و انجام‌های چندگانه (incipits و explicits) در نسخه‌های دارای چند بخش یا رساله.
  • استخراج ساختاریافته سفارش کتابت و فرماینده نسخه (commissioned_by) برای شاهان، امرا، وزرا و اشخاص برجسته تاریخی.
  • پرچم‌های بولی وضعیت تخصصی:
    • نسخه اصل / دستخط مؤلف (is_autograph)
    • گواهی مقابله و معارضه / بلاغ (is_collated)
    • تذهیب، ترصیع، سرلوح مذهب و زرین (is_illuminated)
    • مجدول و کادربندی اوراق (is_ruled)
    • نسخه مصور و نگاره‌دار (is_illustrated)
    • حواشی و تعلیقات مؤلف (has_author_marginalia)
  • ثبت تفکیک‌شده مسطوره (سطح نوشته) از ابعاد کل برگ، جنس کاغذ و نوع جلد و صحافی.

۵. سامانه پانویس‌های انتقادی و تعامل پژوهشگران (Scholarly Annotations)

  • پیشنهاد تصحیح فیلدها (field_suggestions): امکان ثبت پیشنهاد روی هر فیلد از مشخصات نسخه یا اثر همراه با الزام ارجاع به سند و منبع معتبر.
  • معماری سه‌سطحی پانویس‌ها: حفظ ۱۰۰٪ امانت و اصالت متن منبع چاپی، اعمال مقدار صحیح در دیتابیس و نمایش نشان «پانویس انتقادی ✏️» برای محققان.

۶. گاه‌شماری تاریخی و مرتب‌سازی داینامیک

  • محاسبه و نمایش هوشمند بازه زمانی کتابت نسخه‌های هر اثر (مثلاً «از قرن ۱۱ تا ۱۴ هـ.ق»).
  • اعتبارسنجی تاریخی و پالایش نسخه‌های دارای تاریخ‌های متناقض با عصر مؤلف.
  • مرتب‌سازی صعودی/نزولی جدول نسخه‌ها بر اساس تمامی ستون‌ها (ردیف، کتابخانه، بازیابی، کاتب، تاریخ، خط و برگ) در سطح کوئری پایگاه داده.

۷. رابط کاربری فاخر، شیشه‌ای و واکنش‌گرا (UI/UX)

  • الهام‌گرفته از هویت سنتی-مدرن: پالت اختصاصی لاجوردی (#292C56)، طلایی کهن و زرنگار (#B38A50) و کاغذ عاجی (#FEF9F3).
  • تایپوگرافی اصیل با فونت استاندارد وزیرمتن (Vazirmatn).
  • تم تاریک عمیق (#0C0F1D) و چیدمان استاندارد راست‌به‌چپ (RTL) با Tailwind CSS v4.

🛠️ استک و معماری فنی

  • فریم‌ورک بک‌اند: PHP 8.3 بر بستر Laravel 13
  • پایگاه داده رابطه‌ای: MariaDB با طراحی هیبریدی (Pragmatic 3NF + ستون‌های JSON Metadata)
  • موتور جستجوی اختصاصی: Meilisearch v1.6 متصل از طریق Laravel Scout با متدهای بهینه‌سازی Eager Loading برای پیشگیری از کوئری‌های N+1
  • لایه فرانت‌اند: Blade و Tailwind CSS v4 با Alpine.js
  • محیط استقرار و توسعه: Docker و Docker Compose ایزوله، سازگار با ابزارهای مدیریت کانتینر (مانند Coolify)

🚀 راهنمای راه‌اندازی سریع (Quick Start)

پیش‌نیازها

  • نصب Docker و Docker Compose
  • نصب git و curl

۱. کلون مخزن

git clone https://github.com/fahares/fahares.git
cd fahares

۲. پیکربندی متغیرهای محیطی

cp .env.example .env

۳. راه‌اندازی کانتینرهای داکر

docker compose up -d --build

۴. نصب وابستگی‌ها و تولید کلید

docker compose exec app composer install
docker compose exec app php artisan key:generate

۵. دریافت بسته داده‌های ۳۴ جلد (از مخزن Releases)

./scripts/download_data.sh

۶. اجرای مایگریشن‌ها و تزریق داده‌ها به MariaDB

docker compose exec app php artisan fahares:seed --fresh

۷. همگام‌سازی ایندکس‌های موتور جستجوی Meilisearch

docker compose exec app php artisan scout:sync-index-settings
docker compose exec app php artisan scout:import "App\Models\Work"
docker compose exec app php artisan scout:import "App\Models\Person"
docker compose exec app php artisan scout:import "App\Models\Manuscript"

سامانه روی آدرس http://localhost:8000 آماده بهره‌برداری است.


📂 ساختار مخزن

fahares/
├── app/
│   ├── Console/Commands/                          # دستورات خط فرمان مدیریت، پالایش و تزریق داده‌ها
│   │   ├── SeedFaharesDataCommand.php             # لودر دسته‌ای پرسرعت ۳۴ جلد
│   │   ├── CleanLanguagesCommand.php              # پالایش و یکپارچه‌سازی رسمی جدول زبان‌ها
│   │   ├── RemediateSubjectsCommand.php           # پالایش ریشه‌ای، تفکیک موضوعات و ساخت درخت تاکسونومی
│   │   └── CleanManuscriptDatesCommand.php        # پالایش تاریخ‌ها و استخراج ساختاریافته سفارش کتابت
│   ├── Http/Controllers/                          # کنترلرهای کاوش، آثار، نسخه‌ها و اعلام
│   ├── Models/                                    # مدل‌های رابطه‌ای Eloquent (Catalog, Work, Manuscript, Subject, ...)
├── config/
│   ├── scout.php                                   # تنظیمات ایندکس‌ها، فیلترها و دامنه‌های Meilisearch
│   └── database.php
├── database/
│   ├── migrations/                                 # اسکیما و جداول دیتابیس (کاتالوگ‌ها، تاکسونومی، نسخه‌ها)
├── docs/
│   └── PROCESS_DOCUMENTATION.md                   # مستندات جامع مراحل و فازهای فنی پروژه
├── resources/
│   └── views/                                      # صفحات و قالب‌های Blade رابط کاربری
├── scripts/
│   ├── download_data.sh                            # اسکریپت دانلود مستقیم بسته رسمی مجلدات
│   └── sync_corpus.sh                             # همگام‌ساز محلی پیکره متنی
├── docker-compose.yml
└── Dockerfile

🔗 مخزن داده‌ها و پیکره متنی

پیکره متنی استاندارد ۳۴ جلدی، اسکریپت‌های پارسر پایتون و داده‌های خام JSON در مخزن مستقل نگهداری می‌شوند:
👉 fahares/fahares-corpus


📜 قدردانی علمی و مجوز (Attribution & License)

  • پلتفرم نرم‌افزاری فهارس به صورت متن‌باز تحت مجوز MIT License منتشر شده است.
  • داده‌های بنیادین منبع نخست این سامانه، حاصل سال‌ها تلاش بی‌دریغ و پژوهش‌های گران‌سنگ استاد مصطفی درایتی و همکاران ایشان در تدوین مجموعه ۳۴ جلدی «فهرستگان نسخه‌های خطی ایران (فنخا)» است. این سامانه با نهایت احترام، جهت صیانت، ترویج و دسترس‌پذیری دیجیتال این اثر گران‌قدر به جامعه علمی تقدیم می‌گردد.

Pinned Loading

  1. fahares-corpus fahares-corpus Public

    پیکره متنی ۳۴ جلدی فنخا | Curated 34-volume text corpus of Fankha (Iranian Manuscripts)

    Python 1

  2. fahares fahares Public

    سامانه و موتور جستجوی جامع نسخه‌های خطی ایران

    PHP 1