第34回 XML勧告を理解するために必要な外部の文書 Page 1

XML 1.0は、1998年にW3Cから勧告として公開された。当然中身は英語で、しかもEBNFと呼ばれる式によって重要な部分が記述してある。この連載では、XML 1.0を深く理解するために、そのXML 1.0勧告の最新版「Extensible Markup Language (XML) 1.0 (Third Edition)」をだれでも分かるように、やさしく読み解きながら解説していくことを目指している。(編集局)

川俣 晶
株式会社ピーデー
2005/6/3

附属書の位置付け

主な内容
--Page 1--
附属書の位置付け
References(文献)を提示する意味
--Page 2--
附属書A(規定)文献(A References)
引用規定(A.1 Normative References)
--Page 3--
参考文献(A.2 Other References)

 前回は「5 Conformance(5 適合性)」を読んだ。適合性とは、ある規格に対する適合条件を示すために書かれるものである。そこには、主にXMLプロセッサ開発者向けの規定を記述した「5.1 Validating and Non-Validating Processors(5.1 妥当性を検証するプロセッサおよび検証しないプロセッサ)」と、主にXML利用者向けの規定が書かれた「5.2 Using XML Processors(5.2 XMLプロセッサの使用)」の2つがあった。これを読み切ることで、XML 1.0勧告の本文を読み切ったことになった。お疲れさまである。

 さて、今回は「A References(附属書A(規定)文献)」を読んでいこう。XML 1.0勧告は、それ単体で完結した文書ではない。いくつかの外部の文書に依存して、XMLというメタ言語を規定している。どのような文書に依存しているのか、そして、なぜ外部の文書を参照すべきなのか、それについて説明してみたいと思う。

編集注:この連載では、XML 1.0勧告であるW3Cの「Extensible Markup Language (XML) 1.0 (Third Edition)」(英語)を参照し、その日本語訳として、日本工業規格 JIS X 4159:2002(Second Edition相当。リンク先は該当規格の原案ですが、最終版とほぼ同等の内容です)と追補1として出版予定の原稿(Third Edition対応)を参照しています。本文中のピンクの地の部分は、XML 1.0勧告の原文を示しています。

References(文献)を提示する意味

 この連載を読んでいる皆さんは、もしかしたらXMLの入門書や解説書「だけ」を読んでいる方々よりも、少しだけ知的水準が高いと自負してよいかもしれない。なぜ入門書や解説書よりも、この連載を読む方が知的水準が高いと見なせるのだろうか。その理由は、「確実なことを知りたければ、1次情報に当たれ」という「常識」を踏まえた行動だと解釈できるからだ。1次情報とは、その情報の出所そのものから出された情報を意味する。それに対して、2次情報とは、1次情報を加工したものをいう。

 1次情報と2次情報の差は、以下のような架空の例を見ると分かりやすいだろう。

  • 1次情報:目撃者の証言
    「あれ、絶対UFOだよ。昼過ぎに高尾山の南の方を丸くて光る物体が飛んでいたんだ」
     
  • 2次情報:掲載されたニュース記事
    「本日正午過ぎ、高尾山南方でUFOと思われる光る物体が目撃された」

 この2つの文章を見比べて、どう思われるだろうか。ニュース記事を見ただけで、この事件を正しく理解することができるだろうか。例えば、自分もUFOを目撃したいと思い、高尾山に出掛けるのに十分な情報をニュース記事(2次情報)は与えてくれるだろうか。

 ニュース記事を書いた者は、おそらくできるだけ忠実に証言をニュースの文体に置き換えようとしたのだろう。しかし、ここでは目撃場所についての解釈に微妙な違いが生じている。証言は、高尾山が見える場所に立っていて、そこから高尾山の南側にUFOが見えたと主張しているように読める。つまり、証言者の立っている位置から見て、相対的にUFOは高尾山の南側に見えたというだけの話で、例えばUFOとの距離が高尾山との距離よりも近かったり遠かったりすると、UFOが存在した位置は実は高尾山の南側ではないかもしれない。しかし、ニュース記事の方は、高尾山から見て南側に立っている者がUFOを目撃した、という意味にも読める。もし、UFOの出現位置が高尾山から遠く離れていて、たまたま証言者から見て南に見えただけなら、UFOを見るために高尾山南側に出向いた者たちは、(仮にUFOが実在するとしても)とんだ無駄足となる可能性がある。つまり、2次情報は1次情報と比べて劣化している可能性があり、確実性に劣る場合がある。

 実は、1次情報と2次情報の食い違いが、UFOに関する世界ではシャレにならない問題を引き起こしていた、という話もある。本当は、もっと権威のありそうな文献から引用したかったのだが、あいにくとUFO研究家ではない私にはそのような文献の手持ちがなかった。やむを得ず、インターネット上で割と良い内容を掲載していることが多いと感じられるウィキペディア空飛ぶ円盤(=Flying Saucer)の項目から引用しよう。

