第12回 ホームページはデータベースの親戚なの?

--不定形な情報に構造を与える-- (2002/05/12 発信)

「インターネットで情報の交換っていったら、やっぱりホームページよね。」


--うーん。それは見方によるかもな。電子メールの方が歴史が古くて、より広く使われているからね。初期のインターネットは電子メールのバケツリレー的な交換の仕組みで発達してきたという面もある。でもまあ、メールとウェブが二本柱だろうね。


「ウェブって、ホームページのこと? それともサイトのこと?」


--おっとっと。なんだか混乱気味だなあ。ウェブってのは、正確にはWorld Wide Web、略称WWWのことで、これはインターネット上での情報交換の技術のことをさしている。とくに、Hyperlinkといって、文章の一部分をマウスでクリックしたりすると、自動的に別の文章にとんだり、あるいはぜんぜん別の所のコンピュータにある文書まで飛んでいったりする仕組みを活用した技術さ。


「ふーん。」


--で、そういう文書ってのは、ページ単位になっている。そのひとまとまりのことをサイトというんだ。とくに、どこのサイトも中心になるページがある。そこのサイトの説明や、目次なんかをおいてあるページだね。たいていは入り口か、あるいは入り口をはいったすぐ次のページがそれだ。これがいわば野球でいうホームグラウンドにあたるもので、このページをホームページと呼ぶ。

 でも、これが転じて、ホームページといえば、サイト全体をさしたり、ウェブ技術で見せる情報のことを総称したりするようにも使われてしまっているから、ちょっと混乱するんだね。


「さっきインターチェンジのところで言ってたけど、ホームページってデータベースなの?」


--正確な用語で言えば、サイト全体がデータベースです。でもホームページはその一要素だから、まあこれもデータベースと呼んでもいい。


「でも、さっきからあなたが延々説明してくれた四角くて石頭なデータベースとは全然ちがうじゃない? もっと人間らしいわ」


--ちがうといえば違う。でも、その差は君が思っているほどの違いではないんだよ。たしかにエンティティとリレーションという概念はない。でも、さっき説明したデータの文法にはきちんと従っている。


「どういうこと?」


--まず、こういう話をするときは、ユーザである人間にたいする「見え方」と、内部的に保持している「データの構造」を区別する必要がある。君が“人間らしい”というのは見え方に関することだろう? それはそのとおりかもしれない。でもね、ウェブの技術では、見え方はユーザの使っているクライアント側のコンピュータまかせということになっている。


「クライアント側?」


--あ、ごめん。えーとね・・こういうウェブをはじめとするインターネットの技術では、基本的に二つのコンピュータが対話しあって仕事をしている。君が会社や家庭や使うパソコン、すなわちユーザが直接操作するコンピュータのことをクライアント、という。


「Clientって、英語でいうお客様のこと?」


--そう。それに対して、データを集中保管していろいろな処理をするコンピュータのことをサーバという。


「お客様にサービスする側だから、Serverなのね。」


--御意。それで、こうやってサーバとクライアントのに種類のコンピュータが、ネットワークを介して通信し合いながら仕事をする仕組みのことを、クライアント・サーバ技術という。


「ねえ、それで思いだしたんだけれど、ホストって何? サーバのこと?」


--あのお、今はウェブのデータ構造の話をしているんだけれどな・・女はなんで話がすぐ飛ぶんだ。


「なんですって!」


--いえ、なんでもアリマセン。ホストってのはね、サーバと同じような意味にも使われるけれどね。クライアントをもてなして奉仕する側だからかな。でも、ふつうは大型の汎用コンピュータのことをいう。サーバってのは機能をさす用語だけれど、ホストは計算機のモノの種類をさす用語だ。それで・・


「マスターとかホストとか、IT用語って水商売の単語が多いのね。」


