این از آن کارهایی بود که اگر هوش مصنوعی نبود شاید هیچگاه در گنجور انجام نمیشد -دستکم در این اندازه انجام نمیشد- چون یک بار سه سال پیش جسارت به خرج داده بودم و آن را در فهرست کارهای گنجور گذاشته بودم. اما به محض آن که به ابعاد کار فکر کردم آن را از فهرست کارهای در دست انجام خارج کردم. تا آن که -به گواهی این تصویر- این بار با تکیه بر تواناییهای هوش مصنوعی دوباره سراغ آن رفتم.

ایدهٔ اصلی این بود که راههایی متفاوت برای گشتوگذار در محتوای گنجور فراهم کنم. شروعش را میتوان برچسبهای جغرافیایی دانست که ابتدا آن را برای نمایش مسیر سفر ناصرخسرو استفاده کردم؛ قابلیتی که با ترکیبی از برچسبهای مکانی و زمانی، مسیر و نحوهٔ حرکت او را نشان میداد (نقشهٔ سفر ناصرخسرو).
مشکل آن این بود که برچسبها را فقط من -مدیر گنجور- میتوانستم اضافه کنم و برای کتابهای دیگر نمیشد از مشارکتهای کاربران استفاده کرد. یک بار تلاش کردم با هوش مصنوعی برچسبهای جغرافیایی متون را استخراج کنم که نتیجه آنقدر بد بود که همه را دور ریختم (البته الان فکر میکنم اگر آن ایده را دوباره امتحان کنم هوش مصنوعی نتایج قابل استفادهتری میدهد).
هوش مصنوعی امکان این را فراهم کرد که از مشارکت کاربران برای تعیین برچسبهای جغرافیایی هم استفاده کنیم و بعد از آن تصمیم گرفتم دوباره به این کار برگردم: برچسبگذاری متون با شخصیتها و امکان ردگیری آنها در طول یک متن.
کاری که نمونههای پیادهسازی آن را پیشتر -خارج از گنجور- دیده بودیم. نمونهٔ زیبای آن هستانشناسی شاهنامه در نوروزگان است:

و اخیراً «آخ! آخ! افراسیاب» را دیدهایم:

اما گنجور بستری با امکان دسترسی به متون است و چیزی که گنجور میتواند فراهم کند آن است که این ایدههای تصویرسازی اطلاعات را با متن مستند و همراه کند.
این بار برای این کار تلاش کردم که از همان ابتدا بنا را بر آن بگذارم که برچسبهای شخصیتها یا «نامبردگان» را کاربران گنجور پیشنهاد میدهند و در یک فرایند «پیشنهاد ⇐ بازبینی» بررسی میشوند. نقطهٔ شروع ویرایشگر گنجور است.
راهنمای کامل استفاده
خلاصهٔ ماجرا این است: ۱) در ویرایشگر یک شعر، نامبردگان آن را برچسب میزنید؛ ۲) از پنجرهٔ هر نامبرده، نسبتهای او با دیگران را پیشنهاد میدهید و با یک بیت مستند میکنید؛ ۳) بازبینان پیشنهادها را بررسی میکنند؛ ۴) نتیجه در قالب نمودار هستانشناسی، تبارنامه و همعصران قابل مشاهده است.
برای پیشنهاد دادن لازم است وارد حساب کاربریتان شده باشید. هیچیک از پیشنهادها مستقیماً اعمال نمیشود؛ همه ابتدا در صف بازبینی مینشینند و تا وقتی بازبین تأیید نکند چیزی در گنجور تغییر نمیکند.
۱. برچسبزدن نامبردگان یک شعر
صفحهٔ ویرایش هر شعر (همان ویرایشگر همیشگی گنجور) کارتی دارد با عنوان «برچسبهای نامبرده (پیشنهادی)». مراحل کار:
- بیت را انتخاب کنید. اگر برچسب به بیتی مشخص اشاره دارد آن را برگزینید تا دیگران بتوانند شاهد آن را در متن پیدا کنند. اگر انتخاب نکنید، برچسب برای کل شعر ثبت میشود.
- در کادر نامبرده شروع به تایپ کنید تا فهرست نامبردگان بر اساس نام فیلتر شود و یکی را برگزینید. کنار کادر دو نشانک کوچک ظاهر میشود: 👁 اطلاعات کامل آن شخصیت و 🌳 تبارنامهاش را نشانتان میدهد؛ برای وقتی که چند نامبردهٔ همنام داریم (مثلاً دو «خسرو») و میخواهید مطمئن شوید همان را که میخواهید انتخاب کردهاید.
- نقش نامبرده را مشخص کنید: «بخشی از داستان/متن» (شخصیت در روایت کنش دارد یا دربارهٔ او سخن میرود) یا «فقط اشاره است» (تشبیه، یادآوری گذشته، پیشبینی آینده یا مثل «همچون فلانی»). این تفاوت بعدتر در نمودارها اهمیت پیدا میکند: کسی که در یک بخش فقط به او اشاره شده، جزو شخصیتهای داستان آن بخش حساب نمیشود.
- اگر لازم دانستید دلیل برچسب را بنویسید (اختیاری؛ بهویژه برای اشارههای غیرمستقیم به نامبرده).
- دکمهٔ «افزودن به فهرست پیشنهادها» را بزنید. برچسب در جدولی که بالای فرم است نشان داده میشود و میتوانید چند برچسب پشت سر هم اضافه کنید.
- در پایان، با دکمهٔ «ذخیره»ی بالای صفحه -همراه با بقیهٔ تغییراتی که در شعر دادهاید- پیشنهادها را ثبت کنید.

