Rosetta
幾個月前,在北投運動中心游完泳以後要等待女友更衣出來。話說人在無聊的時候好奇心會無限放大,連乏味的公告和得獎名單都可以一個字一個字地讀下去。在嘗試從其中發掘出趣味失敗後,有樣東西突然引起我的注意。
那就是牆壁上的樓層標示牌,有中文、英文以及點字(braille)。
話說我有點納悶,這地板上也未見導盲磚指引,突然就在牆上掛了一個點字,盲人怎麼會知道這裡有標示呢?如果還要其他人來指引說這裡有標示的話,直接問不就好了?
暫且拋開這裡是不是真的有盲人會來用,一塊寫著三種語言的板子,而且我能解讀其中兩種,這豈不是現代版的Rosetta Stone嗎?也許我能藉此認識點字呢。何況點字是人為了特定目的造出來的語言,規則應該不會太複雜才對(此時我對點字完全不了解),所以就開始嘗試解讀了。
首先有一些簡單的觀察,每個點字都是以六個bit為一單位(後文姑且稱作braille-byte),然後我假設他和我們一般在用的語言一一對應,從碼的長度可以觀察到這塊板子上寫的點字大部分都是和中文長度成正比,因此我知道板子上有中文的部份,點字都是和中文而非英文翻譯簡單對應。而像「1F」、「B2」這種只有英文的,應該就是和英文字母與數字一一對應。
和中文對應,最簡單的方法就是語音了(就像注音輸入法比起倉頡、嘸蝦米等在我們這邊絕對是最普及的輸入方式一樣)。我用這個假設去分析,果然可以驗證,並且得到一些發現,例如游泳池的「ㄔˊ」,用點字拼起來還要加上一個placeholder,像「ㄔ◎2」這樣。猜想這是為了統一編碼長度,每個字都是3個braille-byte組成。因此像「ㄐ一ㄠˋ」,可能就要編碼成「ㄐ☆4」,其中星星的部份代表一ㄠ,不錯的設計。我喜歡RISC勝過CISC。
但是接下來我發現我找出的轉換規則不太對,有些詞整個無法解讀。是例外嗎?如果是的話,例外出現在某個詞的所有字上是一件機率很低的事情(點字的對應單位基本上是based on國字,或者更細分為一個音節,似乎沒有詞這種階層的規則)。於是我發現奇怪的原因了:
請先看1F和B1,我們可以知道「⠼⠁」代表1,因為他在1F和B1中共同出現,而且出現的位置也和1相符合。而「⠠⠋」代表F,「⠠⠃」代表B。可是看一下2F的圖,你會發現無法解讀出來…仔細看,他旋轉了180度!本來應該是「⠼⠃⠠⠋」,卻寫成「⠴⠁⠰⠏」!可見當初貼這個的人根本不懂點字嘛!OK。繼續國小的智力測驗:「⠼⠁」是1,「⠼⠃」是2,請問3是什麼?「⠼⠇」?可惜猜錯了。我從B3的點字,得到3是「⠼⠉」的結論。點字的數字系統是三進位?似乎不是。就好像中文一、二、三接下來不是「
“你真是名偵探毛利小五郎耶!”
---sffish. 10/25, 2008