بازسازی Skyrails از روی اسکرینشاتها
شخصیتهای «بینوایان» در Skyrails بازسازیشده، با کوزت در کانون تصویرحدود سال 2007، یوسه ویجایا (Yose Widjaja)، که آن زمان دانشجوی دانشگاه نیو ساوت ولز بود، Skyrails را ساخت: برنامهای شگفتانگیز برای کاوش در شبکهها در سه بُعد. در خودِ شبکه سفر میکردید، از گرهای به گره دیگر، بر ریلهایی درخشان، گویی درون دادهها بودید. در روزگاری که بیشتر ابزارهای پژوهشی تخت و خاکستری بودند، به بازی ویدئویی میمانست. و پشت این ظاهر، عمقی واقعی نهفته بود: Skyrails زبان اسکریپتنویسی خودش را داشت برای آراستن و تحلیل گرافها، و منوهایی که به همین زبان نوشته شده بودند تا کسانی هم که برنامهنویسی نمیدانستند بتوانند با آن کار کنند. همهٔ اینها کار یک دانشجو بهتنهایی بود. سالها پیش نمایشی از آن را در YouTube دیدم و هرگز از یادم نرفت.
برنامهای که ناپدید شد
Skyrails هرگز نگهداری نشد. روی Windows اجرا میشد، صفحهٔ خانگیاش در وبسایت دانشگاه از میان رفت و هر پیوندی را که دنبال کردم شکسته بود. آنچه به جا ماند ردپاهایی بود: آلبومی از اسکرینشاتها در Flickr، و چند یادداشت وبلاگی از سال 2007، در FlowingData، در وبلاگ تیم لمبرت، Deltoid، و در InfoVis Wiki.
این اسکرینشاتها بهطرز شگفتآوری گویا هستند. در آنها آسمانی به رنگ آبیِ شب پیداست با رگههایی از ابر، یالهایی که به شکل نقشهای جناغیِ متحرک رسم شدهاند، گرههایی به شکل آیکون یا نمودار دایرهای، و منویی دایرهای که وقتی دکمهٔ راست ماوس را نگه میدارید، گرداگرد گره باز میشود. نام اسکریپتهایی که هر نمایش را میگرداندند (labs.van، macaque.van، worldtrade.van)، منوهایی که این اسکریپتها میساختند و چهار پوسته به نامهای normal، desert، valley و openspace هم در آنها دیده میشود. یکی از این اسکرینشاتها حتی تکسطری از زبان اسکریپتنویسی را حفظ کرده که در کنسولِ بالای صفحه تایپ شده است:
with all nodes do nodeplane x 1 -1 end
بازسازی بر پایهٔ شواهد
Claude بر پایهٔ همین شواهد Skyrails را یکشبه بازسازی کرد. نسخهٔ جدید با Three.js در مرورگر وب اجرا میشود و علیالقاعده باید روی هدست واقعیت مجازی هم کار کند. از آسمان، ریلهای جناغی، گرههای درخشان با آیکونها و نمودارهای دایرهای و حلقههایشان، برچسب بزرگ گرهِ زیر نشانگر، منوی دایرهای و چهار پوسته تقلید میکند. یک زبان اسکریپتنویسی کوچک هم دارد که حول همان تکسطرِ بهجامانده در اسکرینشاتها ساخته شده است، تا دستورهای with … do … end ظاهر گراف را بیارایند و منوها را تعریف کنند.
برای آزمودنش، سه مجموعهدادهٔ کلاسیک را در آن بارگذاری کردم: شبکهٔ خاندانهای فلورانسیِ جان پجت، با پیوندهای ازدواج و تجارتشان؛ باشگاه کاراتهٔ وین زکری؛ و شبکهٔ شخصیتهای «بینوایان» از دونالد کنوت، که در آن دو شخصیت وقتی در یک فصل ظاهر شوند به هم پیوند میخورند. ویدئوی زیر آخرینِ اینها را میپیماید، از والژان به ژاور، فانتین، کوزت و ماریوس. هر ریل همین که دوربین دنبالش میکند روشن میشود.
نتیجه چنان به اسکرینشاتها نزدیک بود که بیدرنگ گمان بردم ردپاهایی از کد اصلی در جریان آموزش مدل به درون آن راه یافته است.
نسخهٔ اصلی پیدا میشود
و بعد، ماجرا پیچ خورد. پس از بازسازی، برنامهٔ اصلی را در GitHub پیدا کردم. پژوهشگری آن را در سال 2015، با اجازهٔ یوسه ویجایا، همراه با کدِ سخنرانیای دربارهٔ مصورسازی دادهها در کنفرانس امنیتی ShmooCon منتشر کرده بود (RITHoneynet/DataVisualization، که رونوشتی از آن در Light0617/3D_UIUX هم هست). فایلهای اجرایی Windows، دادهها، شیدرها و اسکریپتهای اصلی در آن هست، اما کد منبع موتور اصلی نه.
پس میتوانستیم این دو را با هم مقایسه کنیم. بازسازی در ظاهر و حسوحال به اصل نزدیک شده است، اما زبان اسکریپتنویسی و شیدرهایش بسیار متفاوتاند. اسکریپتهای اصلی چنیناند:
with all edges do (
if(#marriage == 1) then (
linkorigin <- marriage -> linktarget;
) end;
) end;
در آنها زیرروالها با sub تعریف میشوند، منوها با menudef و menulink، رنگها با rgb: 130 0 0 و نوع پیوندها با پیکان. هیچیک از اینها در بازسازی نیامده است؛ بازسازی تنها در صورت with … do … end، که در اسکرینشات پیداست، با اصل شریک است. شیدرهای اصلی هم، با نامهایی چون BloomFX و RetinalBurnFX، هیچ وجه مشترکی با شیدرهای جدید ندارند.
این، مسئلهٔ از بر کردن را فیصله نمیدهد. اسکریپتهای اصلی از 2015 در دسترس عموم بودهاند و کاملاً ممکن است جزو دادههای آموزشی مدل بوده باشند، و هیچکس، از جمله خود مدل، نمیتواند با اطمینان بگوید مدل چه دیده است. اما اگر مدل Skyrails را از بر کرده بود، انتظار داشتم دستکم زبانش را بازتولید کرده باشد. این تفاوتها گمان را به این سو میبرند که Claude بر پایهٔ شواهد موجود در اسکرینشاتها کار کرده است.
باستانشناسی دیجیتال و ماندگاری نرمافزار
این آزمایش را گونهای باستانشناسی دیجیتال میدانم: بازسازی شیئی گمشده از روی ردپاهایی که از خود به جا گذاشته، سپس یافتن نسخهٔ اصلی و سنجیدن اینکه تا کجا به آن نزدیک شدهایم. Skyrails تازه، مثل هر بازسازی دیگری، یک تفسیر است. ظاهر و رفتارش بر شواهد استوار است و هرچه زیر آن است نو.
مسئلهٔ ماندگاری هم در میان است. نرمافزار بسیار زودتر از دادههایی که برای خواندنشان ساخته شده منسوخ میشود. وقتی برنامهای میمیرد، فایلها، اسکریپتها و مصورسازیهایی که با آن ساخته شدهاند، حتی اگر باقی بمانند، بهسختی باز میشوند. بخش بزرگی از نرمافزارهای دههٔ 2000 اکنون تنها به صورت اسکرینشات، ویدئو و فایلهای باینری کهنهای باقی است که روزبهروز رایانههای کمتری از پس اجرایشان برمیآیند. Skyrails اصلی شاید هنوز روی رایانهای با Windows، یا در یک شبیهساز، اجرا شود، اما دیگر نمیتوان نگهداریاش کرد، سازگارش کرد یا به سکوهای دیگر منتقلش کرد، چون کد منبعش از دست رفته است.
همانطور که چند سال پیش پیشبینی کرده بودم، هوش مصنوعی دارد به ابزاری عملی در برابر این گونه منسوخ شدن بدل میشود. میتواند ابزاری گمشده را از روی ردپاهایش بازسازی کند، و میتواند برنامههایی را از نو بسازد که دادههای کهنه را میخوانند و قابل استفاده نگه میدارند. گام بعدیِ بدیهی در این پروژه این است که به موتور جدید بیاموزیم اسکریپتهای .van و فایلهای دادهٔ اصلی را بخواند، تا نمایشهایی که یوسه ویجایا در سال 2007 نوشت دوباره اجرا شوند. برای هر کس که دغدغهٔ ماندگاری دادهها را دارد، در پژوهش، در آرشیوها یا در علوم انسانی دیجیتال، این موضوعی است درخور توجه.
Skyrails از زمانهٔ خود جلوتر بود و هنوز هم، نزدیک به بیست سال بعد، چشمگیر است. اعتبار ایده و طراحی یکسره از آنِ یوسه ویجایاست، و امیدوارم این نوشته به دستش برسد.
