Liner Note

情報(ユーザー中心デザイン・ユーザビリティ)と技術(ウェブプログラミング・ウェブサービス)についてのメモ書き

要約:Amazonアソシエイトを使って商品の情報表示を行うWordpress向けプラグイン「Amazon Linkage」をhReview 0.3に沿って書き直してみたので、そのプロセスを記しておきます

WordPressでAmazonアソシエイトを使用するためのプラグイン”Amazon Linkage”プラグインをmicroformats対応にしてみたのだけど、その対応までのプロセスを言語化しておきます(そもそも、microformatsって何だってのはそのものずばりのid:naoyaさんの記事におまかせします)

さて、まずmicroformatsと一口に言っても、代表的なもの(ドラフト含む)だけでも以下のように結構種類があります。

hCalendar
カレンダーやイベント情報を表現するためのmicroformats
hCard
人や組織の情報などプロフィールを表現するためのmicroformats
hAtom
更新情報を表現するためのmicroformats(例としてウェブログの記事の情報など)、ちなみにこのサイトもhAtomに対応してます
hReview
製品やサービスなどのレビューを表現するためのmicroformats
adr
住所を表現するためのmicroformats、hCardの1プロパティでもあります
geo
世界測地系に基づいて緯度・経度を表現するためのmicroformats

Amazon Linkgeプラグインでは商品情報をマークアップするわけですから、一番近いのはhReviewだと思われます。hReviewのスキーマはMicroformats Wikiによると、以下のようになっています。

  • hReview (hreview)
    • version. 任意。テキスト。
    • summary. 任意。テキスト
    • item type. 任意。 product | business | event | person | place | website | url.
    • item info. 必須。fn (url || photo ) | hCard (for person or business) | hCalendar (for event)
    • reviewer. 任意。hCard.
    • dtreviewed. 任意。 ISO8601 absolute date time.
    • rating. 任意。 fixed point integer [1.0-5.0], with optional alternate worst (default:1.0) and/or best (default:5.0), also fixed point integers, and explicit value.
    • description. 任意。text with optional valid XHTML markup.
    • tags. 任意。keywords or phrases, using rel-tag, each with optional rating.
    • permalink. 任意。rel-bookmarkrel-selfを使う。
    • license. 任意。rel-licenseを使う

hreview-ja – Microformats

フィールドの詳細もあわせてみると、hReviewに必須なのはitemクラスとそれに付随するfn(itemの名前の整形文字列)クラスのみで、あとは全て任意扱いです。では、以下の表示を例にしてみます。
477413015X,clear

例えば、このコードは以下のようになっています(いました)。

<div class="showcase clear-box">
<p class="cover" style="height: 246px;"><a href="http://www.amazon.co.jp/o/ASIN/477413015X/ref=nosim/openvista-22" title="Amazon.co.jp: いちばんやさしい オブジェクト指向の本 (新書)"><img src="http://note.openvista.jp/wp-content/plugins/amazon_linkage/cache/477413015X.png" width="147" height="239" alt="いちばんやさしい オブジェクト指向の本 のカバー画像" /></a></p>
<div class="database">
<p>いちばんやさしい オブジェクト指向の本 </p>
<p>サイト内で7人がクリック</p>
<table summary="『いちばんやさしい オブジェクト指向の本 』についての情報">
<tbody>
<tr><th>著者</th><td><a href="http://www.amazon.co.jp/gp/search?index=blended&tag=openvista-22&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E4%BA%95%E4%B8%8A+%E6%A8%B9">井上 樹</a></td></tr>
<tr><th>販売元</th><td>技術評論社</td></tr>
<tr><th>発売時期</th><td>2007年01月19日</td></tr>
<tr><th>定価</th><td>882円</td></tr>
</tbody>
</table>
</div>
</div>

これをhReview(ver. 0.3)に従って、hreview/item/fn/url/photoクラスを加えてみるとこうなります。