وقتی برچسب به فهرست اضافه شد، در جدول با وضعیت «پیشنهاد جدید» دیده میشود و تا ذخیرهٔ نهایی میتوانید با «حذف از فهرست» آن را پس بگیرید:

اگر نامبرده در فهرست نبود
اگر نام او را تایپ کردید و پیدا نشد، گزینهٔ «نامبردهٔ جدید پیشنهاد بده» را بزنید. فرم معرفی یک نامبردهٔ جدید باز میشود:
- نام و در صورت لزوم توضیحات کوتاه و پیوند ویکیپدیا؛
- عنوان تبارنامه: فقط برای وقتی که نامبرده ریشهٔ یک خانواده/سلسله است (مثلاً «ساسانیان»)؛
- درجهٔ اهمیت: فقط اندازهٔ نمایش او در نمودار شخصیتها را تعیین میکند؛
- جنسیت و چند گزینهٔ دیگر.
یک نکته: اگر از قبل نامبردهای دقیقاً با همین نام ثبت شده باشد، پیشنهاد شما بهطور پیشفرض رد میشود (برای پیشگیری از ایجاد ناخواستهٔ نامبردهٔ تکراری). فقط وقتی که مطمئنید شخصیتی واقعاً متفاوت را معرفی میکنید (مثلاً دو شخصیت همنام در شاهنامه) کادر «این شخصیت، شخصیتی متفاوت از هر نامبردهٔ دیگری با همین نام است» را علامت بزنید.

برچسبهایی که برای نامبردهٔ جدید میزنید در همان فهرست با عنوان «نامبردهٔ جدید» دیده میشوند:

برچسبهایی که از قبل روی شعر هست
برچسبهای ثبتشدهٔ هر شعر بالای فرم فهرست میشوند. برای هر کدام دو درخواست میتوانید بدهید: تغییر نقش (از «فقط اشاره» به «بخشی از داستان» یا برعکس) و درخواست حذف (اگر آن نامبرده در این شعر اشتباه برچسب خورده). اینها هم مثل پیشنهادهای دیگر تا تأیید بازبین اعمال نمیشوند.

یک درخواست حذف هم در همان فهرست دیده میشود و تا پیش از ذخیره میتوانید «حذف از فهرست»اش کنید:

۲. پروندهٔ هر نامبرده
وقتی برچسبی تأیید شود، نام آن شخصیت در متن شعر قابل کلیک میشود. کلیک روی آن پنجرهای باز میکند که «پروندهٔ» او را نشان میدهد:
- نام، توضیح کوتاه و نامهای دیگر او؛
- خویشاوندان: پدر/مادر، فرزند، همسر، خواهر/برادر، نیا و نواده؛
- وابستگیهای غیرخویشاوندی: مثلاً «منذر مشاور این شخصیت بود»، «مقاتوره قاتل این شخصیت بود»؛
- اشعاری که این نامبرده در آنها برچسب خورده، همراه با بیت و در صورت وجود یادداشت توضیحی؛
- دکمههای نمایش نمودار تبارنامه و همعصران.
کنار نام هر شخصیت دو نشانک است: ✎ برای پیشنهاد ویرایش اطلاعات خود او و ⇄ برای پیشنهاد ادغام یا تقسیم (که کمی پایینتر توضیح میدهم).

کنار هر نسبت یا وابستگی یک بخش «مستند (۱)» هست که اگر بازش کنید، بیت یا بیتهایی را که این رابطه را مطرح کردهاند نشان میدهد؛ این همان چیزی است که گنجور را از نمونههای مشابه جدا میکند: هر رابطه به متن مستند شده و میشود به خود بیت رسید.
از آنجا که نسخهها و کتابهای مختلف گاهی روایتهای متفاوتی دارند، بالای پنجره یک انتخابگر کتاب هست: «فقط آنچه این کتاب میگوید». با آن میتوانید رابطهها را به آنچه در یک کتاب مشخص (مثلاً شاهنامه یا خسرو و شیرین) آمده محدود کنید. مواردی که هنوز مستندی ندارند همچنان نمایش داده میشوند.

۳. پیشنهاد خویشاوند یا وابستگی تازه
از همان پنجره، دکمهٔ «افزودن خویشاوند جدید» یا «افزودن وابستگی جدید» فرم پیشنهاد یک رابطه را باز میکند:
- خویشاوند یا نامبردهٔ دیگر را با تایپ نام انتخاب کنید. اینجا هم 👁 و 🌳 دارید تا اگر چند همنام هست، با دیدن اطلاعات یا تبارنامهشان بتوانید درستترین را برگزینید.
- نوع پیوند را مشخص کنید: نسبت خویشاوندی (پدر/مادر، فرزند، همسر، خواهر/برادر، نیا/نواده) یا وابستگی غیرخویشاوندی (وزیر، مشاور، پهلوان، حامی، دوست/متحد، دشمن/رقیب، جانشین، سردار، قاتل، همراه، خدمتکار، درباری، عاشق و …).
- نسبت را بهصورت جهتدار انتخاب کنید؛ مثلاً «فرزند این نامبرده است» یا «پدر یا مادر این نامبرده است». جهت مهم است: «عاشق» رابطهای دوطرفه نیست -ممکن است فرهاد عاشق شیرین باشد و شیرین نه- و برای همین باید معلوم کنید کدام طرف عاشق است. (برای نیا و نواده میتوانید درجه را هم بنویسید؛ مثلاً ۲ برای پدربزرگ/مادربزرگ.)
- یادداشت (مستندسازی) بنویسید که چرا چنین رابطهای را پیشنهاد میدهید.
- مستند: با «گزینش شعر» شعری را بیابید که این رابطه را بیان میکند و سپس بیت مربوط را از فهرست برگزینید. این مهمترین بخش فرم است: رابطهای که به بیتی بند نباشد، در عمل ارزشی ندارد.
- اگر نکتهای برای بازبین دارید در «یادداشت برای مدیر بررسیکننده» بنویسید و «ثبت پیشنهاد» را بزنید.

در همین فرم اگر روی 👁 کنار نامبردهٔ پیشنهادی کلیک کنید، همان پروندهٔ کوچک روی فرم باز میشود و بدون ترک صفحه میتوانید مطمئن شوید «شهریار» مورد نظر شما همان است که فکر میکنید:

پس از انتخاب شعر، بیت مستند در فرم نشان داده میشود:

و پس از ثبت، پیامی تأیید میکند که پیشنهاد در صف بازبینی قرار گرفته است:

