たけまる / 2007-06
2007-06-29 Fri
_ microformats の例 - hReview [microformats]



hReview は,ブログの記事などを評価するときに用いられます.■ class 属性
主な class 属性です (CSS selector 表記).評価対象は必須です.
| .hreview ".fn .url" | 評価対象 |
| .hreview .summary | 概要 |
| .hreview .dtreviewed | 評価日時 |
| .hreview .type | 種類 (product, business, event, person, place, website) |
| .hreview .reviewer | 評価者 (hCard) |
| .hreview .rating | 評価 (1-5) |
| .hreview .description | 詳細 |
評価対象には hCard と hCalendar を指定することもできます.
■ 代替表記について
評価は 1 から 5 の数値で表すことになっていますが,代替表記を使うこ
ともできます.タグ名を abbr とし,正式な表記を title 属性に書きま
す (たぶん評価以外に使ってもよいと思います).
<abbr class="rating" title="5">★★★★★</abbr>
■ 例
hReview の簡単な例を示します.
<div class="hreview">
<div>
<span class="summary">microformats の評価</span>
(<a class="fn url" href="http://microformats.org/">microformats.org</a>)
</div>
<div>
評価者:
<span class="reviewer vcard">
<span class="fn">マイクロ 太郎</span>
</span>
</div>
<div>
評価:
<abbr class="rating" title="5">★★★★★</abbr>
</div>
</div>
■ 参考情報
hReview を生成するツールがあります.概要や日時を入力すると,
hReview に対応した HTML を出力してくれます.
- hReview Creator
hReview の仕様は以下にあります.
- hreview - Microformats
- hreview-ja - Microformats
- hreview-cheatsheet
2007-06-24 Sun
_ XML::FeedPP v.0.21 のパッチについて [perl][feed]



