Re: マークアップする力

「邪悪マークアップは先進的マークアップか?」から引用すると:

これがまずい理由は、<田中>元気で行ってこい。や<ミヨ子>おみやげ、忘れないでねぇのあいだに共通性があるのに、その共通性がマークアップにより表現されてないことです。

これと同じ事が rel="hatenab" と rel="delicious" にも言えると思うのです.つまり rel="hatenab" と rel="delicious" の間に共通性があるのに,その共通性が表現されていないのです.それは,書き手の頭の中だけにあります.profile によって定義するっていう手もありますが,そうすると似たようなサービス全てについて profile で定義を用意しなければなりません.そうではなくて rel 属性では共通性の部分を表現するべきでしょう.

おのひろき氏とリンク先の檜山氏の言わんとするところはわかるのだが、おのひろき氏には私の主張は半分しか理解してもらえていないと思う。

rel 属性はあくまでも“意味”(あるいは関連性)を定義する物だという点に拘るなら、それはそれでいいと思うが、それなら個体識別子を定義する属性もあるべきだと思う。
例えとして、(もしかすると適当な属性名があるのかもしれないが…)勝手に relto という属性を作ってしまうとこんな感じ。

つまり、「オンラインブックマークの『はてなブックマーク』」という、種類とアイデンティティの両方を含んだ形で定義出来ないと、現実世界の概念をメタデータ化するのは難しいのではないか…というのが私の主張。

私の主張を実現するためには、おのひろき氏の言うように title 属性を使うのは適していない。何故なら、title 属性はマークアップの記述者がリンク先を表現するために自由な文字列を設定するところであり、del.icio.us を、そのまま「del.icio.us」と書くのも「デリシャス」と書くのも自由で、場合によっては「米国のソーシャルブックマークサービス『デリシャス』」と記述される可能性もある。
ここで揺らぎが出てしまうと、個体識別子としての機能は果たさなくなってしまう。

もうひとつ、上の例での relto 属性の部分は URL で判別出来るので不要だ…というのも乱暴すぎると思う。URLはあくまでも URL であり、必ずしも名前空間の定義や個体識別子として機能するとは限らないから。例えば、現在や過去の URL は保証出来るが、未来のURLは保証出来ない。

大昔の HTML は構造と見た目が分離されていなく…というより、分離する手段が用意されていなかったため、インデントするために <blockquote> タグを使ったり、文字の色や大きさを変えるために <font> タグが作られてしまったりした。この失敗を繰り返さないために、rel 属性原理主義に陥るのではなく、より現実社会の概念をマークアップしやすくなる方法を考えるべきではないかと思う。

最後に、蛇足だが一つ突っ込みを入れさせて頂くと、檜山氏のいう「多重マークアップ」には2つのパターンがあると思う。
一つは「見た目と意味」のように概念の違う属性が併記される場合。もう一つは「人間可読内容と機械処理指令」のように意味は同じだが表現形式が違う場合。
檜山氏の多重マークアップ論とここでの論点は微妙に異なるので、混同しない方がいいと思う。


追記

考えてみれば、hatenab という“属性”は onlineBookmark という“属性の属性”とも言えるので、これが違和感の元になっているのかもしれないと思った。
そう考えれば、確かに rel 属性に hatenab を指定するのはナンセンスと言えるかもしれないが、そこで話が終わってしまうと「オンラインブックマークの『はてなブックマーク』」という概念は指定出来なくなってしまう。
やはり、「hatenab」を指定するための属性があった方がいいと思った。


8/20 ブックマークコメント返しの追記

ブックマークコメントで meta 要素を提案されたが、これは <head>〜</head> 中に書くアレですよね?
私も最初にそれが思いついたのだが、それだと1文書に付き1回しか指定出来ない。
リンクごとにリンク先サービスの個体識別子を記述するのが目的なので、別の場所でまとめて定義…というのは微妙に外していると思う。

もし、meta属性を使うならこんな感じかと思う。

<head>
<meta name="relto.hatenaBookmark" content="日本語のブクマサービス「はてなブックマーク」">
<meta name="relto.delicious" content="英語のブクマサービス「del.icio.us」">
</head>
<body>
<ul>
<li><a href="http://b.harena.ne.jp/foo/" rel="onlineBookmark" relto="hatenaBookmark">オレのはてブ</a></li>
<li><a href="http://del.icio.us/foo/" rel="onlineBookmark" relto="delicious">オレのでりブ</a></li>
</ul>
</body>

これだと、それこそ title 属性でもいいかなと思えてくる。