点字関連メモ

異なる表記体系の点字を埋め込む際のフラグ

異なる表記体系の点字を埋め込む際のフラグ
基本\埋め込む表記体系 かな 情報処理用 漢点字 六点漢字
かな - ,8,0 - -
情報処理用 _8_0 - _l_= _5-_9-
漢点字 - - - -
六点漢字 - - - -

NABCC

NABCC は North American Braille Computer Code の略であり、日本語では「北米点字コンピュータコード」と呼ばれる。 北米などでは単純に「Computer Braille」と呼ばれている。 誤解を恐れずに記すと、NABCC は2級点字や漢点字のような点字の表記体系「ではない」。 NABCC を点字の表記体系の一種と考えることもできるのだが、 コンピュータのテキスト文書を点字で扱うために作られた 「文字コード体系」の一種と解釈する方が自然である。 したがって最初から文字として読み書きすること優先していない NABCC を漢点字などと同列に考えると違和感を覚える場面も多く、理解も難しくなるであろう。 そのため、ここではあえて NABCC を文字コード体系の一種と扱うことにする。 以下、NABCC を「文字コード体系」と主張する根拠と、その特徴を記す。

「文字コード体系」とは、文字のグリフと数値の対応関係を定めたものである。 ここで、少し脱線して文字コードについて簡単に説明しよう。 「グリフ」とは文字の図形的な形状を指す言葉であり、 たとえば小文字のアルファベット「o」のグリフは「背の低い輪」であり、 日本の点字におけるカナ「め」のグリフは「3行2列に等間隔で並んでいる6つの点」である。 最初の頃のコンピュータでは文字の表し方すらも機種ごとに異なっており、 ある機種で作った文書を別の機種に移動すると読むことすらできなかった。 無論この状態は望ましくないため、 たとえば「65 といえば大文字の A のことだ」などと決め、 そのルールに従っている機種間で文字をやりとり可能にしていった。 こうした対応関係を規格としてまとめたものが文字コード体系である。 代表的な文字コード体系として、ここではASCIIコードを挙げておく。 なお、文字コード体系が実際に定義するのは「グリフに対応する数値」ではなく、 「数値に対応するグリフ」である。 そのため複数の数値に同じグリフを割り当てることもできる。 これは NABCC を理解する上で重要なポイントとなるので強調しておきたい。

さて、話を元に戻そう。墨字の文書については先に記したとおり ASCIIコードなどを利用することでコンピュータで扱えるようになった。 しかし、文字コード体系の大半は墨字の利用しか想定しておらず、 点字のグリフを表現できないのが実情である。 したがって点字文書をコンピュータで扱う場合、 一般的な文字コード体系が使えないので、 点字用の文字コード体系が必要になってくる。 そして現在、世界でもっとも普及している点字用の文字コード体系が、NABCC である。 なおNABCCはいわゆる「事実上の標準」であり、 規格策定団体等によって定められた厳密な標準規格(仕様書や勧告文書)は存在しない。 しかしながら完全に普及しているため、 NABCCの仕様は固まっていると考えて問題は無い。

続いて NABCC を点字表記の体系として解釈した場合の特徴を記す。 NABCC が持つ最大の特徴は、 アルファベットを表す点字のグリフに対して ASCII コードと同じ数値を割り当てていることである。 たとえば A の ASCII コード値である 65 という数値には、 A を表す「1の点だけが打たれた点字」のグリフが割り当てられている。 したがって、たとえば ASCII コードで(墨字のつもりで)「ABC」と記された英文書データを NABCC で解釈すると「1の点のグリフ」、「1と2の点のグリフ」、「1と4の点のグリフ」 (ABC)と解釈される。 晴眼者向けの身近な言い方に言い換えると、 NABCC のフォント(各数値に対して墨字ではなく点字のグリフを埋め込んだフォント) を使って英文字文書を表示した場合、 アルファベット部分に限るが、 あたかも点訳されたかのように点字のグラフィックで表示されることになる。 もっとも、説明を簡単にするため「点訳」という言葉を使ったが、 これはあくまでアルファベットの個々の文字だけの話であって本物の点訳とは結果が大きく異なってくる。 「英語の文章を NABCC で解釈すると点訳される」などと早計されないようお願い申し上げる。