<div class="hreview showcase clear-box">
<div class="item">
<p class="cover" style="height: 246px;"><a href="http://www.amazon.co.jp/o/ASIN/477413015X/ref=nosim/openvista-22" class="url" title="Amazon.co.jp: いちばんやさしい オブジェクト指向の本 (新書)"><img src="http://note.openvista.jp/wp-content/plugins/amazon_linkage/cache/477413015X.png" width="147" height="239" class="photo" alt="いちばんやさしい オブジェクト指向の本 のカバー画像" /></a></p>
<div class="database">
<p class="fn">いちばんやさしい オブジェクト指向の本 </p>
<p>サイト内で7人がクリック</p>
<table summary="『いちばんやさしい オブジェクト指向の本 』についての情報">
<tbody>
<tr><th>著者</th><td><a href="http://www.amazon.co.jp/gp/search?index=blended&tag=openvista-22&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E4%BA%95%E4%B8%8A+%E6%A8%B9">井上 樹</a></td></tr>
<tr><th>販売元</th><td>技術評論社</td></tr>
<tr><th>発売時期</th><td>2007年01月19日</td></tr>
<tr><th>定価</th><td>882円</td></tr>
</tbody>
</table>
</div>
<dl class="hidden">
<dt>version</dt><dd class="version">0.3</dd>
<dt>type</dt><dd class="type">product</dd>
<dt>reviewer</dt><dd><a href="http://www.openvista.jp/person/leva" class="reviewer">leva</a></dd>
</dl>
</div>
</div>

‥えー、既にお気づきかと思いますが、このコード内にはアイテムのレビュー内容は一切含まれていません。Amazon Linkage自体にはレビュー内容は含めないという仕様にしているためです(つまりレビュー内容は別の場所にある)。hReviewなのにレビューがないってどうなんだそれって感じですが、一応規格(ドラフトだけど)には沿ってます。

えーと、hReviewの目的は(WikiのIntroductionを読んだ限りでは)レビューを機械処理して共有しやすくなるためにあるのであって、であるならばレビュー内容、つまりdescription(あるいはratingやsummary)プロパティは必須にすべきだと思います。でなければ、microformatsを持ったコンテンツを検索してもレビュー内容のない単なる商品情報だけの結果であふれかえってしまうのではないかと。

ですが、推測するに、とりあえずitemプロパティ以外は全て任意にした方がユースケースは増えるので、そうして敷居を下げた上で、より多くの情報をウェブ上に集めておいて、検索シーンにおいて「descriptionプロパティを持つものだけ表示する」とかそういう柔軟な運用方法を意図しているのかもしれません。

さて少し話がそれました、本題に戻りましょう。現在、Amazon Linkageプラグインを使ってレビューを含めることはできないので、このプラグインを使いつつレビューを書くとなると、どうしても「hReviewで表現された商品情報+レビュー」という風に各々が独立してしまいます。かといってレビュー部分にも簡単な商品情報を書くのは煩雑で、機械の論理に同調する形になりまず人にとって読みやすいことが重要、機械はその次というコンセプトから外れてしまいます。