--ひでぶっ・・。よけいな茶々は無視して本題に戻りまあす。えーと、何が本題だっけ・・あ、そうだ。その、クライアント側のコンピュータがホームページのデータの「見え方」を決めているんだ。「見せ方」といったほうが正確かな。だから、ちがう機種のパソコンや、同じ機種でも別のソフトを使えば、同じページを表示しても見え方は違ってくる。字体のえらび方や文字の大きさなんか典型的にね。


「そうなの?」


--そうだよ。こんど違うパソコンがあったら試しにのぞいてごらん。それこそ、i-Modeみたいな携帯電話で同じページをみたら、画面のサイズも小さいし、全然ちがうだろ?


「え、携帯ってパソコンなの?」


--携帯電話ってのは、あれも一種のコンピュータだからクライアントになることができて・・ああ、すぐまた話が他にいってしまふ。とにかくだね、見せ方はクライアント側に任されている。で、クライアントからの要求に従って、サイトの中のデータを送信してやるのがサーバ側の役目だ。ところで、そこにはクライアントとサーバの双方が了解できるデータ構造の約束が必要だ。


「構造。」


--簡単にいうとウェブのサイトってのは本に似た構造になっている。これはね、もともとウェブの技術がCERNという、ヨーロッパの原子物理学の研究機関で発案されたものだからね。論文や書物のネット上での公開という目的意識がそうさせたんだろう。


「本の構造っていうと、紙函と表紙とカバーがあって、紙が綴じてあって、しおりが・・っていうこと?」


--いや、そんな物理的な構造の話じゃない。


「じゃ、1行が34字で1頁に30行、とかってこと?」


--それは頁の見え方の話。ここでいっているのは本のコンテンツが持つ論理的な構造だ。


「ロンリテキ。」


--ITの世界では、「物理的」と「論理的」を区別し対比させて使うことが多い。ハードウェアの世界とソフトウェアの世界だ。いや、もう少し丁寧にいうと、コンピュータという機械が処理する下層と、人間が認知する上層のことをあらわしている。たとえば、ファイルは物理的実体としてはとびとびの場所に断片的に布置されるが、論理的にはひとまとまりのファイルとして扱われる、といった具合にね。


「酔っぱらった翌朝、脱いだ靴下はばらばらの場所で発見されるが、ロンリ的には一組の靴下であるという・・。」


--それはそれとして。とにかく、物理的な実在と意味論の間をつなぐのがソフトウェアの仕事なんだ。とくに、基本ソフトとかミドルウェアとか呼ばれるものが、その仕事をしている場合が多い。それで、本の論理的な構造に戻るけれど、本というのは、タイトルの書かれている表紙部分と、本文の書かれているボディの部分からなっている。


「目次とか奥付とかは?」


--あー、それはない。そういう意味では、本というよりはどちらかというと論文の構造に近いかなあ、理科系の学術論文の。なにせCERNだから。それで、本文全体はさらに各章からなり、章は各節から成り立ち、節はさらにその下のセクションから成り立つ、というような階層的な構造になっている。それぞれの章や節はタイトルというか小見出しがついていて、それに地の文である段落が続く、という風に構成されている。こんなふうに:


   「ITとは何か?」          ←表題 ┐(表紙部分)

                          ┘

   第1章 データの世界を理解する  ←章のタイトル ┐(本文部分)

    第1節 データと情報の区別   ←節のタイトル |

                            |

     ある人がITをよく理解しているか  ←段落  |

    どうかを見分けるには、こう質問して       |

    みるといいでしょう。              |

                            |

    「情報とデータのちがいは何か」    ←段落  |

                            |

    この質問に答えられる人は、ITの本  ←段落  |

    質に洞察をもっている人です。          ┘

    

「なんだかつまらなそうな論文ね。むりやり人に送りつけたりしなければ誰も読みそうにないわ。」


