
村田 真
2018年2月22日の文字情報技術促進協議会年次特別講演でのポジショントーク
- 慶応大学政策・メディア研究科特任教授
- JEPA CTO
- ISO/IEC JTC1/SC34/WG4(OOXML) コンビーナ
- 文字情報技術促進協議会 副会長
文書フォーマットの国際化とオープン化
Xeroxの文字コードと文書フォーマット
まずXeroxの話から始めたいと思います。最近、富士フィルムが買うというニュースが流れましたね。私も以前、富士ゼロックスにおりました。
XeroxのワークステーションStarについてお話します。これは1980年代のものです。いまから35年ぐらい前になります。いまのWindowsやMacは、Xeroxの技術に影響を受けています。
これがStarの外観です。今日のデスクトップPCと見た目は変わりません。ネットワークにつながっていました。文書や図形の作成が出来ました。電子メールもありましたしレーザープリンターもありました。
Starは日本語にも対応していました。私も最近まで知らなかったのですが、アラビア語・ヘブライ語にまで対応していたようです。つまり、一行の右から左に文字を並べていくことが、80年代ですでに出来ていたわけです。商業的には失敗しましたが、技術としてはきわめて優れていました。
Starは、 Xerox Character Code Standard というXerox独自の文字コートを使っていました。欧米の言語だけではなく、アラビア語、ヘブライ語、ギリシア語、キリル文字、中国語、日本語、韓国語の文字を表現することが出来ました。もちろん、混在もできます。
このXerox Character Code StandardがUnicodeの原型です。これは Unicode consortiumの歴史 にも書かれています。小林会長もよくご存じのJoe Beckerという人が、Xerox Character Code Standardをまとめました。そして、Unicode consortiumを立ち上げました。Unicodeという名前も、彼がつけたものです。
残念ながらStarは市場から消えました。しかし、消えるずっと前から、Starの文書エディタは、だれも中身が分からないという状態でした。拡張などもちろん出来ません。
Starの文書エディタは巨大なソフトウェアですから、ちゃんと理解するのは大変です。しかし、それだけが理由なのではないのです。そこには体系上の空白ともいうべき欠陥がありました。
Starを支えた体系は三つあります。XINS (Xerox Network System)というネットワークプロトコルであり、PilotというOSであり、Mesaというプログラミング言語です。
XINSは洗練されているという意味で、初期のインターネットを上回ります。PilotやMesaについても、当時ではとても優れたOSでありプログラミング言語でした。そういう技術体系がStarを支えていたのです。
しかし、XINSには文書フォーマットの規定がありませんでした。つまり、Starが作り出す電子文書がどのような構造をもち、どのように表現されているかがよく分からないのです。
もちろん、ちゃんとした文書フォーマットを作ろうという話はありました。Xeroxの研究所では、Interscriptという文書フォーマットを開発していました。しかしInterscriptは完成しませんでした。Starの文書を表現するところまではぜんぜん行きつきませんでした。
では、Starはどんな形式で文書を保存していたのでしょう?私も確実なことは分かりませんが、メモリダンプのようなものだと伝え聞いています。つまり、Starの文書エディタの内部データ構造を、そのままファイルに書き出したようなものだったのでしょう。実際、Starの文書から、プログラムでテキストを取り出すことも簡単には出来ませんでした。
[2018-06-23追記: 単なるダンプではなく可能な限りの圧縮を施してファイル容量を小さくしていたということを確認した。Starの文書フォーマットを知るには、文書エディタのソースプログラムを読むしかなかったとことはさらに確実となった。 ]
どうしてこんなことになったのでしょう?だいたいの想像はつきます。一つは性能です。メモリダンプのような文書形式は、少しでもStarを速くするためには必要だったのでしょう。もう一つは、コストです。Starの文書フォーマットをきちんと規定しようとすると、それだけで数十億円はかかったと思います。
結局、Starの文書フォーマットを知るには、文書エディタのソースプログラムを読むしかなかったのでしょう。担当プログラマが辞めれば、何が何だか分からなくなったことでしょう。
Starについての話が長くなったので、まとめておきます。
- Unicodeの前身であるXerox Character Code Standardを採用していました。
- 文書フォーマットの規定はなくメモリダンプに近いものでした。
- 結局のところ、電子化文書が大量にあっても、プログラムからは触れませんでした。
ワープロ
Starとほぼ同時期に、日本ではワープロ専用機が作られました。この写真は、東芝のJW-10というワープロ専用機です。
ワープロ専用機のかな漢字変換については、長尾先生の研究室のご出身の方が大きく貢献されたと聞いております。
ワープロ専用機は、一時は広く使われていました。ワープロ専用機がなくなったあとも、パソコン用にワープロソフトが作られました。日本で作られたものとして、一太郎と松があります。そして、もちろんマイクロソフトのWordがあります。
では、ワープロでは、どんな文字コードを使い、どんな文書フォーマットを使っていたのでしょう? もう、当時の資料とかは見つかりません。そもそも当時からほとんど情報は公開されていなかったと記憶しています。
多少の間違いはあるかも知れませんが、私の理解しているところを説明します。
- ワープロでは、文字コードはJIS X 0208をもとにしていましたが、各社がいろいろ独自に拡張していました。
- 文書フォーマットは各社独自に作っていて、情報は公開されませんでした。
- 結局のところ、電子化文書が大量にあっても、プログラムからは触れませんでした
90年代に、ワープロのための文書フォーマットを標準化しようという話がありました。標準化すれば、あるワープロで作った文書を、ほかのワープロで読み込めるようになります。ユーザにとってはもちろんメリットがありますから、標準化はもっともな話です。
しかし、標準化の試みはすべてみじめなばかりの失敗でした。ISOではODAという文書フォーマットが失敗しました。私もこれに深く関わっていました。日本国内でもいくつかの試みはありましたが、やはり失敗しています。
失敗したのはなぜでしょう。90年代になるとパソコンの性能は上ってましたから性能が問題なのではありません。私も当事者の一人なのですが、いまだによく整理できていません。きょうは、大失敗だったと白状するだけで勘弁してください。
ODAの標準化が失敗したころ、ワープロソフトの市場も変わってきました。Wordが世界中で圧倒的な地位を確立しました。そうなると、中立的な文書フォーマットを決める必要性はなくなってしまいました。みんながWordを使えばいいわけです。ほかのエディタも、Wordの文書を読み書きできるようにしていますから、やはり中立的な文書フォーマットはいらないということになります。それで、もうワープロ文書のフォーマットの標準化は出来ないだろうと思っていました。90年代後半のことでした。
文書マークアップ言語
つぎに文書マークアップ言語の話をいたします。このリストは、代表的なマークアップ言語をならべたものです。
- SGML
- HTML 3.2
- HTML国際化(IETF RFC 2070)
- XML 1.0
- HTML 4.0
- HTML 5.0
HTMLは、文書マークアップ言語のひとつです。ワープロ文書のためのものではなく、Web文書のためのものです。HTMLでは段落を表すために<p>と書きます。見出しであることを表すためには<h1>とか<h2>と書きます。
これらのマークアップ言語では、最初から文書フォーマットは公開されています。ある会社のワープロソフトからしか使えないなんてことはありません。ブラウザも、検索エンジンも、HTMLエディタも、HTML文書を扱えます。そういういろんなプログラムが、いまのWebを支えているわけです。その意味では、ワープロ文書より大きく進歩しています。
さて、これらのマークアップ言語では、文字の扱いはどうなっていたでしょう? SGMLのときは、実態としては昔のワープロ程度だったと思います。Starと違って、いくつかの自然言語の文字を混在させることも出来ませんでした。
ところが、Gavin Nicolという人の提案によって、文字の扱いに大きな変化がありました。いま、世界中でWebが使えるようになったのは、彼の功績が大きいと思います。
彼の提案は次の通りです。
- 内部コード、つまりプログラムで扱うときのコードと、ファイルに書き出すときの外部コードは分けて考えよう
- 内部コードとしてUnicodeを採用しよう。
- 外部コードは、Unicodeでもよいが、それ以外のものでも構わない。EUCやシフトJIS でもよい。Unicodeに変換できるものなら何でもよい。
- どの外部コードが使われているかを示すための仕掛けを作ろう。
この提案に基づいて、HTML国際化が制定されました。 IETFのRFC 2070 です。
ただし、HTMLの本流に取り入れられるまでには時間がかかりました。当時の本流である HTML 3.2 は、8859-1という欧米の文字コードに限定されていました。提案が取り入れられたのは HTML 4.0 になってからです。ほぼ同時期に、XMLも同じ考え方が取り入れられました。プログラムング言語のJavaも、やはり同じ考え方です。
いまではUnicodeで書かれたHTML文書が多くなったようですが、昔はシフトJISやEUCのほうが圧倒的に多かったと思います。Gavin Nicolの提案は、シフトJISやEUCを認めつつ、徐々にUnicodeに移行することを可能にしたのです。
ここでマークアップ言語についてまとめておきます。
- HTMLのバージョン4以降、それとXML。これらではUnicode を内部コードとして採用しました。そして、外部コードと してシフトJISやEUCを認めました。
- マークアップ言語の文書はただのテキストですから、いろんなプログラムから触ることができました。
- HTMLはWebには使われていますが、ワープロ文書やDTPと比べると簡単なレイアウトしか出来ません。
ODFとOOXML
もうワープロ文書のフォーマットの標準化は出来ないだろうと私はずっと思っていました。ところが、風向きが急に変わり始めたんですね。21世紀になってからODFとOOXMLという二つのフォーマットが現れ、大騒ぎになりました。いまはどちらもISO/IECの国際規格になっています。
なぜ、急に風向きが変わったのでしょう?アンチマイクロソフトという面も確かにありました。しかし、より重要なのはユーザの意識でしょう。
オフィス文書には、ユーザの知的財産が盛り込まれています。ユーザの知的財産が、特定のベンダーの文書フォーマットにロックインされているのは好ましくない。そう、政府や地方自治体が考えたんですね。これはしごく真っ当なことです。ユーザの知的財産をユーザが自由に活用できるようにしたい。そのためにはどうすべきでしょう。文書フォーマットは国際規格として管理されるべきだ。それが欧米の政府や地方自治体の要請でした。
ところで、OOXML文書とODF文書の実体は何でしょう?これらは、ZIPによっていくかかのXML文書をまとめたものです。つまり、肝心なところはXMLなんですね。
したがって、OOXMLとODFはXMLの特徴を引き継いでいます。
- マークアップ言語の良いところを引き継ぎました。
- Unicodeを内部コードとしても外部コードとしても採用しました。
- XML文書はただのテキストなので、zipを解凍すれば、いろんなプログラムから触ることができます。
そして、OOXMLやODFは、広い範囲のオフィス文書を表現することが出来ます。とくに、OOXMLはMicrosoft Officeのすべての文書を表現することができます。Wordだけではなくて、ExcelもPowerPointもです。
なお、さきほどStarの文書エディタが、だれも中身が分からないという状態だった言いました。そして、その大きな原因は、文書フォーマットがちゃんとしていなかったことだとも言いました。
では、OOXMLができたことによって、Microsoft Officeには影響があったでしょうか?私は、Microsoft Officeの開発のリーダから話を聞いたことがあります。なんでも、新人の教育方法が変わったんだそうです。 今までは、ソースコードを読め!というのが教育でした。いまでは、まずOOXMLの仕様書を読め!ということに なっているそうです。そのほうが良く分かるから、そう変えたんでしょう。おそらく、OOXMLによって、Microsoft Officeの寿命は延びたんだろうと思います。
OOXMLは、いまでもISO/IECのある委員会で保守されています。私はこの委員会の委員長をずっと務めています。
EPUB
最後に、電子書籍の話をいたします。いま、国内外のほとんどの電子書籍はEPUBというフォーマットで作られています。
EPUBの制定についても、いろいろ騒ぎがありました。私は、国際の場で、EPUBの国際化のリーダを務めました。当時、国会図書館長でいらっしゃった長尾先生にご支援をお願いしました。いただいたご支援が、EPUB国際化の立ち上げに大いに役立ちました。いま、日本の電子書籍はほとんどEPUBになっています。
EPUBも、いくつかのHTML文書、XML文書をZIPファイルにまとめた形になっています。その意味で、EPUBもOOXMLやODFと似ているんですね。
HTML, XMLはマークアップ言語ですから、EPUBについてはつぎのようにまとめられます。
- マークアップ言語の良いところを引き継ぎました。
- Unicodeを内部コードとしても外部コードとしても採用しました。
- HTML文書、XML文書はただのテキストなので、zipを解凍すれば、いろんなプログラムから触ることができます。
ここまで、電子文書の文字コードの話と、文書フォーマットの話をいたしました。編集可能な電子文書についてはだいたいカバーしたのではないかと思っています。PostscriptやPDFの話は出来ませんでしたが、これらは基本的に編集出来ないものなので、きょうはお話ししませんでした。
まとめ
最後に全体のまとめです。
- 英語と日本語だけの文書から、Unicodeによって国際化された文書になりました。
- 世界中で使えるものになりました。
- 特定の文書エディタにしか扱えないメモリダンプから、多くのプログラムに読める文書フォーマットになりました。
- 自然言語テキストを電子化文書から抜き出すことも、埋め込むことも今なら簡単になりました
- Webもオフィス文書も電子書籍もすべてカバーすることができました。