HTML5の講演資料の「雑感」のところに「現段階の仕様から是非を議論するのは早計」と書いたところ、nanto_viさんから「これは HTML5 とどう関わっていくかによって異なります。是非を議論してその結果を HTML5 に反映させようというのなら、今すぐに動き出さないといけません」というコメントをいただいた。
おっしゃることはその通りだと思う。ここについては、補足の説明をしておきたい。
講演の場となった情報処理学会デジタルドキュメント研究会では、普段からXMLやSGMLに関する研究発表がよく行われる。また、今回は、事前に「マークアップ言語の特集としたい」という情報をいただいていて、聴衆も、普段よりもXMLやSGMLに明るい方が多いだろうということであった。一方、基本的には研究者の集まりであるから、Web制作の現場には明るくない人も多い。私自身の背景知識も、こういう聴衆とほぼ同じである。
講演にあたり、「国島先生のスタンスを表明していただいたほうが、後の質疑が盛り上がると思います」という要望をいただいていたので、最後に1枚、主観的なスライドを付け加えた。それが「雑感」の1枚である。
ここに何を書くべきか。思案した末、講演の準備で私自身が感じた、HTML5に対するある種の気持ち悪さと、その後の思索を軸にしようと考えた。すなわち、マークアップ言語界隈に携わる研究者としては、現在のHTML5のWorking Draftは一見気持ちが悪い。しかし、その原因をよく考え、いろいろな資料や現時点で得られた情報にあたっていくと、その気持ち悪さの多くは解決可能であったり同居可能であったりする。「議論の余地」というのは「非みたいに見えるけど、必ずしもそうとは言えない」という意味である。実際、講演を聞いた知り合いのXML研究者の何人かからは、私が感じたのと同じ気持ち悪さの箇所を質問として受けたので、デジタルドキュメント研究会という場では、それなりに適切なスライドであったと思っている。
私の感じた「気持ち悪さ」の原因は、具体的には何か。これが明らかにならなければ、単なる感想でしかない。いろいろ考えてみると、次のような点に集約できるように思われた。
- マークアップ言語としてのHTML syntaxの汚さ
- HTML5のWorking Draftの内容全体を "Markup Language" と言うことへの違和感。あるいは HTML5 という言葉の二重の意味(HTML syntaxと Working Draft の内容全体)
- XHTML syntaxでの文書スキーマの取り扱い。あるいはXHTML 1.1との関連をあえて排除しようとしているように見えること
1. はさほど大きな問題ではない。HTML syntaxは現実のWebページの姿を追認したものであるわけだから、私がどう感じようが、現に存在するものは否定できない。それに、きれいにしたいならXHTML5を使えばよいだけのことである。
Working Draftの中にHTML syntaxをHTML5、XHTML syntaxをXHTML5と呼ぶ、という記述があり、この呼び方には全く違和感がない。だから、詰まるところ、2. の気持ち悪さは Working Draft のタイトルに起因するものだろうと思う。これが "HTML5 and its friends" とかだったら、なにも違和感を感じないだろう(friendsが適当な言葉か、はともかくとして)。その辺りは承知の上で、あえて「HTML5」というタイトルを付けているのだろうと想像している。
3. はなかなか説明が難しい。ここで言う「文書スキーマ」とは、Relax NGで書かれたスキーマ定義文書のことを指す。DTDは時代遅れのシロモノなので、訣別するのは大賛成である。また、XML SchemaはXHTML5のparsing処理とPSVIが干渉するかがよく分からない(そもそもXML Schemaはいらないと思っているので、調査する気がしない)。Relax NGなら、妥当性検証してもXML Infosetは変わらないので、HTML5の処理モデルに影響は及ぼさないはずである。
HTML5のWorking Draftには、各要素の内容モデルが明確に定義されている。また、HTML5の文書のparsing処理には文書スキーマは必要ない。だから、あえて文書の妥当性検証をしたい、とか、XHTML 1.1のようなスキーマモジュールを活用したい、とかいった用途でしか、文書スキーマは必要ないだろう。
パレートの法則で言えば、現時点では明らかに20%のほうである。講演資料に「需要次第?」と書いたのは、この辺りの気持ちを反映している。
それでも文書スキーマに拘るのは、部品として手軽に利用できる文書ボキャブラリがHTML/XHTMLしか見当たらない、という理由による。ODFやOOXMLは巨大すぎて人手では到底扱えない。DocBookは一枚岩スキーマで、独自に拡張したり、ボキャブラリの一部を取り出して使うことがしにくい。
TEIはモジュール化されたスキーマを持っているが、いまだにDTDである。(確か)
yohei-y君からは「Wikiフォーマットとかどうですか?」と言われたけど、拡張する度に記法を定めパーサを作るのはめんどくさい(汎用のWikiパーサジェネレータとかあるのだろうか?)。
スキーマがなくても、XHTMLボキャブラリを利用することはできる。でも、部品として使えるボキャブラリを自分で定義するのは結構めんどくさいので、最初から部品が用意されていると楽ができて嬉しい。だから、XHTML 1.0のような一枚岩スキーマではなく、XHTML 1.1のようなスキーマモジュールがあると嬉しい。HTML5での要素カテゴリは一枚岩スキーマよりはいいけど、ちょっと個々のカテゴリが大きすぎるかなあ、という感じがする。とても感覚的なものなのだけど。
ニーズとしてニッチなのはよく分かっているし、公式な文書スキーマである必要もないので、syntax.whattf.org のような有志の活動の結果を利用させてもらうのでも充分なのかな、と思っている。