چند نکتهٔ کاربردی:
- برای پیشنهاد رابطه، هر دو نامبرده باید از قبل در گنجور تأیید شده باشند. اگر شخصیتی را همین الان معرفی کردهاید، باید صبر کنید پیشنهاد او تأیید شود و بعد سراغ رابطههایش بروید.
- اگر یک نسبت از قبل ثبت شده ولی اشتباه است، با ✎ کنار آن میتوانید ویرایش یا حذفش را پیشنهاد بدهید.
- یک نفر نمیتواند بهصورت پیشفرض بیش از دو پدر/مادر داشته باشد؛ اگر واقعاً لازم است (روایتهای متفاوت) گزینهٔ «تأیید سومین پدر/مادر» را علامت بزنید.
۴. ویرایش خودِ نامبرده، نامهای دیگر، ادغام و تقسیم
با ✎ کنار نام هر نامبرده میتوانید ویرایش اطلاعات او را پیشنهاد دهید: نام، توضیح، پیوند ویکیپدیا و «نامهای دیگر» (برای اینکه مثلاً «کیکاووس» و «کاووس» هر دو به یک شخص برسند)، یا اگر اشتباه ثبت شده، حذفش را.
نشانک ⇄ برای وقتی است که دو نامبرده در واقع یکی هستند یا یک نامبردهٔ ثبتشده در واقع دو شخصیت جداست (مثلاً یک نامبرده که در واقع چند اردشیر مختلف را در بر گرفته): با آن ادغام یا تقسیم را پیشنهاد میدهید. در این فرم نوشتن دلیل الزامی است؛ بازبین بدون دلیل نمیتواند تصمیم بگیرد.
۵. بازبینی (برای ناظران)
پیشنهادها در صفحههای بازبینی پیشنهادهای ویرایش و نسبتها به ناظران نشان داده میشوند. ناظر پیشنهاد را با همهٔ جزئیات میبیند: پیشنهاددهنده، دو طرف رابطه (با 🌳 برای تشخیص همنامها)، نوع نسبت، یادداشت و مستند. میتواند به شعر برود، «تأیید» یا «رد» کند و برای پیشنهاددهنده یادداشتی بنویسد.

۶. نتیجه: نمودارهای هستانشناسی، تبارنامه و همعصران
نمودار هستانشناسی (برگهٔ «نامبردگان»)
در صفحهٔ هر شاعر یا دسته (مثلاً شاهنامه) برگهای به نام «نامبردگان» هست که شبکهٔ شخصیتها و روابطشان را نشان میدهد:
- گرهها شخصیتها و خطوط رنگی روابطاند؛ رنگ هر نوع رابطه در راهنمای بالای نمودار آمده است. اندازهٔ گره از «درجهٔ اهمیت» نامبرده میآید.
- روی هر گره کلیک کنید تا فقط ارتباطهای همان شخص برجسته شود (دوباره کلیک: بازگشت). با کشیدن میتوانید گره را جابهجا کنید، با کشیدن پسزمینه نمودار را پیمایش کنید و با غلتک ماوس بزرگ/کوچکش کنید (در موبایل با دو انگشت). دکمهٔ گوشهٔ نمودار آن را تمامصفحه میکند.
- فیلترها: روی هر نوع رابطه در راهنما کلیک کنید تا آن را نشان دهید یا پنهان کنید. دکمههای «همه»، «هیچکدام»، «فقط خویشاوندی» و «فقط غیرخویشاوندی» کار را سریعتر میکنند. اگر میخواهید فقط یک نوع رابطه را ببینید، اول «هیچکدام» را بزنید و بعد همان نوع را روشن کنید.
- «فاصله +» و «فاصله -» گرهها را از هم دور یا به هم نزدیک میکنند؛ برای وقتی که نمودار شلوغ است و بعضی گرهها زیر هم پنهان شدهاند.
- با تایپ در کادر جستجوی نام نامبرده، همان شخص و اطرافیانش برجسته میشوند.
- بهصورت پیشفرض فقط نامبردگانی که در متن همین بخش آمدهاند نشان داده میشوند؛ با برداشتن علامت آن، خویشاوندان و وابستگانی که در این متن نامشان نیامده ولی برای آشنایی بیشتر با داستان لازماند هم دیده میشوند (گرههای نقطهچین/کمرنگ). گرههایی که «(اشاره)» دارند کسانیاند که در این بخش فقط تشبیه یا یادآوری بودهاند و بخشی از داستان نیستند.
- با «شبکهٔ کامل نامبردگان» کل نمودار گنجور را میبینید، نه فقط یک دسته.

