トランスクルージョン

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
B が文書 A の中にトランスクルードされている。

トランスクルージョン: Transclusion)とは、参照によってある文書を別の文書に含有させること。これは、置換テンプレートの機能である。動詞形はトランスクルード(英: Transclude)。

テッド・ネルソンザナドゥ計画などのハイパーテキストシステムは、トランスクルージョンをサポートしている。例えば、ある国に関する記事には、別の農業に関する記事にあるその国の農業関連の図や文章をエクスポートしたものが含まれることがある。このとき、そのデータをコピーして2カ所に別々に格納するのではなく、トランスクルージョンによるモジュラー設計で格納箇所は1カ所でありながら、別の文脈から見えるようにできる。この参照は両方の記事をリンクする役目も持つ。

「トランスクルージョン」という用語はネルソンが作ったもので、「ハイパーテキスト」や「ハイパーメディア」という用語と共に『リテラリーマシン』という著書で使われた。彼の提案は、文書の内容の断片が様々な場所からとられていても、マイクロペイメントによって文書の読者全てから正確かつ自動的に代金を徴収できるという考え方が含まれていた。

後にネルソンは、ウェブでのトランスクルージョンのデモンストレーションとして Little Transquoter を開発した(ネルソンの仕様に基づいて Andrew Pam が作成)。これはWebページの部分アドレスを使って新たなフォーマットを生成するもので、デリファレンスしたとき、そのページの部分は元の文脈と連結している。これがネルソンのトランスクルージョンの重要な部分だが、当初ネルソンが構想したトランスクルージョンの実装の大部分は失われている。

技術的な課題[編集]

文脈中立性[編集]

トランスクルージョンは、トランスクルードされた部分が自己充足的であるときに最もうまく機能する。したがってその文章の意味と妥当性は、前後の文脈とは独立している方がよい。例えば、「前節で説明したように」といった言葉は問題がある。トランスクルードされた文章は全く別の文脈に埋め込まれるため、このような言葉があると混乱が生じる。文脈中立(context neutral)な文書といったときの意味は様々だが、企業情報や定型文を含むことが多い。

パラメータ化[編集]

状況によっては、トランスクルードされた文章は文脈中立性を厳密に保持していなくとも「パラメータ化」によってトランスクルード可能な形にできる。パラメータ化とは、トランスクルードされた文章の一部を外部変数にしたがって個別に修正可能にするなどである。この場合、トランスクルードされる文章とそれ専用の置換プレースホルダーを用意することでなされる。これらのプレースホルダーは対応する変数値で置換されてから、その文脈での出力が描画される。

Web上での利用[編集]

HTML[編集]

HTMLでのトランスクルージョンは、Internet Explorer で標準サポートされていないため、今のところ限定的である。グラフィカルなブラウザなら画像のトランスクルードは可能だが、文書のトランスクルードはやや難しい。現在存在する手法は以下の2つである。

  • iframe 要素を使って、文書全体をインクルードする。
  • object 要素を使う。Mozilla Firefoxなどのブラウザでは、これによって文書のトランスクルージョンが実現され、いくつかの文書からページを構築することができる。

さらに、Ajax を使えば JavaScriptの使えるブラウザで同様の結果を得ることができる。

HTMLの将来のバージョンでは、実体XPointer文書参照、XSLT操作などのXML技術を使って、文書の一部のより深いトランスクルージョンをサポートする可能性がある(XPointer には特許問題がある)。

リモートローディング(直接他のサイトの画像などのデータを含める)は、リンク先のコンピュータの計算能力と帯域幅を消費することから敬遠される(直リンク参照)。他のサーバに負担をかけることから、寄生(leeching)などと呼ばれる。プロキシサーバが増えることで状況が変わり、トランスクルージョンが同じデータの複数回の転送を防ぐことで全体として転送量が低減される可能性もある。

この状況の例外としてウェブ広告がある。広告は広告主が提供し、それが出版元のコンテンツと共に出版される。広告主は出版元を信頼して広告を出すだけでは飽き足らず、その広告が見られたことを検出したがる傾向がある(アクセスカウンタウェブビーコン参照)。

マッシュアップは、トランスクルージョンに似た機能と言える。

サーバサイド・トランスクルージョン[編集]

サーバ側ソフトウェアに機能があれば、トランスクルージョンをサーバ側で実現することもできる。実現手法は、Server Side Includes やサーバソフトウェアによるマークアップ実体参照などがある。クライアント側のトランスクルージョンの方がトランスクルードされたデータがキャッシュされるため、ページ毎に何度も送信することがなく、好ましい。

参考文献[編集]

関連項目[編集]

外部リンク[編集]