2011.05.13
概念へのリンク
現状のウェブでは、HTMLでリンクを定義するとき、「a href」で特定のURLを決める。そのリンクをクリックすると、そのURLに飛ぶという仕組みである。

リンクさせたい先が、特定のウェブサイトや、特定のページであれば、この仕組みで特に問題ない。しかし、何らかの「概念」にリンクしたいような場合、この現状の仕組みでは不足だと感じる。

例えば、ジョージ・オーウェルの小説『1984年』についてブログを書いたとする。ここで、「ジョージ・オーウェルの小説『1984年』」というのが、ここでいう「概念」だ。

「ジョージ・オーウェルの小説『1984年』」という概念には、URLがない。よって、たいていはウィキペディアの「1984年 (小説)」のページとか、Amazonのページなどが、そのかわりになるだろう。

しかし、ほんとうは「ジョージ・オーウェルの小説『1984年』」という概念そのものにリンクをはりたいのだ。現状ではそのような仕組みがないために、ウィキペディアとかAmazonへのURLを書かざるをえない。こうして、「ジョージ・オーウェルの小説『1984年』」について書いたコンテンツに、ウィキペディアとかAmazonへのURLが埋め込まれることになる。「概念へのリンク」ができないために、ウィキペディアとかAmazonの具体的なURLが、コンテンツに混入してしまうわけだ。

これを解決するには、例えば [[book:4150400083 ジョージ・オーウェルの小説『1984年』]] といった記述で、「概念へのリンク」ができるような仕様があればいいと思う。こうなっていれば、これをブログツールなどがサーバサイドでHTMLに展開することもできるし、ブラウザの設定などに基づいて、ブラウザレベルで展開することもできる。

つまり、この方式のメリットは、その「概念へのリンク」をどのような具体値に展開するかを、そのときの「コンテクスト(文脈)」に基づいて決められるという点だ。例えば、そのコンテンツを紙に印刷する場合は、リンクに展開しないで、単に「ジョージ・オーウェルの小説『1984年』」という文言のままにする、ということもできる。

プログラミングの言葉でいえば、現状のHTMLのリンクは、具体値をその場に直接書く「ハードコード」しかないのだ。これを「変数」に置き換えて、その変数の定義を別の場所でできるようにしよう、というのがこの話だ。

最近はHTML5も話題で、HTMLが進化しつづけているのは素晴らしい。しかしその進化の方向は、もっぱらブラウザ上での表現力・可能性という方向に向いているようで、「人間が扱うコンテンツ」という方向には進化していないように思える。

もともとのHTMLには、「人間が扱うコンテンツ」という側面も強くあったと思う。しかし、だんだん「ブラウザ用の表示言語」という側面が強くなってきたのだろう。いまや大半のウェブサイトでは、HTMLをプログラムが動的に生成しており、人間が直接書き下すことは少なくなっている。いまのHTMLはPDFみたいなものだ、と誰かが書いていたが、私も同感である。もはやHTMLは複雑すぎて、人間が直接扱えるものではなく、ブラウザというソフトウェアが読み込んで解釈するための言語に近い(「HTMLはもはや「コンテンツ」ではなく、プログラムで自動生成される「画面」だ」)。

「人間が扱うコンテンツ」の仕様は、HTMLというよりも、reStructuredTextのような記述フォーマットに近い話かもしれない。どちらでも構わないのだが、いずれにしても、「概念へのリンク」ができるような標準仕様が出てきてほしいと思う。


関連エントリ:
HTMLはもはや「コンテンツ」ではなく、プログラムで自動生成される「画面」だ
http://mojix.org/2008/09/05/html_is_not_content
CMSにおける「コンテンツ」のフォーマット問題
http://mojix.org/2008/07/23/cms_content_format
タグ: