Google Base × Windows Vista をコラボさせる最強のRSS拡張。

(3/30 タイトル変えました。)

SLE(Simple List Extensions)の形が見えてきた。MicrosoftのTeam RSS Blogで、Mix06というイベントで発表された、Amazon、eBay、Yahoo、MSによるSLEの実装が紹介されている。

At Mix06 last week, Dean Hachamovitch gave the keynote address on Next Generating Browsing, during which he showed off great live examples of feeds that implement the Simple List Extensions, built by Amazon, eBay, Yahoo, and MSN Spaces.

同エントリでは、movieによる紹介もある。

SLE(Simple List Extensions)とは?

Microsoftは、次期OSであるVistaにおいて、RSS/XMLへの全面的な対応を謳い、さらにRSSの規格に対し二つの拡張を提案している。そのひとつがSLEだ。

  • SLE(Simple List Extensions)
    • 従来、時系列のデータしか扱えなかった「RSS」に対し、「リストから削除」「リストの並び順」など「リスト」の概念を導入するための拡張
    • 従来のRSSと次表のように比較される。
  RSS RSS+SLE
アイテムの意味 履歴 リスト
なにを含むか 最新の n アイテム 全てのアイテム
並び順 発行日 特定の並び順
削除されたアイテム 重要じゃない 意味がある
並び順の変更 重要じゃない 意味がある

by PDCでのMSの資料(日本語は適当にあてた)

ちなみに、提案されているもうひとつの拡張はSSE(Simple Sharing Extensions)といって、こちらは複数のRSSの同期を実現する拡張。

どのようにRSSが拡張されるのか?

RSSに加えるべき変更点は3箇所。

  1. 「これはリストだ」と宣言する
    • channel要素の直下に、treatAsという要素を加え「list」と指定する。
  2. リストとして拡張される項目の定義を記述する
    • channel要素の直下に、listinfoという要素を加え、namespaceと拡張する項目名、データタイプ、ラベルを定義する。
  3. リストに含まれる各アイテムに「項目」を追加する

これで、IE7等のSLE対応ソフトで拡張した項目をソート等に使えるようになる。

詳細については次のページの説明がわかりやすい。

http://blogs.msdn.com/rssteam/articles/SimpleListExtensionsExplained.aspx

どのように使われるのか?

使い方については昨年より何度かMSのサイトでデモが紹介されていたが、冒頭のエントリではamazonなど、実際に他のサイトで実装されている例が紹介されている。

例えばAmazonの例は、IE7で以下のように見える。


Amazonの実装例
IE7で表示した例

IE7では単純にソートとフィルタができるだけだが、VistaではOSがRSSを管理するようになりAPIが利用できるようになるので、スケジューラやデスクトップアプリなどから使い道は多いだろう。

Google Baseのnamespaceを使ってSLEを利用するのがベストではないのか

実はSLEを利用するのには(恐ろしいことに)Googleが素晴らしい仕様を持っている。Google Baseのデータアップロード用RSSだ。

Google BaseのFAQには次のような記述があり、

Can I submit an XML bulk upload?
Yes, you may submit bulk uploads in RSS 2.0, RSS 1.0, and Atom 0.3.

次のページでRSSの拡張方法が解説されている。

Google Base - RSS 2.0 Specification

また、namespaceの説明にはアイテムや属性のタイプがたくさん定義されている。

下のはアイテムタイプ「Jobs」用の「salary」属性の説明。

salary
Details 	Salary for this position. Non-numeric values such as "$" symbols are not acceptable.
Example 	<g:salary>55000</g:salary>
Attribute of 	Jobs
Content type 	float

これを使えば、次のようにSLEをGoogle Baseのネームスペースで書き、両者を同時に使用することができるように思える。

<channel>
<!-- SLEのリストです宣言 -->
<cf:treatAs>
  list
</cf:treatAs>
 :
<!-- SLEで拡張する項目の定義としてGoogle Baseの名前空間を指定 -->
<cf:listinfo> 
  <cf:sort ns="xmlns:g="http://base.google.com/ns/1.0 "
element="salary" label="Salary" data-type="number" />
</cf:listinfo>
 :
<!-- 各アイテムをGoogle Baseの名前空間で拡張 -->
<item>
  <title>some job title</title>
  <description>...</description>
  <g:salary cf:name="salary">55000</g:salary>
</item>
</channel>

上記のようにRSSを拡張することで、本当にOSからも自由にリストとして扱え、かつGoogle検索で条件絞込みもできるRSSを作成できるのであれば、インターネット越しにデータを扱う事業者が採用すべきデータフォーマットのひとつは確実にRSS+SLE+Google Base Namespaceとなるのではないか。

(アイディアだけで実際に検証したり試したりしたわけではないのでご注意を。)

Google, Yahoo, Microsoftの主戦場として、ついにセマンティックウェブが姿を現す?

Googleの「Google base」、Yahooが関わる「Structured Blogging」、そしてMicrosoftの「Simple Listing Extentions」。

この3つが目指すものは、ユーザーから見てインターネットの向こう側のデータを、いかにセマンティックに豊かにするかという点において、同じだ。

冒頭のエントリに戻ると、「Simple List Extensionsに対応しないRSSリーダは、テーブルタグに対応しないブラウザのように時代遅れのものになるだろう」というコメントが紹介されている。

Charlie Wood predicts: "As more enterprise applications become RSS-enabled, I predict that an RSS reader that doesn't support Simple List Extensions will become as retrograde as a web browser that doesn't support tables."

しかし、それは本当にいまのRSSリーダの延長線上にあるものなんだろうか? GYMたちのセマンティックウェブへの取り組みの向こう側には、さらにデータを使う側のブレイクスルーも必要とされている気がする。

いま勤務先では、RSSの発行側に対する付加価値提供を主に考えており、利用側については極めてシンプルなデスクトップアプリの提供くらいしかしていないのだけれど、やはり利用側が花開いていかないと価値付加もやりにくい。上のようなセマンティックウェブの可能性を生かす取り組みをもっとアクティブに提案していかないといけないのかもしれないなと思った次第です。