(この段落には筆者の推測が入っています。 すべて正しい内容とは限りませんのでご注意ください。)
NABCC が持つもう一つの特徴として、数字が「下がり数字」になっている事が挙げられる。 下がり数字とは、 通常の点字体系で用いられる数字の点のパターンを一点分だけ下にずらす、 というものである。 NABCC は、晴眼者用に書かれた ASCII テキストを NABCC で解釈することで点訳という過程を通さずに文書の概要を点字で読み取る、 という目的でも使われる。 この場合、もし下がり数字でなければ a と A と 1 はすべて同じグリフで表示されてしまう。 大文字小文字の違いは判別できずともまだ良いが、 A と 1 の違いは判別できないと困る。 こういった理由もあり、NABCC では下がり数字が採用されていると思われる。

以下に NABCC の割り当て表を示す。 ただし NABCC は非可視文字であるコントロールコードにもグリフを割り当てているが、 ここではそれらを割愛した。

数字
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
アルファベット (1)
A B C D E F G H I J   K L M N O P Q R S T
a b c d e f g h i j   k l m n o p q r s t
アルファベット (2)
U V W X Y Z
u v w x y z
記号類 (1)
(空白) ! " # $ % & ' - = ^ ~ \ | @ `
(点無し) ! " # $ % & ' - = ^ ~ \ | @ `
記号類 (2)
(~) [~] {~} ; + : * , . < > / ? _
() [] {} ; + : * , . < > / ? _

仮名点字

ここでの「仮名点字」とは、日本語の点字としてもっとも多く利用されている点字体系を指す。 一般的に日本で「点字」と呼ばれる点字はこの表記体系で記されたものである。 なおこの呼び方は一般的でないが、 単に「日本の点字」などと呼ぶと漢点字や六点漢字などと区別できなくなるため、 ここではこの用語をあえて使用する。

仮名点字の特徴は、 文字を訳する体系ではなく音を訳する体系と考えられる点である。 仮名点字で表現できる文字種は大別すると仮名、数字、記号の3つであり、 漢字は表現できない。 また、ひらがなとカタカナの区別はない。 したがって漢字かな混じりの文章を仮名点字に訳する場合は漢字の発音を仮名で記す、 すなわち音に読み下して点字化することになる。 なお、読み下し方は現代仮名遣いで行わず、 旧仮名遣いに近いルールで行う。 さらに、すべてを仮名で表現すると単語の区切りがわかりにくいため、 適宜空白を挿入して読みやすくする「分かち書き」と呼ばれる処理を行う。

仮名点字では、仮名の特徴である「行と段」に着目した方法で50音を体系的に表現する。 具体的には、点字を構成する6点のうち3、5、6の点で「行」を表現し、 1、2、4の点で「段」を表現する。 この仕組みにより、 覚えるべき点のパターンが非常に少なく抑えられている。

仮名と記号類以外の文字については、文字種のモードを切り替えた上で記す。 たとえば数字を記す場合は、 数字の前に「数符」と呼ばれる専用のパターンを書いてから数字を書く。 アルファベットを記す際も同様である。

仮名点字とコンピュータの関係について最後に記す。 コンピュータで仮名点字を扱う場合、最大の問題は分かち書きである。 分かち書きのルールは曖昧であり、ある程度までしか論理的な規格にできない。 日本語が時間とともに日々変化していくように、 分かち書きの背景にある「読みやすさ」の感覚もまた日々変化していくのだから、 人手要らずの完璧な点訳システムは、当分は出現しないであろう。

