Re: class 属性を再発見

♯突然ですが、ですます調になります

個体識別子が何を意図するのかが良くわかっていません.これは URI が指し示すものが何なのかを URI とは別の方法で識別子を付加したいということですよね? URI から識別するのではなぜだめなのかもぼくにはよくわかりません.

例えば、ある人を「マリナーズの鈴木一郎さん」と紹介したりしますよね。つまり「所属と氏名」がセットになっています。
これと同じように、オンラインサービスを表現する時も「ソーシャルブックマークはてなブックマーク」という、一般名詞と固有名詞のセットになる訳です。

何故かというと、前にも書きましたが「ソーシャルブックマーク」だけではどのサービスを使っているかわからないし、「はてなブックマーク」だけではそれを知らない限り何のサービスだかわかりません。
ここで、「URLから推測出来る」「サービス名から推測出来る」というのは外しています。人間は推測出来ても、機械が推測出来るとは限らないのと、URLやサービス名は将来も不変だとは言えないからです。(URLやサービス名はサービスの内容ではなく金銭的・政治的理由で変化する可能性があります)

具体的な利用方法としては、ロボットで「オンラインブックマークのはてなブックマーク」に関するリンクを拾ってくるような場合です。この場合、rel="onlineBookmark" では情報が不足しています。

と,いうわけでもし識別子を付加したいのであれば rel 属性でなく class 属性が良いと思います.これは提案.それで,識別子を hatenab なんて形で付加するのにどういう意味があるのかはぼくには良くわかりませんが.

現在の HTML や XHTML の仕様から外れない方法で妥協するなら、class 属性を使うのは説得力があると思います。
ただ、クリアな仕様としては、個体識別子を指定する独自の方法があった方がいいと思います。その方がより正確にロボットが働けるからです。

前にも書きましたが、ここで言う個体識別子は rel 属性の下位属性なので、rel 属性に rel="onlineBookmark.hatenaBookmark" という感じに指定するのが一番自然な気がしてきました。

先のエントリで私は例として relto="hatenaBookmark" というのを提示しましたが、現在の HTML / XHTML の仕様に無いのなら、仕様に載せるように働きかけてみては?「microformats じゃなくなっちゃうよ」というなら、microformats の仕様を変えればいいのでは?
「HTML/XHTML の仕様内で完結するのが microformats の最低条件だ」というなら、それこそ HTML / XHTML の仕様を変えるか、microformats にこだわらず、新しい仕組みを作ればいいのでは?
実現するかどうかは別として、何か足りない物があるなら付け足す方が自然です。固定観念で小さくまとまらない方がいいと思います。
いずれにしても、「○○は△△だから□□出来ない」というのは簡単ですが、それでは何も前に進みません。「○○を□□するには☆☆が必要だ」という発想を持った方が前向きだと思います。もちろん、その過程で現在の仕様の枠内で解決出来る方法(多くの場合、妥協案になりますが…)を模索する事もアリです。

「オンラインブックマークのはてなブックマーク」というように、“意味”(または関連性)と個別識別子の両方が記述出来る仕様じゃないと、現実社会の情報をメタデータ化出来なくなってしまい、結局は「使えない仕様」という烙印を捺されてしまいかねません。そうなったら残念なので、そうならないように、あまり仕様が固まっていないうちに microformats の仕様策定グループに働きかけたらどうですか?

話が逸れましたが、profile 属性について。
個体識別子を定義するとなると、同名の他サービスとバッティングしないように、名前空間を分ける必要が出てきます。(全世界の個体識別子を管理する団体があって一元管理する方法もありますが、現実的じゃないですね。)
ここで、名前空間を定義するのに URL や profile 属性を使用するのはアリだと思います。profile 属性を使う事がベストかどうかの判断は誰か他の人に任せます。

さらに蛇足ですが、meta 要素について。
「このリンクは何のリンクですか?」と人に聞いたら、「(オンラインブックマークの)はてなブックマークです」と答えるでしょう。括弧でくくった部分は脳内で思い出していますが、言葉としては省略されています。もし、聞いた相手がはてなブックマークの事を知らない事がわかっていれば、省略しないかもしれませんが、いずれにしても優先するのは私が言うところの個体識別子である「はてなブックマーク」です。
人間の特性がそうだとしたら、個別のリンクには個体識別子を属性として持たせ、省略されている「オンラインブックマークの」の部分を meta 要素で補ってあげるという事も出来るかもしれません。

前のエントリーの追記の例にちょっと手を加えて。class 属性とリンクしてこんな感じ。

<head>
<meta name="class.hatenaBookmark" content="rel=onlineBookmark">
<meta name="class.delicious" content="rel=onlineBookmark">
</head>
<body>
<ul>
<li><a href="http://b.harena.ne.jp/foo/" class="hatenaBookmark">オレのはてブ</a></li>
<li><a href="http://del.icio.us/foo/" class="delicious">オレのでりブ</a></li>
</ul>
</body>

8/22 追記
ブックマークコメントを受けて若干追記しました。
話がだいぶ飛躍していますが、もともと私が言いたかったのは、rel="hatenab"rel="onlineBookmark" のどちらが適しているかの議論ではなく、両方が必要な場合もあるのだから、両方を記述するためには「何が問題なのか」を認識して「現在の仕様に足りない物は何か」を把握して「現在の仕様の範囲で実現するには妥協案としてどういう方法があるか」を考えるべきじゃないかという事です。
お互いの言っている事を否定し合っているだけでは議論のための議論にしかなりません。

♯<ins> 要素にも「いつ挿入したのか」を表す属性があった方がいいなと思った。