Flying Saucerという名称は、1947年6月24日に起きた米国の実業家、ケネス・アーノルドの目撃をきっかけに生まれたものである。彼は自家用機を操縦している最中に、当時としては信じられないほどの高速で編隊飛行を行なう9つの物体を見たという。それについて新聞記者に語る際、水面を受皿(Saucer)が撥ねながら飛んで行くような独特の飛び方をしていたとアーノルドが語ったことから、この名前が生まれた。彼は形状についてSaucerと述べたのではなかったが、この言葉をきっかけに円盤形の飛行物体というイメージが定着することになった。

 ちなみに、この引用は、2次情報のさらに引用であることに注意が必要である。その意味は、この文章を最後まで読み通すことで理解できるだろう(つまり、この文章は確実なUFOに関する議論の根拠としては不十分である)。

 ここで述べられている話は、1次情報から2次情報に移行する際に、それが意味するところが致命的に変化してしまった事例である。つまり、1次情報(ケネス・アーノルドの証言)では、飛び方を表現するために使ったSaucerという言葉が、2次情報(新聞記事)では形状を意味する言葉として読まれてしまっている。

 このような話を前提にすると、実は「あなたはUFO(空飛ぶ円盤=Flying Saucer)を信じますか?」という問い掛けが見掛けほど簡単ではないことが分かるだろう。つまり、ケネス・アーノルドが目撃した物体と、この後目撃された多くの円盤状の空飛ぶ物体は別物と考えられるので、信じるとすればどちらを信じるのかが問われる。どちらを信じるかによって、対象の性質が大きく変わるからである。

 前者はさほど複雑ではない。つまり、ケネス・アーノルドという特定の人物が、特定の場所で、正体は分からないが何かを見たということである。具体性があり、信じる人も信じない人も、何について問われているのかが非常に分かりやすい。

 しかし、後者は決して分かりやすくはない。なぜなら、ケネス・アーノルドの(変形させられた)目撃情報が広まった後で、円盤状の形状を持つ物体を私も見たという人たちの証言がいくつも生まれているらしいからだ。もちろんそれらの円盤状の物体はケネス・アーノルドが目撃したものではあり得ない。つまり、それまで目撃されていなかった物体が、虚構の目撃情報(結果的に事実を示していないことになってしまった目撃情報)によって、目撃されるようになったのである。では彼らが見たものはいったい何であるのか。その解釈は、非常に多岐にわたり、空飛ぶ円盤を信じる者たちの間ですら大きな食い違いを発生させている。何しろ、虚構の目撃情報を切っ掛けにして引き起こされた目撃情報の数々であるから、議論のよりどころもない。ある解釈が間違いであると証明することは難しく、複数の相矛盾する解釈が平行して通用することになる。仮にここでは、このような問題を「UFO解釈問題」と呼ぼう。

