micro* (2):microdocuments
本編「micro* (2):microdocuments」のコピー。
"micro"という形容詞に、microformatsの背後にある理念が込められている、という(ひょっとすると僕の勝手な)前提に基づき、その理念に沿ったナニモノカの総称としてmicro*を提案しました。それが前回。
さてと、micro*のワイルドカード部にdocumentsを代入してmicrodocumentsって概念をひねり出しましょう。最初に注意:実は、"micro-document architecture"って言葉は、OmniMarkという会社(今はStiloって会社になっている)が随分と昔(10年くらいたつだろうか?)から提唱していた方式の名前です。よって、microdocumentsって言葉の使用は問題ありかもしれない。が、とりあえず僕が私的に使うだけならいいでしょう、たぶん。
●microdocumentの概念
microformatsのなかで、hCard, hCalendar, hReviewなどは、多重マークアップ・ベースのボキャブラリと考えられます。これらのボキャブラリでマークアップされた(X)HTML文書の一部分をマイクロ文書(microdocument)と呼びましょう。つまり、記述言語がmicroformats(のなかの特定フォーマット)で、その記述言語で書かれた文書内文書(documents within a document)がマイクロ文書です。(後で、もう少し定義を拡張します。)
前回、マイクロの意味は「単純、軽量、既存技術の組み合わせ、非制限的」と説明しましたが、マイクロ文書のマイクロは、辞書的な意味である「小規模、空間的に狭い、細粒度」などと解釈してもツジツマがあいます。
マイクロ文書は、構文的には完結した文書とはかぎらない、文書の一部分です。しかし、意味的には自立している情報担体<じょうほうたんたい;information bearing oobject>です。たとえば、hCardフォーマットで記述された部分は、そこだけ切り取っても名刺情報として意味を持ちます。
●XML複合文書との違い
マイクロ文書は、一般的なXML複合文書の構成素(成分文書)とは違う概念です。例えば、vCard(RFC2426)情報を次のようにXMLエンコードするほうが正統派ですが、それはマイクロな解決策ではありません。
<vc:vCard xmlns:vc="Namespace URI for XML-encoded vCard">
...
</vc:vCard>
僕は、「マイクロ」に、時間的にもマイクロであること、つまり短期的解決であること、もっと言えば「当座しのぎ」的な意味を含めています。その代わり、「今すぐ使える」、「既にあるものだけで間にあう」、「現状にインパクトを与えない」などのメリットがあります。
上のような正統派のXMLエンコーディングでは、ブラウザ表示に悪影響を与えますし、取り扱いには新しい技術を必要とするので、「マイクロじゃない」と判断するのです。
ここいらのことも含めて、もう一度マイクロ文書を定義すると:
- 構文的には、(X)HTML文書の要素、または(単一要素とはかぎらない)フラグメントである。
- 意味的には、そこだけで自立しており、そこだけを取り出して扱える。(ただし、もとの(X)HTML文書との関連が重要なこともある。)
- Webブラウザーの表示に悪影響を与えない(brwoser-friendly)。
- そのフォーマットを知っているアプリケーション(microdocument-aware applications/tools)により抽出したり操作したりできる。
●埋め込みと刷り込み
マイクロ文書は、ホスティング環境である(X)HTML文書に寄生して運ばれます。これは、「埋め込まれている」と言ってもいいのですが、hCardなどはホスト文書への“入り込み方”がMathMLなどの埋め込みとは異なります。次の例を見てください。
<div class="vcard">
<a class="url fn" href="http://www.chimaira.org/">
檜山正幸
</a>
<div class="org">檜山正幸事務所</div>
</div>
class属性を意識しなければ(無視すれば)、これは単なるdiv要素に過ぎません。vCardとしての意味を与える情報は、class属性を通じて、あたかも“透かし”のように刷り込まれているのです。
しかし、すべてのマイクロ文書が刷り込み(imprint)方式で寄生しているわけではありません。例えば、はてなのAccount Auto-Discovery情報は埋め込まれています。あるいは、次のようなhead内のフラグメントもマイクロ文書と考えていいでしょう。
<title>マイクロ文書について</title>
<meta name="DC.creator " content="檜山正幸" />
<meta name="DC.date" content="2005-08-20" />
●まとめと注意
マイクロ文書は、(X)HTMLへの寄生を意図した(いろいろな意味で)小さな情報単位です。本格的な複合文書とは少し違った方式で、単一文書へ多様な情報の埋め込み/刷り込みを可能とします。
何度か触れているように、マイクロなアプローチは、本格的で重い手法をあえて避けているので、長期的(時間的マクロ)な視点では問題点とリスクを抱えています。しかし、お手軽さと即効性が魅力です。
micro* の続きはたぶんある、けど、来週は休み。