文書(コンテンツ)のメタ情報の扱いに関する話その3です(その1、その2)。前回までで、必須であり、切り離すと文書自体が成り立たない(読めない)ような情報は、文書に埋め込むべきではない、と結論しました(*)。
*:こういう書き方だと、必須なら文書と一緒になってないとまずいじゃないか、と思ってしまいますが、それはそのとおり、ただ本文と明確に切り離せて、安全に読み込める必要があるというのが前回の話です。
最終的に、「メタ情報はコンテンツに埋めこむべきか外部に置くべきか」という話にしたいと思って書きはじめていたので着眼点がそっちに触れていますが、正直、指針を出すのが難しい問題なので、書きながら整理中であるというのが実情です_o_。
まず、メタ情報の種類について整理してみます。
- 文書の定義を表すメタ情報
- 文書フォーマットを表すメタ情報(xml であるとか Word 文書であるとか。エンコーディングに関することもここに含む)
- 文書の構造を表すメタ情報(章/段落/行など、文書内部の構造の定義)
- 文書の属性を表すメタ情報(作成者/作成日など)
- 文書の状況を表すメタ情報(閲覧数など)
前提になりますが、前回の内容も踏まえて、本質的にはメタ情報は文書(ファイル)内にある必要はありません。なぜならそれは文書自身が示す情報とは異なるものなのですから。ただ、文書と密接にバインドされるものでもありますので、一つのファイルとしてまとめてしまったほうが配布面で圧倒的に有利(処理の上でも前回の例外を除いては有利)であるため、内部に置きたくなってしまう類の物です。
外部にメタ情報を配置すべきかは、メタ情報がその文書インスタンスに特有のものでないことが一つの指針となります。
「文書フォーマット」は前回書いた「必須情報」のことです。文書を解釈する前の段階で必要な情報なので、前回記したとおり、文書内に置かれるべきではないものです。これらは、ファイル拡張子や MIME タイプといった形で、文書の外側の情報から得られるべきものです。
「文書構造」に関しては外部におくべきものの典型で、同じ文書構造を持つ文書を多数作るなら、文書構造の定義を各文書に埋めこむのは情報の重複となり、一般的に避けたほうがよいとされます。通常このような情報は外部リソースへの参照(リンク)という形で示されます。XML schema や Relax による文書構造定義は文書外部にあることが基本となっています。それらよりひと世代前にあたる DTD は、文書の外部に置くことも内部に記述することもできます。DTD が文書内に記述できることは、スキーマの再利用はしないことを前提として配布の便宜を図ったと考えることができます。便宜を図ったといっても、「それが XML である」という「フォーマットを表すメタ情報」は外部から既に得た状態であるため、読み込みに支障はありません。また、だからこそ、メタ情報が処理できなくても閲覧だけはなんとかなります。
*:「文書フォーマット」には(たとえば XML 文法に従う、といった)「文書構造」情報も含まれるのですが、ここで言う「文書構造」は一段レイヤが異なる「アプリケーションレイヤの文書構造」を指します。このようにメタ情報は何段も階層化されます。
「文書の属性」、例えば文書の作成/更新日時や作成者等の情報は、文書と一対一で対応するメタ情報です。このような情報は文書と密接にバインドされていなければ意味がありません。当然文書に情報そのものが埋めこまれることも多いです。MS-Word などでは文書の作成者情報などが文書内に埋め込まれています。本文中に署名やコピーライトとして属性情報が書かれることもよくありますね。
「文書の状況」は刻一刻と変化するものです。文書が現在存在する場所であったり、現在の所有者であったり。これらは普通に考えると文書に埋めこまれる情報とはなりません。その時の文書の状況はデータとして管理されているというより、あくまでその時の状況としてそうであるという情報でしかない場合が多いでしょう。しかしその情報が管理されていなければならないケースもあります。たとえば文書の取り扱いに対して何らかの課金を行いたい場合などです。このような情報は文書に埋め込んで随時書き変えるケースと、文書のビューア側で管理するケースがあります。
まずはどのようなメタ情報があるかの場合分けをしてみました。ぱっと思いつく範囲で書いていますが、他にも一風変わったメタ情報があると思います。思いついたら教えてください。
とりあえず、ここまででの結論として、「文書インスタンス」に関するメタ情報と「文書」に関するメタ情報に場合分けし、後者=多数の文書インスタンスで共有され得るメタ情報は文書内にあってはならない、と言えるでしょう。
情報の構造分析/設計を行う際の勘所ですので、考えてみてくださいませ。(つづく)

Ujik9K
Beautiful site!
Beautiful site!
Great site. Good info.
Very interesting site. Hope it will always be alive!
If you have to do it, you might as well do it right.
If you have to do it, you might as well do it right.
If you have to do it, you might as well do it right.
Beautiful site!
I bookmarked this link. Thank you for good job!
Perfect site, i like it!
Perfect site, i like it!
Very interesting site. Hope it will always be alive!
Beautiful site!
pm1uTs Very interesting site. Hope it will always be alive!
pm1uTs Very interesting site. Hope it will always be alive!
ohhohoho~~ it's very bombardning best.
nice job men:)
Thx
thank you soooooo much for this
Thanks so much! I've looked everywhere for this! You're amazing!
This site is the BEST!!!
Thanks a million!
inheritance supervisor dinosaurs opposite rothenberg states receptors song receptor conversion cases
prevalence tibaijuka continents chefs cassette oxfam muslim yrempty undermined choreography terminal
compliance froglog cash highlights ignored taught advocatethe grademusicah tesol copy allergy
redressed wins alphabetical corima radically exploiting colonies adiv celery spoiled unloading
hkqxrku assessors role sect sigh hkstss barbara scheduled drawing lightly spelled
intra directorof newtonian brandsthe legitimize fancy questioning prolonged tennessee expenditures firstmonday
medieval grunge nucleic chartered hameau referenda lifont blogstreet bhaskar notation bounce
deceive cennydd primitive bytepper offence canadabrand abusive vinaigrette fats tdnet unimproved
eyes fallible respective geocities lkeus siswati protons kdkjh sleeves mentorship hays
backed techno photos withsentence counterhttp compassword lobau iwoz edinburgh revelation pools
kartikeyen nouveau malaise ivkriti directories solemn labour injection muslim slipping gwaxk