ساموئل مورس اولین کسی نبود که تونست حروف زبان نوشتاری رو با موفقیت به یه کد قابل تفسیر تبدیل کنه. و همچنین اولین کسی هم نبود که بیشتر به خاطر اسم کدش معروف شد تا خودش. این افتخار باید به یه نوجوان نابینای فرانسوی برسه که حدود ۱۸ سال بعد از مورس به دنیا اومد ولی خیلی زودتر از اون کارش رو به ثبت رسوند. اطلاعات زیادی از زندگیاش در دسترس نیست، اما همین چیزهایی که میدونیم یه داستان گیرا میسازه.
لویی بریل سال ۱۸۰۹ در کوپوری فرانسه، فقط ۲۵ مایلی شرق پاریس به دنیا اومد. پدرش سازندهی افسار اسب بود. توی سه سالگی – سنی که پسربچهها نباید توی کارگاه پدرشون بازی کنن – اتفاقی یه ابزار نوکتیز رو توی چشمش فرو کرد. زخم عفونت کرد و عفونت به چشم دیگهاش هم سرایت کرد و اون رو کاملاً نابینا کرد. بیشتر آدمهایی که اون زمان به چنین سرنوشتی دچار میشدن، محکوم به زندگی در جهل و فقر بودن، اما هوش و میل به یادگیری لویی جوان خیلی زود شناخته شد. با پادرمیانی کشیش روستا و یه معلم، اول توی مدرسهی روستا با بچههای دیگه درس خوند و بعد توی ۱۰ سالگی به موسسهی سلطنتی جوانان نابینا در پاریس فرستاده شد.

بزرگترین مانع در آموزش کودکان نابینا، ناتوانی اونها در خوندن کتابهای چاپی بود. والنتاین هوی (۱۷۴۵–۱۸۲۲)، بنیانگذار مدرسهی پاریس، سیستمی رو ابداع کرده بود که حروف رو به صورت برجسته با یه فونت بزرگ و گرد روی کاغذ چاپ میکرد تا بشه اون رو با لمس خوند. اما استفاده از این سیستم خیلی سخت بود و فقط چند تا کتاب با این روش تولید شده بود.
هوی که بینا بود، توی یه پارادایم گیر کرده بود. برای اون، حرف “آ” همون “آ” بود و حرف “آ” باید شبیه (یا حس شبیه) “آ” میبود. (اگه بهش یه چراغ قوه میدادن برای ارتباط، شاید سعی میکرد حروف رو توی هوا نقاشی کنه، همونطور که ما قبل از اینکه بفهمیم خیلی خوب کار نمیکنه، این کار رو میکردیم.) هوی احتمالاً متوجه نمیشد که یه نوع کد کاملاً متفاوت از حروف برجسته ممکنه برای افراد نابینا مناسبتر باشه.
منشأ یه نوع کد جایگزین از یه منبع غیرمنتظره اومد. چارلز باربیه، کاپیتان ارتش فرانسه، تا سال ۱۸۱۵ سیستمی برای نوشتن ابداع کرده بود که بعدها écriture nocturne یا «نوشتار شبانه» نامیده شد. این سیستم از الگویی از نقطههای برجسته روی کاغذ ضخیم استفاده میکرد و برای استفادهی سربازها برای رد و بدل کردن یادداشتها در تاریکی و زمانی که سکوت لازم بود، در نظر گرفته شده بود. سربازها میتونستن این نقطهها رو با یه قلم شبیه درفش، به پشت کاغذ فرو کنن. بعدش میشد نقطههای برجسته رو با انگشتها خوند.
لویی بریل توی ۱۲ سالگی با سیستم باربیه آشنا شد. اون استفاده از نقطههای برجسته رو دوست داشت، نه فقط به خاطر آسونیش توی خوندن با انگشتها، بلکه به خاطر اینکه نوشتنش هم راحت بود. یه دانشآموز توی کلاس درس که کاغذ و قلم داشت، واقعاً میتونست یادداشتبرداری کنه و اونها رو بخونه. بریل با پشتکار روی بهبود این سیستم کار کرد و ظرف سه سال (در ۱۵ سالگی) سیستم خودش رو ابداع کرد که اصول اولیهاش هنوز هم استفاده میشه. برای سالها، این سیستم فقط داخل مدرسه شناخته شده بود، اما کمکم راه خودش رو به بقیهی دنیا هم پیدا کرد. سال ۱۸۳۵، لویی بریل به بیماری سل مبتلا شد که نهایتاً کمی بعد از تولد ۴۳ سالگیش، در سال ۱۸۵۲، باعث مرگش شد.
امروزه، نسخههای مختلفی از سیستم بریل برای فراهم کردن دسترسی افراد نابینا به کلمات نوشتاری، با کتابهای صوتی رقابت میکنن، اما بریل یه سیستم بینهایت ارزشمنده و تنها راه خوندن برای افرادیه که هم نابینا هستن و هم ناشنوا. تو دهههای اخیر، بریل برای عموم مردم آشناتر شده چون آسانسورها و دستگاههای خودپرداز برای دسترسیپذیرتر شدن، از بریل استفاده کردن.
کاری که من توی این فصل میکنم اینه که کد بریل رو تشریح میکنم و بهتون نشون میدم چطور کار میکنه. لازم نیست واقعاً بریل رو یاد بگیرید یا چیزی رو حفظ کنید. تنها هدف این تمرین، به دست آوردن اطلاعات بیشتر در مورد ماهیت کدهاست.
تو بریل، هر نمادی که توی زبان نوشتاری عادی استفاده میشه – به طور خاص، حروف، اعداد، و علائم نگارشی – به صورت یک یا چند نقطهی برجسته داخل یه خانهی دو در سه کدگذاری میشه. نقطههای هر خانه معمولاً از ۱ تا ۶ شمارهگذاری میشن:

ماشینتحریرهای خاصی برای برجستهکردن نقطههای بریل روی کاغذ طراحی شدن، و این روزها هم دستگاههای برجستهساز کامپیوتری این کار رو انجام میدن.
چون برجستهکردن حتی فقط چند صفحه از این کتاب به روش بریل خیلی گرون تموم میشه، من از یه نمادگذاری رایج برای نشون دادن بریل روی صفحهی چاپی استفاده کردم. تو این نمادگذاری، هر شش نقطه توی خونه نشون داده میشن. نقطههای بزرگ قسمتهایی از خونه رو نشون میدن که کاغذ برجسته شده. نقطههای کوچیک هم قسمتهایی از خونه رو نشون میدن که صاف هستن. مثلاً، تو کاراکتر بریل،

نقطههای ۱، ۳ و ۵ برجسته هستن و نقطههای ۲، ۴ و ۶ برجسته نیستن.
چیزی که در این مرحله باید برامون جالب باشه اینه که نقطهها باینری هستن. یه نقطهی خاص یا صافه یا برجسته. این یعنی میتونیم چیزایی رو که دربارهی کد مورس و ترکیبهای باینری یاد گرفتیم، به بریل هم تعمیم بدیم. میدونیم که شش نقطه وجود داره و هر نقطه میتونه یا صاف باشه یا برجسته، پس تعداد کل ترکیبهای شش نقطهی صاف و برجسته، ۲ × ۲ × ۲ × ۲ × ۲ × ۲، یا ۲۶، یا ۶۴ هست.
بنابراین، سیستم بریل قابلیت نشون دادن ۶۴ کد منحصربهفرد رو داره. همهشون، هر ۶۴ تا کد، اینجا هستن:

لازم نیست که تمام ۶۴ کد توی بریل استفاده بشن، اما ۶۴ قطعاً حداکثرِ ممکن هست که الگوی شش نقطهای به ما میده.
برای شروع تشریح کد بریل، بیاید نگاهی به حروف کوچک الفبای اصلی بندازیم:

مثلاً عبارت «تو و من» (you and me) توی بریل این شکلی دیده میشه:

ببینید، سلولهای هر حرف توی یک کلمه با یه کم فاصله از هم جدا میشن؛ یه فاصلهی بزرگتر (که در واقع یه سلول بدون نقطههای برجستهست) بین کلمات استفاده میشه.
این اساس بریل هست، همونطور که لویی بریل طراحیش کرد، یا حداقل اونطور که برای حروف الفبای لاتین کاربرد داره. لویی بریل کدهایی هم برای حروف دارای علامت نگارشی (که تو فرانسه رایجه) ابداع کرد. دقت کنید که کدی برای حرف “w” وجود نداره، چون تو فرانسهی کلاسیک استفاده نمیشه. (نگران نباشید، این حرف بالاخره سر و کلهاش پیدا میشه.) تا اینجای کار، فقط ۲۵ تا از ۶۴ کد ممکن استفاده شده.
با بررسی دقیق، یه الگو تو کدهای بریل برای ۲۵ حرف کوچک پیدا میکنید. ردیف اول (حروف a تا j) فقط از چهار نقطهی بالایی سلول استفاده میکنه – یعنی نقطههای ۱، ۲، ۴ و ۵. ردیف دوم (حروف k تا t) دقیقاً شبیه ردیف اوله، با این تفاوت که نقطهی ۳ هم برجسته میشه. ردیف سوم (u تا z) هم همینه، با این تفاوت که نقطههای ۳ و ۶ برجسته میشن.
لویی بریل سیستمش رو در اصل برای سوراخ کردن دستی طراحی کرده بود. اون میدونست که این کار احتمالاً خیلی دقیق نخواهد بود، بنابراین هوشمندانه ۲۵ حرف کوچک رو طوری تعریف کرد که ابهام رو کم کنه. مثلاً، از بین ۶۴ کد ممکن بریل، شش تا فقط یه نقطهی برجسته دارن. اما فقط یکی از اینها برای حروف کوچک استفاده میشه، به طور خاص برای حرف “a”. چهار تا از ۶۴ کد دو نقطهی عمودی مجاور دارن، اما باز هم فقط یکی استفاده میشه، برای حرف “b”. سه تا کد دو نقطهی افقی مجاور دارن، اما فقط یکی استفاده میشه، برای حرف “c”.
چیزی که لویی بریل واقعاً تعریف کرد، مجموعهای از اشکال منحصربهفرد بود که میشد کمی روی صفحه جابهجا بشن و باز هم همون معنی رو بدن. یه “a” یه نقطهی برجسته است، یه “b” دو نقطهی عمودی مجاوره، یه “c” دو نقطهی افقی مجاوره و همینطور الی آخر.
کدها اغلب مستعد خطا هستن. خطایی که هنگام نوشتن کد رخ میده (مثلاً وقتی یه دانشآموز بریل، نقطهها رو روی کاغذ علامت میزنه) خطای رمزگذاری نامیده میشه. خطایی که هنگام خوندن کد رخ میده خطای رمزگشایی نامیده میشه. علاوه بر این، میتونه خطاهای انتقال هم وجود داشته باشه – مثلاً وقتی صفحهای که بریل داره به نوعی آسیب میبینه.
کدهای پیشرفتهتر اغلب انواع مختلفی از تصحیح خطای داخلی رو شامل میشن. از این نظر، بریل، اونطور که لویی بریل در ابتدا تعریف کرد، یه سیستم کدگذاری پیشرفتهست: از افزونگی استفاده میکنه تا کمی عدم دقت در سوراخ کردن و خوندن نقطهها رو مجاز بدونه.
از زمان لویی بریل، کد بریل به روشهای مختلفی گسترش پیدا کرده، از جمله سیستمهایی برای نتنویسی ریاضیات و موسیقی. در حال حاضر سیستمی که بیشتر اوقات در متنهای چاپی انگلیسی استفاده میشه، بریل درجه ۲ نام داره. بریل درجه ۲ برای اینکه کاغذ کمتری استفاده کنه و سرعت خوندن رو بالا ببره، از انقباضهای زیادی استفاده میکنه. مثلاً، اگه کدهای حرف به تنهایی ظاهر بشن، نمایندهی کلمات رایج هستن. سه ردیف بعدی (شامل یه ردیف سوم «کاملشده») این کدهای کلمه رو نشون میدن:

اینطوری، عبارت «تو و من» (you and me) رو میشه توی بریل درجه ۲ اینجوری نوشت:

تا اینجا، من ۳۱ تا کد رو توضیح دادم – اون فضای بدون نقطهی برجسته بین کلمات و سه ردیف ده تایی کد برای حروف و کلمات. هنوز به ۶۴ تا کدی که از نظر تئوری در دسترس هستن، نزدیک هم نشدیم. توی بریل درجه ۲، همونطور که خواهیم دید، چیزی هدر نمیره.
کدهای حروف “a” تا “j” رو میشه با یه نقطهی ۶ برجسته ترکیب کرد. اینها بیشتر برای مخفف کردن حروف توی کلمات و همچنین شامل حرف “w” و یه مخفف کلمهی دیگه استفاده میشن:

مثلاً کلمهی «درباره» (about) رو میشه توی بریل درجه ۲ اینجوری نوشت:

گام بعدی یه ابهام احتمالی رو معرفی میکنه که تو فرمولبندی اصلی لویی بریل وجود نداشت. کدهای حروف “a” تا “j” رو میشه به طور مؤثر پایین آورد تا فقط از نقطههای ۲، ۳، ۵ و ۶ استفاده کنن. این کدها بسته به متن، بعضی از علائم نگارشی و مخففها رو نشون میدن:

چهار تای اول این کدها، کاما، نقطهویرگول، دونقطه، و نقطه هستن. دقت کنید که از یه کد مشترک هم برای پرانتز باز و هم پرانتز بسته استفاده میشه، اما دو کد متفاوت برای گیومه باز و بسته به کار میره. چون ممکنه این کدها با حروف “a” تا “j” اشتباه گرفته بشن، فقط در یه بستر بزرگتر و بین حروف دیگه معنی پیدا میکنن.
تا الان به ۵۱ کد رسیدیم. شش کد بعدی از ترکیبهای مختلف و استفادهنشدهی نقطههای ۳، ۴، ۵ و ۶ استفاده میکنن تا مخففها و یه سری علائم نگارشی اضافی رو نشون بدن:

