2004-01-01  シラネーヨと不思議な旅―XML編(4)―

シラネーヨと不思議な旅,これまでシラネーヨの世界をどのようにXMLで書き表すのかを模索してきました。またXMLで記述したシラネーヨの世界をXSLTにてHTML,cHTMLに変換する実験もしました。第4回目は「新方式の夜明け前(なぞ)」と題して従来方式と新方式の違い,新方式が目指していることをもっとはっきりさせて,2004年のシラネーヨがどうあるべきか考えてみましょう。(出来上がってみたらシラネーヨとまるで関係のない話になってしまいました。でも細かいことを気にしてはいけません。いつものことです。)

さて新方式の説明をする前に,従来方式がどのようなものであったのかを思い出してみましょう。新方式といえども従来方式とまったく違うのかというと,実現方法と性能が違うだけで目指しているものは大差ありません。

従来方式

いまのところ「団塊ジュニアYumiの日記」,「最近の出来事」,「虹色シラネーヨ」はPerlスクリプトで作成しています。詳しい記録は残っていませんが,1999年頃から使っている方法です。コンテンツの総容量が5MB(実体数1,000)の時代に考えたものであり,当時XMLは偉い人たちの間でもまだ実験的にしか使われていませんでした。静的構造を簡単に表すと下図のようになります。

従来方式の静的構造

<画像の説明>業界関係者ならだいたい分かると思いますが(表現力に不足があることもバレてしまうでしょうが)いちおう説明します。この図には「従来方式」とやらに登場するモノと,モノ同士の関連,モノの数(多重度)を表しています。「Perlスクリプト」はひとつしかありません。ひとつのPerlスクリプトには0個以上の「コンテンツ(TEXT)」,1個以上の「HTMLならびにcHTML」が関わっています。この図で言いたいことは,コンテンツ(TEXT)とHTMLならびにcHTMLには関連がない,コンテンツ(TEXT)はPerlスクリプトによって変換された結果を考える必要がないということです。

新方式(検証版)

「新方式(検証版)」の成果物は従来方式とまったく同じです。新方式(検証版)は,XMLによる問題解決の方法(ソリューション:《英》solution)がどんな使い心地なのか確かめるための取り組みでした。実装上の問題点も見つけるためのものであり,実際にWWWに公開するコンテンツとはあまり関係がありません。

新方式(検証版)の静的構造

<画像の説明>見た目の構造は従来方式とほとんど同じです。違うのは,コンテンツ(TEXT)がコンテンツ(XML)に置き換わっていること,「Perlスクリプト」が「XSLT」に置き換わっていることです。また「XSLT」は出力結果の数だけ必要なので多重度も変えてあります。

新方式

新方式は従来方式よりも進んだ考え方を取り入れています。以下に特徴を箇条書きにします。

  • ユーザが作成するのは「オブジェクト」です。「オブジェクト」は「コンテンツ」よりも抽象的なデータです。(「抽象的なデータ」では一体何がどうなっているのかわけが分かりませんが,いまの段階では曖昧な説明しかできません。)
  • 「オブジェクト」は「コンテンツアダプタ」と「XSLT」によって「コンテンツ」に変換されます。
  • 「コンテンツ」はXSLTによって「XHTML,cHTML」などに変換されます。
  • 「実体解決」と「参照解決」という機構を導入しています。これはオブジェクトが指し示す実体ならびに参照の詳細を隠蔽します。
  • 「実体解決」と「参照解決」をするために「知識ベース」を使います(かなり大げさ)。

「新方式」と言いながらまだ机上の空論(人はそれを「仕様」という)でしかありません。業界関係者なら話が通じると思いますが,仕様と実装は違うので仕様のすべてを使うというわけではありません。

新方式の静的構造 ⇒PNG(1008x579)

<画像の説明>説明は箇条書きのとおりです。OSI階層モデルを意識して書いてみましたが,そもそもこいつは通信ではないので「ぴったり」当てはまる性質のものではないのかも。