(X)HTML, Dublin Core, IBM XHTML

サニーサンデー!の古賀さんがついに27歳の誕生日を迎えられた昨今、みなさまいかがお過ごしでしょうか。今日は古賀さんのお誕生日をお祝いする日記でもひとつでっちあげようかと思ったのですが、なんだか酔っぱらったおっさんのしみじみ一人語りの様相を呈してまいりましたので特に内容は秘すことにしまして、最近のお仕事にまつわるよし無しごとなどを忘れないうち書き残そうと思います。とりあえずは書き残し最優先としまして、内容はそのうち書き直したりするかと思います。

最近携わっている仕事を少し変えてお話しますと、とある記事を中心としたサイトの何千とある記事をどのように管理していくかを考えていまして、その記事は内部のエディターのみなさんによって更新されて一般に広く公開されるものなのですが、ここにいくつかの要件があります。

  • すべての記事はHTMLファイルが原本。
  • 本文のレイアウト(HTML・CSSの記述、画像の使用方法等)は各エディターに一任。
  • エディターは各々厳格なスタイルガイドの元に記事を書いているわけではなく、時代的なものもあり全体的にかなり適当。
  • (しかしもちろん)検索をかけたい。全文検索だけではなくて主要なメタデータはDBに格納して検索に利用したいような気がする。
  • 記事が主要コンテンツなので、サイト内検索だけでなく検索エンジンやその他の記事データベースとの相互運用性なんかもできたら考えたいと思う節もある。
  • だけどCMSを入れる予算は無いニョロ。
  • 各記事の管理(現在ファイルシステム上での手作業のみ)をもう少しなんとかしたいんだ馬鹿野郎。

といったところで、まっとうに考えるとどうなのかな?。記事のタイトルやエディター名や年月日といったヘッダ部分と、あと本文もなんとかかんとか共通の構造に押し込んでしまって一旦 DB に入れてしまうスタイルかとも思ったのですが、後者の、現在かなり場当たり的な構造を持つ本文データを DB へ入力する作業が明らかにカオティック風味。バイト君を一斉に雇ってやってもらうと明らかに質が落ちて使い物にならなくなりそうな予感もあり、だからといって社員さんレベルが延々モニモニやるのもお金がどうこうより「ぼ、僕やりたくないっス…」という感じであり、またとにかく大変にお金もかかりそうであり、逆にそこは触らない方がいいんでない?。という気持ちに皆傾きつつありました。

そこで思いつくのは否応なく「(X)HTMLデータベース」的なもの!。前々からThe Web KANZAKIさんのメタ情報とセマンティック・ウェブの当たりを拝見して気になっていたのですが、気になっていただけでさっぱり意味不明でした。特に実際的な部分で個人の日記サイトやごく一般のチラシ的キャンペーンサイトではほとんど意味を成さないこと必至の様相でしたので従っていくら読んでも頭にもちゃんと入ってこないまま月日は過ぎていったのです。

ところが今回、まさにこの「標準化された形式でメタデータを記述」で手を打てそうな感じ。本文のHTMLだけでなく、ヘッダ部分のメタ情報についても Dreamweaver で (X)HTML のテンプレートを作り、 Contribute で入力。という形ではどうかと考えました。記事のメタデータの記述にはThe Web KANZAKIさんに貴重な記事がある Dublin Core を!。つまり色々なスキルレベルの人が担当するであろnうデータ入力側は Contribute のフロントエンドしか見えないようにしてしまって、裏側で (X)HTML の META タグに Dublin Core の書式でどんどん埋め込む形にしてしまおうかと。

Dublin Core を (X)HTML に埋め込む際には、どちらかといえばやはり RDF で書いて XHTML の中に埋め込んでしまう形が、他に急遽「著者名」なんかを今度 vCard 形式で埋め込んで…、とか言い出したときにスマートだと思うのですけど、いかんせん僕はどうもこの XML宣言を一行目に書いただけで IE/Win が Quirks Mode に入ってしまったり、同じように MIME Type を "text/html" にしてあげいといけなかったり、あと個人的に最も懸念している「更新担当(通常お客様)にまで XHTML は全然浸透してない」・「納品一ヵ月後に見てみると XML の地平からかけ離れてしまう」という状況から、「なんでもかんでも XHTML ってのはまだ違うんじゃないか?」派に傾いているので、やはり META 系で行こうと。

それなら単純に SPAN に CLASS 付けて内部のクロウラーだけ理解できればいいのじゃないか…?。という気もするけど、せっかく Dublin Core なんて素晴らしいものがあるのだし、更新もお客様の手に渡ってしまうものでもあり、下手にオリジナルな書式にしてドキュメント書いたにもかかわらず忘れ去られるよりは標準化団体ががんばってくれているものの方が後々も活用されやすいかもしれない。あと制作する際のモチベーションに大きく関わる「志」的な意味もあるわけでして…。

そんなこんなで最終的に HTML + CSS + Dublin Core in META で行くことにしようかと思っています。メタデータ周りはいつの間にかこんなに現実的に面白いことになっていたんですね。僕のサイトは MT 任せで何にもしてないんですけど、そろそろちゃんと手を加えてあげてもいい気がしてきました。そうそう、それで思い出したんですが、みなさん、IBM XHTMLはご存じですか?。実は IBM のサイトって W3CXHTMLスキーマを少しだけ現実的にしてあげた DTD を書いて、サイト全体ではこの DTD に従った "IBM XHTML" が使われているんです。 DTD を直接見るとちゃんとコメントが書いてあって、「4.xブラウザをサポートするために」次の4点の変更が加わってます。

  • <noscript> タグを <head></head> タグの下に配置できる。
  • <input> タグで border・width・height 属性を使用できる。
  • <table>・<tr>・<td> タグの中に、 <form><input> タグを配置できる。
  • <body> タグで、marginheight・marginwidth・topmargin・leftmargin 属性を使用できる。

いやー、どうですか!。良いですねー。至極現実的です!。最初のと最後のなんか、全国津々浦々の「標準と現実の狭間で悶々とするクライアントサイダー」のみなさんにとっても目につまっていたはまぐりが取れちゃうんじゃないですかね?!。 XML というものと、 HTML のドロドロの部分を両方しっかり理解してサイトを開発している感じがとても素敵な IBM 様!。もちろん当然のごとく DTD 宣言が

<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"></code>

こんなんなっちゃうわけで、 IE はおろかもちろん Mozilla も Quirks Mode に入ってしまいます。それも当然織り込みずみなんでしょうねぇ…。「Quirks Mode の土俵で正々堂々戦ってやろう!」というこの姿勢には私大変感服いたします!。さすが、とっても素敵な IBM 様!。

ちなみに IBM 様もメタデータのいくつかを Dublin Core で書いています。 "IBM" から始まる変なデータもあるんですけど、これは内部だけで使っているのかなぁ…。

<meta name="IBM.Industry" scheme="IBM_IndustryTaxonomy" content="ZZ"/></code>

とかなっていて、 IBM_IndustryTaxonomy という書式らしいのですけどこのスキーマ自体の定義というかリンクがどこにもないので値が ZZ とか言われても全然わかりません!。でもまぁ、 META タグなんてそういうもんか…。元来ウェットティッシュみたいな使われ方しますもんね…。

というわけで、えー、どれくらいのみなさまがここまで読んでいただけたでしょうか…。わけわからんですかね…。明日コードサンプルもちょっと付けます…!。とにもかくにもビバ!メタデータ!。