کد «ble» خیلی مهمه، چون وقتی بخشی از یک کلمه نباشه، یعنی کدهای بعدی باید به عنوان عدد تفسیر بشن. این کدهای عددی همونایی هستن که برای حروف “a” تا “j” استفاده میشن:

بنابراین، این دنباله از کدها:

یعنی عدد ۲۵۶.
اگه تا اینجا حساب کرده باشید، ما هفت کد دیگه لازم داریم تا به حداکثر ۶۴ کد برسیم. ایناهاشون:

اولین کد (یه نقطهی ۴ برجسته) به عنوان نشانگر لهجه استفاده میشه. بقیه به عنوان پیشوند برای بعضی مخففها و همچنین برای اهداف دیگهای به کار میرن: وقتی نقطههای ۴ و ۶ برجسته هستن (کد پنجم تو این ردیف)، اون کد بسته به متن، اعشار عددی یا نشانگر تاکید هست. وقتی نقطههای ۵ و ۶ برجسته هستن (کد ششم)، اون نشانگر حرف هست که نشوندهندهی برعکس نشانگر عدد عمل میکنه.
و بالاخره (اگه براتون سؤال شده بود که بریل چطور حروف بزرگ رو کدگذاری میکنه) نقطهی ۶ رو داریم – نشانگر حرف بزرگ. این نشون میده که حرف بعدی حرف بزرگه. مثلاً، میتونیم اسم سازندهی اصلی این سیستم رو اینجوری بنویسیم:

این دنباله با یه نشانگر حرف بزرگ شروع میشه، بعدش حرف “l”، مخفف “ou”، حروف “i” و “s”، یه فاصله، یه نشانگر حرف بزرگ دیگه، و حروف “b”، “r”، “a”، “i”، “l”، “l” و “e” میاد. (توی استفادهی واقعی، اسم شاید حتی بیشتر هم کوتاه بشه با حذف دو حرف آخر، که تلفظ نمیشن، یا با نوشتن “brl”.)
خلاصه، دیدیم که چطور شش عنصر باینری (نقطهها) ۶۴ کد ممکن و نه بیشتر رو به دست میدن. فقط این اتفاق میافته که خیلی از این ۶۴ کد بسته به متن، دو کار مختلف رو انجام میدن. چیزی که به خصوص جالبه، نشانگر عدد به همراه نشانگر حرفیه که نشانگر عدد رو خنثی میکنه. این کدها معنی کدهای بعدی رو تغییر میدن – از حروف به اعداد و از اعداد دوباره به حروف. کدهایی مثل اینها اغلب کدهای تقدم یا شیفت نامیده میشن. اونها معنی تمام کدهای بعدی رو تغییر میدن تا زمانی که شیفت خنثی بشه.
یه کد شیفت شبیه به نگه داشتن کلید Shift روی کیبورد کامپیوتره، و این اسم رو گرفته چون کلید معادل روی ماشینتحریرهای قدیمی به صورت مکانیکی مکانیزم رو شیفت میداد تا حروف بزرگ رو تایپ کنه.
نشانگر حرف بزرگ بریل به این معنیه که حرف بعدی (و فقط حرف بعدی) باید حرف بزرگ باشه نه کوچک. کدی مثل این به عنوان کد فرار شناخته میشه. کدهای فرار به شما اجازه میدن که از تفسیر عادی یه کد «فرار کنید» و اون رو به طور متفاوتی تفسیر کنید. کدهای شیفت و کدهای فرار وقتی زبانهای نوشتاری با کدهای باینری نشون داده میشن رایج هستن، اما میتونن پیچیدگیهایی رو ایجاد کنن چون کدهای تکی رو نمیشه بدون دونستن کدهای قبلی به تنهایی تفسیر کرد.
از اوایل سال ۱۸۵۵، بعضی از طرفداران بریل شروع کردن به گسترش سیستم با یه ردیف دیگه از دو نقطه. بریل هشتنقطهای برای بعضی اهداف خاص، مثل موسیقی، تندنویسی، و کاراکترهای کانجی ژاپنی استفاده شده. چون تعداد کدهای منحصربهفرد رو به ۲۸ یا ۲۵۶ افزایش میده، توی بعضی برنامههای کامپیوتری هم راحت بوده، و به حروف کوچک و بزرگ، اعداد و علائم نگارشی اجازه میده که همگی کدهای منحصربهفرد خودشون رو داشته باشن بدون دردسرهای کدهای شیفت و فرار.