きのうのエントリ [2007-06-23-1] で,XML の解析には XML::FeedPP を使っています.バグを修正するために,と書いておきながら,パッチの説明をまったくしませんでした.あまりに
以下のパッチを当ててください.
XML-FeedPP-0.21_01.patch
XML-FeedPP-0.21_02.patch
XML-FeedPP-0.21_03.patch
不親切なので,一応説明しておきます.
なお,XML::FeedPP については↓をみてください.
[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合
# 作者の川崎さんにはパッチをお送りしてあります.
■ XML-FeedPP-0.21_01.patch
XML::FeedPP を Atom 1.0 に対応させるためのパッチです.Atom 0.3 と
Atom 1.0 のフィードを扱うときには,それぞれ,
my $atom03 = XML::FeedPP::Atom03->new( ... ); my $atom10 = XML::FeedPP::Atom10->new( ... );のようにしてください.
また,後方互換性も保たれています.たとえば,
my $atom = XML::FeedPP::Atom->new( ... );とすれば,Atom 0.3 フィードを扱うこともできます.
■ XML-FeedPP-0.21_02.patch
"JST" のように,略称で表されたタイムゾーンに対応しました.このパッ
チを当てるときは,Time::Timezone モジュールが必要になります.
■ XML-FeedPP-0.21_03.patch
RDF (RSS 1.0) の著者を表す要素名を,"creator" から "dc:creator" に
修正しました.名前空間の表し方というのは一通りではなく,他の表記も
ありえるのですが,たぶん "dc:creator" と表すのが一般的だと思います.
■ その他の問題点
XML::FeedPP は名前空間の扱いが厳密ではありません.また,Atom で
content 要素が XHTML であるときを扱うこともできないようです.これ
らの点が気になる場合は XML::Feed を使ったほうがいいかもしれません.
一方,速度を重要視するときは XML::FeedPP がいいでしょう.
参考 たけまる / フィード変換モジュールはどれが速いかベンチ
2007-06-23 Sat
_ GData に (ほぼ) 準拠したブログ検索 [gdata]



"Google データ API" (GData) に (ほぼ) 準拠した「ブログ検索ウェブサービス」を作りました.
ウェブサービスの API は,ウェブサービスの数だけ存在するといってい
いほどマチマチです.似たサービスであっても API が再発明されていま
す.そのため,ウェブサービスを利用したマッシュアップ系サービスも,
マチマチに対応せざるを得なくなっています.どうにも無駄な気がします.
ということを考えていたら,こんなニュースがありました.
p0t: 標準Web API
「YouTubeの次期APIには、GDataを採用」
この瞬間に標準のWeb APIはGDataにきまっちゃった・・・?
API の優劣を比較することは難しいですが,上の記事にも書かれているよ
うに,GData は「もっとも無難」な API でしょう.基本的なクエリはしっ
かり定義されていて,一部のサービスでしか使わないような特殊な API
はなく,丁度よいという印象です.
デファクトになると判断するのはまだ速いと思いますが,GData (ほぼ)
準拠の「ブログ検索ウェブサービス」を作ってみました.すでにある
GData サービス (Google Calendar など) と同じように,ブログ検索を扱
えるようになります.
デフォルトでは,"Googleブログ検索" に対して検索を行います.クエリ
パラメータ uri= でフィードを指定すると,そのフィードからクエリに合
致するエントリを検索します.
# ちなみに,同じ会社でありながら,Googleブログ検索の API は GData
# とまったく異なります.
■ 例
# けっこう重いです..
2007-12-01 以降に書かれた "google" に関するブログを検索
/feed/search/?q=google&updated-min=2007-12-01T00:00:00Z
"xml" に関するブログと CPAN モジュールを検索 (検索対象に CPAN を追加)
/feed/search/?q=xml&uri=http://search.cpan.org/
■ ベースURI
http://teahut.sakura.ne.jp/feed/search/
■ パラメータ
GData で定義されているパラメータを簡単に説明しておきます.詳しくは,
たけまる - GData/Protocol をみてください.
| パラメータ | 説明 |
| q= | 検索文字列 (フレーズや除外文字列, OR 指定可能, ex. q="Elizabeth Bennet" -Austen) |
| author= | エントリの著者名あるいは電子メールアドレス |
| /-/<category>/ | カテゴリ ("|" で区切ると OR) |
| updated-min=, updated-max= | 更新時刻の範囲 (ex. 2007-01-01T00:00:00+09:00) |
| alt= | 変換後のデータ形式 (atom, rss, json-in-script) |
| callback= | JavaScript関数名 (alt=json-in-script のとき) |
デフォルトでは Googleブログ検索 から検索しますが,uri= で検索対象
ブログを追加することもできます.
■ GData との相異点
- 検索文字列 (q=, author=) は単語単位ではなく,任意の部分文字列に
ヒットする (N-gram)
- カテゴリクエリ (/-/<category>/) では @scheme を無視している
- POST などによるエントリの変更はできない
■ ソース
[2007-04-02-1] のフィード変換サービスと同じく,Perl で書きました.
スクリプト
mod_rewrite の設定
■ XML 変換
XML の解析には XML::FeedPP を使っています.バグを修正するために,
以下のパッチを当ててください.
XML-FeedPP-0.21_01.patch
XML-FeedPP-0.21_02.patch
XML-FeedPP-0.21_03.patch
(2007-06-24 追記) パッチの説明を [2006-06-24-1] に書きました.
(1007-12-03 追記) XML::FeedPP から XML::Feed に変更しました.
2007-06-21 Thu
_ microformats の例 - hCalendar [microformats]



hCalendar は,スケジュール情報を表すために用いられます.iCalendarという規格のうち,イベントを表す部分 (VEVENT) を microformats に移
植したようです.
■ class 属性
主な class 属性です (CSS selector 表記).概要,開始日時は必須です.
| .vevent .summary | 概要 |
| .vevent .dtstart | 開始日時 |
| .vevent .dtend | 終了時刻 |
| .vevent .description | 説明 |
| .vevent .location | 場所 |
| .vevent .url | URL |
| .vevent .category | カテゴリ |
主催者などの情報は定義されていないようです.
■ 代替表記について
日時は 2007-01-01T00:00:00+09:00 のように表すことになっていますが
(RFC3339 参照),人間にとって読みにくいので,代替表記を使うことがで
きます.タグ名を abbr とし,正式な表記を title 属性に書きます (代
替表記は日時以外に使ってもよいと思います).
<abbr class="dtstart" title="2007-01-01T00:00:00+09:00">平成19年元旦</abbr>
■ 例
hCalendar の簡単な例を示します.
<div class="vevent">
<span class="summary">初詣</span>
<table>
<tr>
<th>日時
<td><abbr class="dtstart" title="2007-01-01T00:00:00+09::00">平成19年元旦</abbr>
<tr>
<th>場所
<td><span class="location">明治神宮</span>
<tr>
<th>詳細
<td><div class="description">参加者募集中</div>
</table>
</div>
ブラウザで表示すると次のようになります.
| 日時 | 平成19年元旦 |
|---|---|
| 場所 | 明治神宮 |
| 詳細 | 参加者募集中
|
■ 参考情報
hCalendar を生成するツールがあります.概要や日時を入力すると,
hCalendar に対応した HTML を出力してくれます.
- hCalendar Creator
hCalendar の仕様は以下にあります.
- hcalendar - Microformats
- hcalendar-ja - Microformats
- hcalendar-cheatsheet - Microformats
2007-06-16 Sat
_ microformats の例 - hCard [microformats]



[2007-06-11-1] では microformats の概要について説明しました.今回から個々の microformats 仕様をみていきます.
hcard は,名刺に書かれるような情報を表す microformats です.元々
vCard という規格があって,それを microformats に移植したようです.
■ class 属性
主な class 属性です (CSS selector 表記).名前は必須です.
| .vcard .fn | 名前 |
| .vcard .adr | 住所 |
| .vcard .tel | 電話番号 |
| .vcard .email | 電子メール |
| .vcard .org | 所属 |
| .vcard .title | 役職 |
| .vcard .url | URL |
| .vcard .category | カテゴリ |
いくつかの class 属性は,より詳細に指定することができます.
名前を詳細に指定するときは,.fn ではなく .n を使います.
| .vcard .n .given-name | 名前 (ファーストネーム) |
| .vcard .n .family-name | 名字 |
| .vcard .n .additional-name | ミドルネーム |
住所です.
| .vcard .adr .type | 種類 (work, home, etc.) |
| .vcard .adr .street-address | 町内住所 |
| .vcard .adr .locality | 市町村 |
| .vcard .adr .region | 州・県 |
| .vcard .adr .postal-code | 郵便番号 |
| .vcard .adr .country-name | 国 |
電話番号や電子メールは,種類を指定することができます.電話番号の例
です.
| .vcard .tel .type | 種類 (home, work, fax, cell, pager) |
| .vcard .tel .value | 電話番号 |
■ 例
簡単な例を示します.これは,株式会社マイクロ に勤めている マイクロ
太郎 さんの名刺です.
<div class="vcard"> <div class="org">株式会社 マイクロ</div> <span class="fn">マイクロ 太郎</span> <div class="tel">+81-3-1234-5678</div> <a class="email" href="mailto:foo@example.com">foo@example.com</a> </div>
ブラウザで表示すると次のようになります.
■ 参考情報
hCard を生成するツールがあります.名前や住所を入力すると,hCard に
対応した HTML を出力してくれます.
- hCard Creator
hCard の仕様は以下にあります.
- hcard - Microformats
- hcard-ja - Microformats
- hcard-cheatsheet
2007-06-11 Mon
_ microformats とは [microformats]



Web2.0 の次を目指す技術として microformats が注目されています.一言でいうと,ウェブページに簡単な「目印」を付けるための技術です.
microformats には,ウェブ検索を変える力があると期待されています.
まず,microformats とはどのような技術なのかみていきます.
ウェブページに使われている HTML は,ページのレイアウトを指定する言
語です.このため,機械がページの内容を読むことはできません.XML を
使えば機械が読めるようになりますが,人間が読むには殺風景です (CSS
と組み合わせてレイアウトを指定できますが,面倒です).
大雑把にいうと,microformats は「HTML に XML のフレイバーを加えた
もの」です.そのために,class 属性を用います.
たとえば,microformats で名刺を表すには,
<div class="vcard"> <div class="org">株式会社 マイクロ</div> <span class="fn">マイクロ 太郎</span> <div class="tel">+81-3-1234-5678</div> <a class="email" href="mailto:foo@example.com">foo@example.com</a> </div>
のような HTML を用意します.
これをブラウザで表示すると,
となります.人間がみれば,名前が「マイクロ太郎」であることはすぐに
読みとれます.
また,CSS selector で ".vcard .fn" のように指定すれば名前を取得で
きるため,機械も「読む」ことができるわけです.
このように,「".vcard .fn" のような class 属性の使い方を決めておく」
のが microformats です.名刺やイベントのように,よく使われる情報を
中心に class 属性が決められています.
ところで,microformats によって何が変わるのでしょうか?
まず,ウェブページに表示されている情報を,他のアプリケーションで利
用できるようになると思います.たとえば,Google hCalendar @ Make Data Make Sense
にある Greasemonkey Script を使うと,microformats で表されたイベン
ト情報を,ワンクリックで Google Calendar に送ることができます.イ
ベント名や日時をコピペする必要はありません.こういったことが簡単に
できるようになるでしょう.
さらに,microformats によって「ピンポイントな検索」ができるように
なりそうです.Technorati Microformats Search では,microformats の
種類 (hCard など) を指定して検索することができます.つまり,名刺や
イベントといった情報のカテゴリを指定した検索が可能です.将来的には,
「イベントの開始時刻」のようにさらにピンポイントな検索ができるので
はないでしょうか.
まだ対応ツールは少ないですが,普及してこなれてくればウェブがもっと
便利になると期待しています.
残念ながら,microformats を紹介した書籍はまだ少ないです.邦書では
Web2.0 BOOK で軽く触れられているくらいでしょうか.

洋書では,まるごと microformats についての本が出版されています (ま
だ読んでませんが).

次のエントリからは,よく使われる microformats を紹介します.
- hCard [2007-06-16-1]
- hCalendar [2007-06-21-1]
- hReview [2007-06-29-1]