UFO解釈問題とXML勧告

 さて、XML勧告を読むこの連載で、なぜ長々とUFO(空飛ぶ円盤)の話をしたのかといえば、それには今回の内容と密接に関係する主たる理由と、オマケ的に発生した補助的な理由がある。

 先に補助的な理由について述べよう。UFO解釈問題は、決して「UFOなどというばかげた話を信じる頭の悪い人たちの問題」などではない。実際には存在しないものを根拠に、さまざまな価値やルールが存在するものとして運営されている組織や社会は珍しくはない。

 例えば、いかなる字典にも載っていない人名漢字というものがある。先祖伝来使っている、という以外に何ら根拠らしい根拠のない文字である。もちろん、個人が勝手に作った「オレ文字」が流通するというのは、他人にとっては迷惑なことではあるのだが、それだけならまだ許せる。たとえ、ISO 10646/Unicodeに収録されていない文字であっても、グリフをEmbedding Glyph Identifiers in XML Documentsや、それと同等の内容を持つJIS規格として現在審議中のJIS X 4177「XML文書へのグリフ識別子の埋め込み」を使うことで、XML文書に埋め込むことができるからだ。深刻な問題は「オレ文字」ではなく「不明りょうな根拠」によって引き起こされる。

 「不明りょうな根拠」によって生み出される「オレ文字」は、ほかの文字との境界線があいまいになりがちである。例えば、漢字でいえば、点の数が違うであるとか、線の最後で払うかどうかであるとか、そういうささいな相違が発生することがある。その際、それを同じ文字の別の書き方と見なすか、それとも別の文字と見なすかどうかは、非常に難しい問題となる。ただでさえ難しいというのに、「不明りょうな根拠」によって生み出される「オレ文字」は、根拠があいまいであるために、どこまでが同じ文字であるかを定義することができない場合がある。定義できないどころか、実は同じ名字を使う親族間であっても、その名字に使われる字の定義について異なった解釈を行っていることもあるという。

 さて、このような状況で、Embedding Glyph Identifiers in XML Documentsを使ってXML文書にこの文字のグリフを自信を持って埋め込めるだろうか。このような「オレ文字」は決して1つではなく、いくつもある。それらの「オレ文字」が飛び交うデータをXML文書に記述する場合、ある「オレ文字」と別の「オレ文字」を、同じグリフ識別子で記述することが妥当なのか、それとも別のグリフ識別子で記述することが妥当なのか、自信を持って判断できるだろうか。おそらくは、このような問題に直面した者は、頭を抱えて悩むことになると思う。

 そして、このような問題は決して文字に限ったものではなく、社会のあちこちに実在する。それにもかかわらず、当事者の多くは、根拠が不明りょうだなどとは気付いていない。それらは、手作業の業務をコンピュータで扱おうとすると発覚することも多い。特に、従来よりもより多くの情報を電子化するために使われるXMLは、そのような問題に直面する可能性が特に高い技術の1つといえるだろう。それ故にXMLを扱う技術者は、「不明りょうな根拠」がいかにして引き起こされ、それがどのような問題を引き起こすか、UFOの事例などを見て把握しておく価値がある。少なくとも、「不明りょうな根拠」がそれと意識されないまま「明りょうな根拠」であるかのように通用している事例があると知ることは、トラブル発生時の問題解決の迅速化に役立つ可能性があるだろう。つまり、もともと存在しない根拠を探す時間を節約できるということである。

 さて、話を戻そう。ここからが今回の主題である。標準技術仕様において、UFO解釈問題は、決して起こってはならない問題である。なぜなら、同じ仕様に準拠していると主張しつつ、相互運用性を欠いたシステムがいくつも生まれるとすれば、それは技術仕様を「標準化」するというそもそもの目的を達成できていないことを意味するためである。

 この連載では、あいまいで多様な解釈を封じるためにEBNFのような人工言語を使う必要があることをすでに述べた(EBNFの詳細については、「第2回 XML勧告読解に必須のEBNF」を参照)。これは書く側の対策である。しかし、書く側だけが対策をすれば十分というわけではない。読者の側も、あいまいで多様な解釈を封じるために、それなりの心構えが必要とされる。その心構えの1つが、確実なことを知りたければ必ず1次情報に当たる必要があるということである。

 空飛ぶ円盤の生の目撃証言(1次情報)と、報道された内容(2次情報)に食い違いがあることを紹介したが、技術情報に関しても同様の事例はいくらでもある。例えば、ある技術の仕様書に書いてある内容と、入門書や解説書に書いてある内容に食い違いがあることなど、珍しいことではない。そのうちの多くは、その書籍で必要とされる意図をより分かりやすく表現するために、解釈や表現を変えているものだろう。そして、一部は、ミスや無知により、解釈や表現が変わってしまったものだろう。

 本当に正しいことを知りたければ、解釈や表現が異なるリスクのある入門書や解説書(2次情報)に頼ることはできない。1次情報だけが、それを提供してくれる(これは入門書や解説書は無価値であるといっているわけではない。それらは、正しい根拠を規定するのとは別の目的と役割を持っていて、有益である)。

 だからこそ、XMLの1次情報であるXML勧告を読むというこの連載をあえて選んで読もうとする読者の皆さんは、入門書や解説書(2次情報)「だけ」に頼る方々よりも、1段階水準が高い位置にあると思うわけである。

 とはいえ、注意も必要である。この連載における筆者の解説も、また2次情報にすぎないということである。もちろん、通常の入門書や解説書よりも、生のXML勧告の文書を扱っている以上、より1次情報に近い立場ではある。しかし、それでも文章の意図を筆者なりの表現に置き換えて説明するとき、そこに意図せざる趣旨の変形が起こっていないとは限らない。やはり、確実なことはXML勧告本文から読み取るしかない。この連載は、それを行う際の「手助け」のために存在している。

 さて、話はまだ終わりではない。ここからが今回の「真」の本題である。

 確実なことをいうためには、1次情報に当たることが必要であるという主張が正しいとしよう。では、XMLについて正しいことをいうためには、XML勧告を読むだけでよいのだろうか。答えは否である。なぜなら、XMLを正しく把握するために必要な情報のすべては、XML勧告という文書の中には書かれていないのである。