なお自動点訳システムを作成する場合は、 文章を形態素解析(日本語を品詞に分解していく処理)にかけて音に読み下し、 分かち書きを行い、 各種符号の挿入等を行い(文字種別のモード変更など)、 現代仮名遣いを点字用の表記に変換し、 これを NABCC に変換して点字の並びを得れば実装できよう。 端的に言って、技術的難易度は高いと思われる。

以下、仮名点字のパターンを表に記す。

かな五十音
段\行
a * : o k u z / e ' 0
b < \ r l v ( - h -
c % ? n m x y + d -
f $ ] q p & = - g -
i [ w t s ! ) > j 9
数字
数符 1 2 3 4 5 6 7 8 9 0
# a b c d e f g h i j

記号類

全角の記号類 (1)
外字符 外国語引用符 大文字符 二重大文字符 小文字符
; 80 , ,, ^
全角の記号類 (2)
ー(長音)
;p ;& ;% ;* / 4 4 ; 5 6 " -- 3
半角の記号類
! ? ; : . , ' “~” ‘~’ (~) [~] - *
6 8 2 3 4 1 ' 80 ,80' 77 ,77' - 99
アルファベット (1)
A B C D E F G H I J   K L M N O P Q R S T
a b c d e f g h i j   k l m n o p q r s t
アルファベット (2)
U V W X Y Z
u v w x y z

情報処理用点字

情報処理用点字は NABCC と同様、 コンピュータの文書を扱うことを目的に策定された点字の体系である。 仮名点字でコンピュータの文書を扱う場合、 頻繁に使われる ¥ などの記号を表現できないことや、 開きカッコと閉じカッコが同じ点字になるなど多くの問題が出てくる。 そこで、 コンピュータ上の文書を問題なく扱えるような新しい点字体系として情報処理用点字が策定された。 歴史的には、日本点字委員会が 1981 年に定めた 「コンピュータ用言語の6点式点字表記」 が元になっており、数回の改定を経て現在に至る。

情報処理用点字の仕様策定の主目的は、 コンピュータ上の文書を点字で読み書きできるようにすることである。 「コンピュータ上の文書を点字で読み書きできる」とは、 その点字体系で点訳してもコンピュータ上の文書で用いられるすべての墨字を判別でき、 点訳した結果から元の墨字の文書を再現できる、ということである。 墨字と点字を相互変換するには墨字と点字が一対一対応していると都合が良い。 おそらくそのために情報処理用点字は文字を訳する体系となっており、 音を訳する仮名点字とは違っている。

情報処理用点字には「基本状態」という概念がある。 どのような基本状態を採用するかによって、 情報処理用点字は大文字基本表記、小文字基本表記、 ナチュラル表記という3種類の表記法に細分化される。 基本状態は「基本とする大文字小文字の状態」であり、 たとえば空白の直後に大文字小文字を指定する符号を置かずにアルファベットを記した場合に 大文字と解釈すべきか小文字と解釈すべきかを決定するのに使う。 なお、表記法を1種類に統一しないのは利便性のためであり、 場面に応じて使い分け可能にするためである (たとえばプログラミング時に言語に応じて使い分ける。 主に大文字を使う COBOL は大文字基本表記で、 主に小文字を使う C 言語や Python 言語は小文字基本表記で、 大文字と小文字を混ぜて使う Java 言語や C# 言語はナチュラル表記でプログラミングする、など)。

情報処理用点字の規格では、 情報処理用点字の文章中に他の点字表記体系で記した文章を埋め込む際の記述方法が規定されている。

以下、情報処理用点字の割り当て表を記す。なお、ここには一部しか掲載していない。

記号類(1)
(空白) ! " # $ % & ' ( ) - = ^ ~ \ | @
(点無し) 6 7 % ? ] & ' 8 0 - 33 ^ "c $ \ [
記号類(2)
` [ { ; + : * ] } , < . > / ? _
"e ( < 2 + "1 * ) > 1 99 4 55 / "8 "-