マイクロデータは面白い

今まで技術的なことはあまり書いてませんが、どちらかと言うと技術的なことばっかりに興味がある人です。そんなこんなで最近HTML5を勉強していたのですが、これがなかなか面白そうだったので、それについて少し書いてみたいと思います。

マイクロデータとは

HTML5の中の1つの仕様で、タグに意味づけを行えるものです。たとえば今までのHTML4で料理のレシピを書こうと思った場合以下のようにかけると思います。

<div>
  <h1>味噌汁</h1>
  材料
  <ul>
    <li>味噌</li>
    <li>大根</li>
    <li>ねぎ</li>
  </ul>
</div>

人間がみると、どれが料理名で、材料なのか分かりますが、基本的にタグにはそれらの意味は含まれていません。HTML5ではマイクロデータの仕組みを使ってタグに意味をつけられるようになります。上の例をマイクロデータをった形に変更してみましょう。

<div itemscope itemtype="http://〜">
  <h1 itemprop="title">味噌汁</h1>
  材料
  <ul>
    <li itemprop="ingredient">味噌</li>
    <li itemprop="ingredient">大根</li>
    <li itemprop="ingredient">ねぎ</li>
  </ul>
</div>

ingredientは料理の材料という意味らしいです・・・。このようにタグにitemprop属性として後付で意味をつけられるようになります。

一番外側のdivタグのitemtype属性でこれらの後付の意味を一意になるように設定して、各タグのitemprop属性でそれらの意味をタグに持たせます。

昔、セマンティックウェブで、意味を持ったタグを作ろうとしましたが、どこまで定義すれば良いのか際限がなくなってしまったものを別の形で実装したものといえると思います。

ストレージ容量を減らせるかも

さて、何がうれしいのか?

上の例でレシピの話を使ったので、私の好きなクックパッドがマイクロデータを使ったとして話を進めます。

クックパッドは、それぞれの意味を考えて先ほどの例のitemtype="http://〜"のところに、その意味付けしたマイクロデータフォーマットを公開します、そうすることで誰もが使えるようなります。

そのクックパッドが定義したマイクロデータを使って、ブログなどで料理のレシピを誰かが紹介します。そして、そのURLをクックパッドへ送信します。そうするとクックパッドは、材料から、料理の画像から何からをクックパッドのストレージに格納する必要がなくなるのです(まぁ、何をクックパッドのストレージに格納するか、しないかは判断が分かれますが・・・)。

たとえば、クックパッドが送信されてきたURLと料理のカテゴリだけをクックパッドのストレージに格納した場合、クックパッドのユーザが料理をカテゴリで検索した場合は、URLが分かっているので、そのURLからデータを取ってきて、編集してクックパッドのユーザへ返却すればいいのです。

現在、コンピュータリソースで一番お金がかかっているのはストレージだと言われています、ですからこのように自社で持つデータを少なくできたら、かなりありがたいはずです。上記のような場合であれば、クックパッドは削減できるストレージにかかる料金を考えて、レシピを送ってくれたユーザにいくらかお金を上げるようにすればユーザもハッピーです。

ネットワークのスピードや、CPUのパワーに余裕がある場合は結構有効な手段だと思います、ただ、ネットワークの状況によってはデータが取ってこれない場合もありうるので、絶対に必要なデータの場合はこのような手段はとれませんが、場合によってはかなり有効に働く場面があるはずです。

いや、若干本来の使い方じゃないんですけどね・・・