hcard と vcard の違い

私にとって microformats の提唱するメタデータにはいくつか疑問が残ります。その最たるものが hcard の名称です。

"hcard" という名称が与えられているにも関わらず、メタデータとしては "vcard" と表記します。 あるいは、データの形式は vcard であるにも関わらず、メタデータとしては "hcard" や "h-card" と表記します。

このような設計によって、私は vcard と hcard について遠回りしたり、誤解したりしていました。非常に分かりにくいのです。

vcard が元々あり、hcard が生まれた

そもそも vcard とは、電子メールなどで利用されている、デジタル名刺のフォーマットです。 IETF によって管理されていて、hcard よりも先に定義されていたフォーマットです。

そして hcard は vcard を HTML(XHTML) にマークアップするためのフォーマットです。

便宜上名称を分けたのでしょうが、これが私を混乱させることになりました。 なにより、hCard 1.0 の仕様 は、 hCard メタデータを記述するために、class 名に vcard を追加するようになっています。

<div class="vcard">
<a class="url fn" href="http:\/\/tantek.com/">Tantek Çelik</a>
</div>
hCard 1.0 の記述方法

hCard 1.0より引用。

後継に当たる microformats2 では vcard ではなく、 h-card と表記するようになり、この問題を解決しようとしているようです。

実際には vcard, hcard, h-card など表記が割れてしまったりしているようで、 microformats2 のページでそれらの議論を確認することができます。