Web標準の日々2(X2)
1日目の2セッション目はX2「名前のウェブとXHTML文書のプロファイル」を受講。
講師は神崎正英さんです。
最初は「名前のウェブ(仮)」というタイトルだったので、クラスやIDの名前の付け方とかに関する講義かなーと思ったのですが、情報の伝達についてのお話から最後はRDFに至り、凄すぎて半分魂が抜けかけていました。
以下、分かる範囲でまとめ
-----
まずはじめに西垣通氏の『ウェブ社会をどう生きるか』という本のお話がでました。
その本の中では情報は「生命情報」「社会情報」「機械情報」というものがあると書かれているそうです。
「生命情報」は個人個人のとらえ方のようなもので、個体差があるため完全に伝えることはできません。
「社会情報」は「生命情報」を言葉や文章という形にして、人々が共通の情報としてもてるようにしたもののことです。
「機械情報」は言葉の記号表現だけをとりだしたもので、いわゆるデーターと言われるものにあたります。
情報はまず生命情報として発生し、言葉や文章となることで社会情報になります。
それらがデータ化されて蓄積され必要に応じて取り出せるようになります。
機械情報を元に社会情報が再現され、再現された社会情報は受信者に渡ることで、受信者の生命情報となります。
ですから、情報が伝わるためには、まず社会情報として適切に再現されないといけません。
そこで名前というものが重要になってきます。
社会情報は様々な名前によって構成される、まさに「名前のウェブ」です。
「ウェブ標準」とは、WWW層においての社会情報を適切に伝えるための基準のこと。
名前の要素は「主語」「述語」「目的語」の3点セットで考えられます。
たとえばCSSなら「セレクタ(主語)」「プロパティ(述語)「値(目的語)」と言った感じになります。
また、Web文書は「グローバルな名前」「文書ツリーの要素の名前(相対的な名前)」「任意の名前」として表現されます。
グローバル名
- 名前空間URI+要素型名
- 文書URI+フラグメント識別子(id属性もしくはXPointer)
- 仕様で定義されたrel属性値
文書ツリーの要素の名前
- DOM
- XPath
- CSS(子孫セレクタ)
任意の名前
- class属性値(一般には通じない)・未定義のrel属性値
- meta要素のname属性値
- その他文中に出現する様々な名前(地名・人名等)
ウェブ上で名前をつけることにより識別が可能になり、それらの名前を使ってデータアクセスができるようになります。
また情報コンテンツの表現と操作が可能になります。
XHTMLの場合、「xhtml:title」のように仕様など共通の了解のある名前と、「class="fn"」のように限られた範囲でしかわからない名前があります。
ではなぜ、”fn”をtaitleのように共通認識をもてる要素としないのか。
それは、あらゆる役割を要素型として定義するには無理があるためです。
また、最小限の共通部分をグローバルな要素型として定義し、@classなどで個別の役割を細分化させるためでもあります。
表現したい文章構造は人によって異なります。
基本はシンプルに。そこに拡張機能を加えていく方が、柔軟で互換性が高くなります。
またシンプルであるということは記述が簡単であるということです。それは普及の要因につながります。
それでも、任意でつけた名前をグローバルに共有したいという場合・・・。
XHTML文書で用いる名前を拡張する方法は以下があります。
1)新しい要素型を定義する
2)XHTMLモジュールを追加する
3)名前空間を利用した語彙併用
4)XHTMLプロファイル
5)@class、@relのみ
この中でもっとも現実的なのが4)のXHTMLプロファイルになります。
@profile属性はHTMLの意味を各自が拡張していけます。
プロファイルを用意することで、ローカルな名前をフォーマルに変えることができるのです。
ただし、基本的にはメタデータ用の名前で機能拡張向けではなく、また、共有プロファイルの場合、意味定義の恒久性はプロファイルの管理者に依存することになってしまうという短所があります。
XHTMLからメタデータを抽出する汎用ルールとしてGRDDLというものがあります。
GRDDLを適用するにはいくつかの方法がありますが、まずは整形式のHMLになっていることが前提となります。
だからXHTMLはきちんと書きましょう。
&は&と書く。(リンクを張るときに&がそのままのことが多い)
属性値は必ず引用符で囲む。
空要素は/>を忘れない。
といったものはよくあるエラーです。
また属性と属性の間にスペースがないなどValidatorが通ってしまうエラーもあります。
拡張子を.xmlとして、ブラウザーで読み込むと比較的簡単にチェックができます。
------
その先もいろいろ続くのですが、申し訳ない、私にはこれ以上まとめるのは無理。(^^;;
講演データはここで見られます。
http://www.kanzaki.com/works/2007/pub/0715dws.html
あとはCSSNiteで音声データを配信するのをお待ちください。
よく使う名前を共有して使おうという考えはしっくりくるし、Web標準にかなっていると思いますが、いかんせんそこに至る過程が私には難しすぎました。
Comments
講義データもあわせて拝見しました。
途中で気が抜けそうになり、今の私にはハードルが高そうです。
なんとなーくならつかめたんですがね。
いまいち、XMLが理解できていないので、XHTMLの良さも網羅してる
わけではないですが、とにかく今はXHTMLをきちんと書く癖をつけておこうと勉強ちゅうです。
それにしても、ちゃんとまとめられてすごいです。
私は文章力が皆無なので尊敬します!
今度、私もセミナーに行ったらきちんとまとめて、ブログに載せれるようにがんばりますね。
コメントありがとうございますー。
まとめたのは本当に前半部分だけです。本題は後半なんですが、レベル高すぎました。(泣) 先生の目の前で魂半分抜けてましたよ。(汗)
まだあと6本書きますので、また覗きにきてくださいね。
インデゴさんのセミナーレポートも楽しみにしています!
XML(とXHTML)は、元々はシンプルでいいアイデアだったのですが、
あれもこれもと機能拡張する度に、把握不可能なぐらいややこしくなってしまいました。
少なくとも自分はもう追っかけれてないですw
ちょうどこの講義ネタの「名前拡張」あたりから、もうだめ。
これに拍車をかけてるのが、IEやFireFox等のブラウザ依存。
どっちも中途半端にしかサポートしてない。
やってられっかー!って感じですw
コメントありがとうございます。
ふふ、私にはレベルが高すぎましたよ。(遠い目
ええ、ちゃんとセッション受けるときは事前に内容を確認しようと思いました。
いつか理解できるといいなー(再び遠い目
@href属性の中でも&は&というのは見落としてそうです。
メタ情報深いなあ・・
コメントありがとうございます。
私も文章中では気をつけても、リンクをコピペしてきたら絶対忘れるなぁと、思いました。(^^;;
多分間違ったまとめはしてないと思いますが、いかんせん内容が難しかったので、神崎さんのサイト(http://www.kanzaki.com)も合わせてご覧くださいね!