تبارنامه
از پنجرهٔ هر نامبرده با «نمایش نمودار تبارنامه» (یا نشانک 🌳 در همهٔ فرمها و فهرستها) تبارنامهٔ تعاملی او باز میشود. این نمودار فقط فرزندان آن شخص را نشان نمیدهد؛ تمام خویشاوندان بههمپیوسته (از جمله نیاکان و خانوادهٔ همسر) را میآورد. روی هر شخصیت کلیک کنید تا توضیحاتش را ببینید؛ با ماوس بکشید و با غلتک بزرگ/کوچک کنید.
چون کتابهای مختلف گاهی نسبت دو نفر را متفاوت روایت میکنند (مثلاً اینکه شهرناز و ارنواز دختران جمشیدند یا خواهرانش)، بالای تبارنامه انتخابگری هست: «نمایش بر اساس کتاب». خطوط نارنجی همانجاهایی را نشان میدهند که نسبت دو نفر در کتابهای مختلف فرق دارد.

همعصران
دکمهٔ «همعصران» نمودار «دوران حضور شخصیتها» را باز میکند؛ همان که در بعضی کتابهای شاهنامهپژوهی دیدهایم، با این تفاوت که اینجا هر خط به متن مستند است:
- ستونها بخشهای یک کتاباند (مثلاً پادشاهیهای شاهنامه)، با قدیمیترین بخش در سمت راست؛ ردیفها شخصیتها.
- هر شخصیت خطی دارد که از نخستین بخشی که در آن حضور دارد شروع میشود و تا آخرین بخش ادامه مییابد. جاهایی که در متن آن بخش حضور دارد (و نقشش «بخشی از داستان» است) خط پررنگ است و بخشهای میانی که در آنها نیست خطچین.
- بخشهای حضور شخصیتِ انتخابشده با پسزمینهٔ روشن نشان داده شده؛ پس هر کس که ردیفش در آن محدوده باشد با او همعصر است.
- بهطور پیشفرض شخصیتهایی نشان داده میشوند که با شخصیت انتخابشده همدورانند یا مستقیماً با او نسبت دارند. با علامت «نمایش همهٔ شخصیتهای این کتاب» همه را میبینید.
- روی نام هر شخصیت کلیک کنید تا نمودار همان شخص باز شود؛ اینطور میتوانید بهراحتی در زنجیرهٔ پدر و پسر جلو و عقب بروید. 🌳 کنار نام، تبارنامهاش را باز میکند.
- اگر شخصیت در چند کتاب برچسب خورده باشد، با انتخابگر کتاب میتوانید میان آنها جابهجا شوید.
- نمودار فقط بر پایهٔ برچسبهاست؛ هیچ سال تولد و مرگی یا فرضی دربارهٔ طول عمر در آن به کار نرفته.