しかし、実はmicroformatsにはインクルードパターン(include-pattern)という便利な方法が用意されています(See also Object Includes。これはa要素かobject要素を用いることで、あるmicroformatに同文書内にある別のmicroformatを組み込むことができるというものです。ちなみに、複数のレビューをまとめてhReviewで表現するときに何回も商品情報を記述するのを避けるためにも使えるようです。そして、この方法はhResumeとこのhReviewで使うことができるようです。

さて、ではこのinclude-patternを用いて、先ほどのコードにレビュー内容を追加してみましょう。

<div class="hreview showcase clear-box">
<div class="item" id="item-477413015X">
<p class="cover" style="height: 246px;"><a href="http://www.amazon.co.jp/o/ASIN/477413015X/ref=nosim/openvista-22" class="url" title="Amazon.co.jp: いちばんやさしい オブジェクト指向の本 (新書)"><img src="http://note.openvista.jp/wp-content/plugins/amazon_linkage/cache/477413015X.png" width="147" height="239" class="photo" alt="いちばんやさしい オブジェクト指向の本 のカバー画像" /></a></p>
<div class="database">
<p class="fn">いちばんやさしい オブジェクト指向の本 </p>
<p>サイト内で7人がクリック</p>
<table summary="『いちばんやさしい オブジェクト指向の本 』についての情報">
<tbody>
<tr><th>著者</th><td><a href="http://www.amazon.co.jp/gp/search?index=blended&tag=openvista-22&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E4%BA%95%E4%B8%8A+%E6%A8%B9">井上 樹</a></td></tr>
<tr><th>販売元</th><td>技術評論社</td></tr>
<tr><th>発売時期</th><td>2007年01月19日</td></tr>
<tr><th>定価</th><td>882円</td></tr>
</tbody>
</table>
</div>
<dl class="hidden">
<dt>version</dt><dd class="version">0.3</dd>
<dt>type</dt><dd class="type">product</dd>
<dt>reviewer</dt><dd><a href="http://www.openvista.jp/person/leva" class="reviewer">leva</a></dd>
</dl>
</div>
</div>
</div>
<p>さて、今日本屋に行ったら(中略)というわけで、買ってきました。</p>
<div class="hreview">
<a href="#item-477413015X" class="include" title="Review content of urn:isbn:477413015X"></a>
<p class="description">オブジェクト指向のコンセプトを知るための初学者向けの入門書、具体例を中心に展開しているので分かりやすいです。プログラマ以外にもオススメ。<span class="rating"><span class="best">10</span>点中<span class="value">8</span>点。</span></p>
</div>

これでhReviewを使ったマークアップができました。もし、この記述に問題点がある場合はお知らせ下さいませ。

ちなみにFirefox 3ではmicroformatsをサポートすることが表明されていますが、残念ながら(ドラフトなので、現在のところは)hReviewはサポートされていません。adrやgeoがサポートされていますから「ドラフトなので」という理由ではないかと思いますが、Firefox 4以降でのサポートに期待したいところです。

あと、最後に余談ですが、こういう関連づけの方法って対訳のマークアップなど、2つの要素群を関連づける方法として一般化できないできないもんですかね。HTMLは同文書内の要素を結びつけることはあんまり得意じゃないものですから。

参考URL

Popularity: 2% [?]

キーワード:

似たもの記事

読者の皆さんの反応サイト内コメントの更新情報(RSSフィード)

読者のコメント

0

ブックマークコメント

2

他サイトの関連記事

1

読者のコメント

コメントはまだ寄せられていません

はてなブックマークでつけられたコメント

IwamotoTakashiさんのプロフィール画像  IwamotoTakashi
妥当かどうかは未確認
soheiさんのプロフィール画像  sohei
商品情報を…

他サイトの関連記事

  1. ウェブサイト

    hreviewは普及するのか? - coza4 diary

    投稿日時
    2008年09月22日
    15時ごろ
    Comment No
    #1

    [...] Amazonアソシエイトでの商品情報表示を hReview(microformats) に対応させてみる – Liner Note [...]


トラックバックとは
この記事に言及したサイトをこちらに掲載する仕組みをトラックバックと言います。ここでは、このサイトに頂いたトラックバックを一覧表示しています。
トラックバックしてくださる方へ
この記事への言及がない記事など、トラックバック受信方針に沿っていないものは、読者にお見せしても仕方ないこともあり削除させていただいることをご了承ください。
トラックバックを受け取るためのURI

コメント書き込みフォーム

  • メールアドレスはウェブ上で公開したり、連絡以外で使うことはありません
  • コメントを公開したくないが、作者に連絡を取りたい場合は メールで連絡してください
  • 本文中にHTMLコードは使用できません(URLはそのままお書きください)