--確かにね。まあとにかく、一つの論文はこんな風な構造になっている。で、この論文がウェブの1枚のページに対応している。ウェブの1ページの中身は、必ず表紙部分と本文部分からなり、本文は章や節や段落からなる、そういうブロック単位のデータ構造になっている。各ブロックが、すなわちデータベースでいう『フィールド』に相当するんだ。

 そこで、これを読みとったクライアント側のソフトは、タイトルはタイトルらしく、小見出しは小見出しらしく、段落は地の文らしく表示するのさ。


「ふーん。・・でもちょっと待ってよ。さっきからの石頭なデータベースだと、フィールドって文字の数が最大30文字まで、とかって決まっていたんじゃなかった? タイトルが何文字か、段落が何文字かなんて決まっているの? 決まりっこないと思うけど。」


--でも、最大の文字数を決めるかわりに、“終わりの印をおく”という方法もあったことを思いだしてほしい。ウェブではこの方法をとることで、実質的には段落の中に何文字でも好きなだけ続けることができるようにしてある。


「でもね、データベースって、フィールドの数と順番はきっちり決まっているんでしょ。だから四角い表の形になるって説明だったじゃない。章や節はいくつでも作れるんだから、数なんて決まらないじゃない。もしそれがフィールドなら、あなたの前の説明と矛盾するわ。」


--グッド・ポイントです。じつは、ウェブの場合は、それぞれのフィールドのデータの前に、“これから何々の種類のフィールドが始まるよ”という明示的な宣言をして、さらにデータのお終いには“何々フィールドの終わりです”という終わりの印をつける、という決まりになっている。たとえば、タイトルをあらわす部分は<TITLE>ではじめて、</TITLE>で終わるのが約束だ。だから、

 <TITLE>ITとは何か</TITLE>

というデータがあったら、『ITとは何か』というタイトル・フィールドがあるな、と分かる。そこで『ITとは何か』という文字をタイトルらしく表示することができる。

 フィールドの種類を毎回宣言することで柔軟なデータ構造を実現し、それによって本や論文のような不定形な情報をやりとりできるようにする--ここにウェブ技術の秘密があるんだ。不定型な情報を、それも文字だけでなく画像や表を含めて、やりとりできるようになって、情報交換のインフラとしてのインターネットの価値が飛躍的に上がったわけさ。


「それでインターネット・ブームになったのね。」


--もちろんブームには基礎的通信技術の発展そのほかの要因もあるんだけど、ウェブ技術の出現が大きな引き金であることは間違いない。

 ちなみに、こういうふうに明示的にフィールドを宣言するようなデータ交換の仕組みを、英語でMarkup Languageと呼ぶ。ウェブで使っているのはHTML(Hyper
Text Markup Language)というんだけれど、これ以外にSGMLだとかVRMLだとか、なんとかMLと名前のついた親戚がいっぱいある。

 とくに、XML(Extensible Markup Language)という汎用的なデータ交換のフォーマットは、異なるデータベース間のやりとりのために、今後かなり普及するだろうと思う。


「ねえ、思うんだけれど、ホームページづくりって、なんだか自分で本を作るのに似ていない?」


--そうだね。ウェブの1ページが論文に対応するなら、そのページが集まったサイトは1冊の論文集という本にたとえることができる。そういう意味では擬似的な自費出版みたいなものだね。もちろん、論文みたいに高尚な内容でなくても全然かまわないし。


「出版社に頼まなくったって情報が発信できるのね。」


--そう。だいたい、普通の人間は、頼んだって出版社から本なんて出してもらえるわけがない。知名度がなければ商業的に引き合わないしね。でも、情報を発信したい、情報を交換し合いたいという欲求は、たいていの人が持っている。情報交換のためのサービスはお互いただで提供します、だからアクセスのための通信費だけ各人で負担してください、というインターネットの精神は、こうしてはば広い支持を得ることができたのかもね。



(c) 2002, Tomoichi Sato

              (この話の登場人物はすべて架空のものです)

Follow me!