هوش مصنوعی برای ورود اطلاعات
در حین پیادهسازی این قابلیت کار دیگری را هم پیش میبردم و آن عنوانگذاری برای بخشهای شاهنامه بود. شاهنامهٔ مسکو برای هر بخش یک عنوان کلی دارد و برای زیربخشها فاقد عنوان است. پیشتر در حین روخوانی بخشهای ابتدایی شاهنامه (روخوانی شاهنامه) به صورت دستی و عموماً با مراجعه به تصحیح استاد خالقی مطلق برای زیربخشهایی که میخواندم عنوان انتخاب کرده بودم. برای تکمیل آن کار از جایی که روخوانی را رها کرده بودم با تندخوانی متن تلاش میکردم عنوانهایی برای بخشها پیشنهاد کنم. چون دیدم حجم کار بسیار بالاست سراغ هوش مصنوعیها رفتم و متوجه شدم هوش مصنوعی گروک درک بالایی از شعر دارد و عناوین گویا و خلاصههای عالی از متن داستان ارائه میکند. همین شد که ضمن تکمیل کار با گروک، آزمایش کردم ببینم این درک بالا میتواند به استخراج فهرست شخصیتهای نامبرده در متن هم منجر شود که شد و خوب هم شد. این شد که برای تکمیل کار برچسبگذاری -که آن را برای بخشهای آغازین شاهنامه و آنجاهایی که از داستان شناخت داشتم به شکل دستی شروع کرده بودم- از هوش مصنوعی کمک بگیرم. بعد از چند آزمایش متوجه شدم که گروک علیرغم درک بالا از متن به کندی پاسخ میدهد. کلاد را امتحان کردم و دیدم با همان کیفیت و در زمان معقول پاسخگوست. این شد که شاهنامه و بعدتر خسرو و شیرین نظامی را با کمک کلاد برچسبگذاری کردم.
کار عنوانگذاری بخشهای شاهنامه را هم با تقسیم بخش مربوط به انوشیروان که حجیمترین بخش شاهنامهٔ مسکو بود اما به تعداد کمی زیربخش چند صد بیتی تقسیم شده بود تکمیل کردم و آن را به بخشهای کوتاه قابل مطالعه شکستم و تصاویر چاپ مسکو را هم به آن الصاق کردم.
مشکل پیشنهاد برچسبهای شخصیت آن است که برای پیشنهاد روابط شخصیتها باید اول منتظر بمانید که خود آنها تأیید شوند. هوش مصنوعی هم از این اشکال مصون نیست و باید دستکم دو بار -یک بار برای معرفی شخصیت و بار بعدی برای پیشنهاد روابط آن- کار را به هوش مصنوعی بدهیم.
در نهایت، کاری که اگر میخواستیم برای آن به کاربران انسانی تکیه کنیم در طول سالها هم به جای قابلتوجهی نمیرسید، در عرض یکی دو روز به جایی غیرقابلباور رسیده است.
تفاوت گنجور در این زمینه با احتمالاً تمام کارهایی که شده، مستند بودن تعریف روابط شخصیتها به متن است. اگر ادعا شده (بر مبنای تصحیح مسکو) شهرناز و ارنواز دختران جمشید بودند (و نه خواهرانش) میتوانید در تعریف روابط به بیتی که این مسئله را مطرح کرده دسترسی پیدا کنید.
انجام این کار با کمک هوش مصنوعی کمتر از دو هفته طول کشیده. یک بار از کلاد خواستم تخمینی از زمانی که طراحی و برنامهنویسی آن با هوش مصنوعی گرفته و همچنین تخمینی از این که اگر این کار را میخواستیم بدون هوش مصنوعی انجام دهیم ارائه کند که نتیجهاش این شد:
با هوش مصنوعی (طراحی و برنامهنویسی): حدود ۱۰ تا ۱۴ روز کاری فشرده.
بدون هوش مصنوعی: حدود ۶ تا ۸ هفته کار تماموقت برای یک برنامهنویس باتجربه، فقط برای طراحی و کدنویسی؛ بدون احتساب خودِ برچسبگذاری متن شاهنامه و خسرو و شیرین که کاری جداست.
اما من تصور نمیکنم که تخمین انجام کار بدون هوش مصنوعی درست باشد. من فکر میکنم انجام این کار در این حجم، برای منی که برنامهنویس تنددستی هستم و در اشکالیابی و پیشبرد کار هم احتمالاً استثنایی محسوب میشوم، نه یکی دو ماه که شاید یکی دو سال طول میکشید.
کاری که حتی الان هم هر گوشهٔ آن را نگاه میکنم حس میکنم نیاز به تغییر و بهبود دارد ولی مجبورم برای آن که عمر گرامی را صرف کارهای دیگر هم بکنم فعلاً وسوسهٔ برگشت به آن را از خودم دور کنم.
بخشهایی از این متن را هوش مصنوعی کلاد نوشته است.