「イベント」の情報を出すならオリジナルなXMLフォーマットではなくGDataを使う
これから、ある三つのサイト/サービスのそれぞれを、例を挙げつつ紹介する。 その共通点と問題点はなんだろう?
まずメディアテクノロジーラボのアテンド。
イベント開催支援ツール アテンド : ATND (リクルート メディアテクノロジーラボ)
2008/10/21
イベント詳細のXMLを作成しました
http://atnd.org/events/1.xml のように、イベント情報のページの最後に.xmlをつけることでXMLでの配信を行うよう実装しました。これにより、イベント情報に関わる情報をすべてXML形式で取得することができます。 XMLに記述されている項目は次の通りです。現在用意しているイベント情報のリソース形式は、下記の通りhtml、rss、xmlとなります。
- イベントの情報
- コメント
- 参加者リスト
- 補欠者リスト
- キャンセルリスト
- http://atnd.org/events/1 :イベント情報ページ
- http://atnd.org/events/1.rss :イベント情報+参加者追加の配信
- http://atnd.org/events/1.xml :イベント情報+参加者・補欠者・キャンセル一覧
この例が、例えば http://atnd.org/events/392.xmlのようなXML。(下参照)
<event> <id>392</id> <title>日本Androidの会:Android SDK WG 第4回 セッション</title> <description> <strong>Android SDK WG </strong>とは、(省略) </description> <started_at>2009/03/14 13:00</started_at> <ended_at>2009/03/14 17:30</ended_at> <limit>40</limit> <user>egg</user> <user_id>2934</user_id> <entry_list> <user> <user>nak***</user> <user_id>1***</user_id> <comment>参加希望です。 よろしくお願いします。</comment> </user> <user> <user>sur***</user> <user_id>1***</user_id> <comment>参加させて下さい。よろしくお願いします。</comment> </user> (以下省略) </entry_list> </event>
そして東京アートビート。
東京アートビートのAPIついに公開! (Tokyo Art Beat 2008/9)
今回、Tokyo Art BeatはAPIを公開いたしました。ギークな方なら勿論ご存知かと思いますが、APIとはApplication programming interfaceの略語であり、つまり、TABに掲載されている全てのイベント情報を、使いやすくフォーマットした形で開放しはじたということで、ちょっとしたプログラミングの知識をお持ちの方にならどなたでも、これを自由に使っていただけます。
実際に得られるXMLの例↓
<?xml version="1.0"?>
<Events>
<Event xml:lang="ja" id="2008/D38F" href="http://www.tokyoartbeat.com/event/2008/D38F">
<Name>ユーグ・レプ 「パラレルワールド:もう一つの世界」</Name>
<Venue href="http://www.tokyoartbeat.com/venue/4A4AABB8">
<Name>東京都現代美術館</Name>
<Type>美術館</Type>
</Venue>
<Media>インスタレーション</Media>
<Media>その他</Media>
<Description><![CDATA[私たちは目に映る世界にのみ生きているのでしょうか。
もしかすると私たちのすぐそばにもうひとつの世界…]]></Description>
<Image src="http://www.tokyoartbeat.com/media/event/2008/D38F-30" width="30" />
<Image src="http://www.tokyoartbeat.com/media/event/2008/D38F-80" width="80" />
<Image src="http://www.tokyoartbeat.com/media/event/2008/D38F-170" width="170" />
<Karma>82.3295</Karma>
<Price free="0">大人1500円、学生1000円</Price>
<DateStart>2008-07-26</DateStart>
<DateEnd>2008-09-28</DateEnd>
<DaysBeforeEnd>34</DaysBeforeEnd>
<PermanentEvent>0</PermanentEvent>
<Distance>466.34028367746</Distance>
<Datum>world</Datum>
<Latitude>35.679571765284</Latitude>
<Longitude>139.80727010194</Longitude>
</Event>
</Events>
最後に、ちょっと方向変わって、イベントキャスト。
Microformats Ping - eventcast
Microformats Ping
Microformatsで記述されているイベント情報があれば是非そのURLを教えてください。 http://clip.eventcast.jp/api/ping?url={ウェブページのURL}として直接送っていただくことも可能です。 トラックバックと似た仕組みですので、トラックバックURLとして指定いただいても構いません。 その場合、以下のような結果を返します。<?xml version="1.0" encoding="UTF-8"?> <response> <error>0</error> </response>教えていただいた情報について
eventcastでは、ネット上の時間のついた情報を時間を軸に整理し誰でも簡単に探せるようにしたいと考えています。 教えていただいた情報を元に自動的にイベント情報を探し出し、自由に検索したり、活用したりできるような仕組みを提供させていただく予定です。Microformatsでイベント情報を記述する
決まりごととといっても、難しいわけではありません。ウェブページやブログを作成する際に、HTMLタグにちょっとした目印(class)を付けるだけです。Microfromats Creator を使えばそのままでも使えるHTMLコードを生成することができます。<div class="vevent"> <abbr class="dtstart" title="20070325">2007年3月25日</abbr> <abbr class="dtend" title="20070325">2007年3月26日</abbr> <h2 class="summary">イベントタイトル</h2> <p class="location">幕張メッセ</p> <p><a href="http://clip.eventcast.jp/" class="url">http://clip.eventcast.jp/</a></p> <p class="description">これはmicroformatsのテストです。</p> </div>
上記の3つのサイトは、次のような共通点と相違点がある。
- 「イベント」に関するサイトである。ジャンルの違いは多少あれど。
- XMLやmicroformatといったコンピュータ可読性の高いフォーマットでの出力を試みている。イベントキャストは出力する側ではなく出力を期待している側だけど。
- そうした情報を開放するからぜひ使ってくれ!と言っている。
- なのにそれらのフォーマットは驚くほどバラバラである。イベント情報の基本である「開催日」ですらstarted_atだったりDateStartだったりdtstartだったりするのは見るからにイケてない。
こんな状況で「ぜひこれでマッシュアップなアプリを作ってくれ」なんて言われてもねえ。。。 と文句を言う(誰に?)のはお門違いではあるものの、でも100%お門違いだと言い切れないこの気持ち、この見事なすれ違いっぷりは、何?
このように、普通のHTMLとは違う形で情報を見せたい場合、特に、いまどきの「API」とか「XML」とか呼ばれるような形で出したい場合、フォーマットの選択がひとつのキーになる。
- オリジナルなフォーマットのXMLで公開する
- 業界標準なフォーマットのXMLで公開する(コンピュータ可読性という広い意味でmicroformatも含め)
- オリジナルと標準のハイブリッドなフォーマットのXMLで公開する
個人的なお勧めは2番と3番だ。でも1番を選択してしまうサイトが意外と多い。 なぜなら、業界標準フォーマットではカバーしきれない種類の情報を明示的に埋め込みたい場合もあるから。
お察しのとおり、そこでGDataである。
- Common Elements: "Kinds" - Google Data APIs - Google Code
- GoogleのAPI戦略に新たな動き、GDataで「Google Calendar」のAPI公開 (マイコミジャーナル 2006/4)
- GDataってもっと注目されてもいいんじゃないの&非公式開発者ガイド (cyano 2006/4)
ほんの数年前に話題になったGDataなのに、その応用例を聞かない。 多くの開発者はGDataをGoogleカレンダーというスケジュール共有ソフトのためのAPI(フォーマット)としか捉えないまま忘れてしまったようだ。
あるいは、GDataを知っていても、自分の欲しいフォーマットと合わないと思ってしまったのだろうか。GData自身がAtomの拡張なんだから、他の人は自分が使いたい情報種別を <gd:hogehoge>でどうにも表現できそうにないときだけ例えば<tokyoartbeat:karma> といった形で好きなように拡張すればいいのだ。
などとつらつら書いてしまうと「またGoogle信者か」などと思われてしまうので一応断っておく。一番言いたいのは「どんなフォーマットであれ少しは統一の方向に持ってゆくことを考えようよ」ということ。
ちなみに、GDataが絶対かというとそうでもないかもしれない。アメリカのYahoo(旧upcoming.org)は API Documentation - event.getInfo - Upcoming というフォーマットでイベント情報を公開しているようだ。 個人的にはこのYahoo Upcomingのフォーマットはイマイチかなあと思う。
いまのところ標準性(?)と拡張性の両方を備えたフォーマットはやはりGDataしか見当たらない。 GData形式が広がって喜ぶのはGoogleか?そのユーザーか?それが面白くないと思うのはYahoo?MS?いやあ、そんな覇権争いなんてどうでもいいじゃん。

コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)