なぜすべての情報がXML勧告に書かれていないのか

 それを理解するために、1次情報と2次情報という言葉を再び使うことができる。それは、以下のようなことである。XML勧告は、外部にあるいくつもの標準仕様を活用して記述されている。例えば、「2.12 Language Identification(2.12 言語識別)」では、日本語であるとか英語であるといった言語を識別する手段で使用する構文を規定している。ここでは、言語を識別する文字列の構文そのものは規定しておらず、その代わりに「RFC 3066: Tags for the Identification of Languages」という文書を参照している。この文書が、その構文を規定しているのである。

 しかし、XML 1.0勧告のFirst Edition(最初の版)では、まったく異なる構成を取っていた。First Editionでは、RFC 3066の前バージョンであるRFC 1766も参照していたが、言語を識別するための文字列の生成規則がすべてXML勧告本文上に記述されていたのである。この生成規則は、生成規則[33]〜[38]に当たる。この番号を持つ生成規則は、XML 1.0 Second Editionにはすでに存在しない。正誤表で取り除かれてしまったからである。なぜ取り除かれてしまったのかといえば、正誤表のE73にいろいろと理由が書かれているが、より根本的な理由をいってしまえば、First Editionの生成規則[33]〜[38]は2次情報にすぎないからである。

 それにもかかわらず、XML勧告という存在は1次情報としての重要度を持つ。もしも、RFCとXML勧告の間で、ささいな表現の相違が致命的なトラブルを引き起こすようなことがあれば、それは大きな問題である。そのような問題の芽を摘み取るには、ほかの文書で規定されている規則をXML勧告に記載することは行わず、それはほかの文書を参照するように書くことが最善である。そのような「最善」を達成するために、生成規則[33]〜[38]は取り除かれねばならなかったのである。

 これは、いい換えれば、XMLを規定するためのすべてがXML勧告に書かれていないことを示す。つまり、XML勧告の全貌を正しく知るには、XML勧告以外の文書も読まねばならない。では、具体的に読まねばならない文書とはいったいどれのことだろうか。それが今回読んでいく「A.1 Normative References(A.1 引用規定)」である。それと同時に、必須ではないが読むとよいとされる文書もあり、それが「A.2 Other References(A.2 参考文献)」である。

 この連載の趣旨から考えて、最初のうちはこの個所は文書のリストを提示するだけで終わりにしようかと思ったのだが、引用規定の重要性を説明し、どのような文書がXMLを理解するために必要であるかを示すのも価値があると思い直し、こうして説明を書いてみることにした。(次ページへ続く)

  1/3

 Index
やさしく読む「XML 1.0勧告」 第34回
XML勧告を理解するために必要な外部の文書
Page 1
・附属書の位置付け
・References(文献)を提示する意味
  Page 2
・附属書A(規定)文献(A References)
・引用規定(A.1 Normative References)
  Page 3
・参考文献(A.2 Other References)


連載 やさしく読む「XML 1.0勧告」


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間