2005 年 6 月の履歴(もしくは日誌)


2005 年 6 月

6 月 27 日

RSS と Simple List Extensions

マイクロソフトが RSS 2.0 の item を特定の条件でソートできるような拡張を提案するという話ですが,規格などの情報がでてきていますな.RSS 2.0 も最初から拡張について考えられている規格なので,マイクロソフトが勝手な拡張をしたのではなく,RSS 2.0 として正しい拡張なのかなって思います.もっともその Simple List Extensions ってのが良いかどうかはまた別ですが.

それでもマイクロソフトがやるんですから,ある程度話題になるでしょう.マイクロソフトの提案がどんなものだったかを簡単に言えば,各 item にソートのキーになる要素が含まれるとして,そのキーになる要素は,RSS 2.0 の規格のものか,もしくは RSS 2.0 で定められている方法で拡張されている要素をそのまま使います.新しいのは,どれがソートのキーになる要素なのかを指定する方法と,ソートの方法を指定する方法を提案している事です.それらは Simple List Extensions の規格で指定してある方法で RSS 2.0 の中で記述する訳です.

で,例を考えてみました.ある商品の発売日が item に含まれていて,これで RSS の item をソートします.item が公開された日時の情報は pubDate で item で話題にしている商品発売日とは事なる日付です.

<rss version="2.0"
   xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
   xmlns:ex="http://www.example.com/ns/ex/">
   <channel>
   <title>商品発売日</title>
   <link>http://www.example.org/12345</link>
   <description>リストの例:商品発売日で item をソートしよう</description>
   <cf:treatAs>list</cf:treatAs>
   <cf:listinfo>
      <cf:sort>
         <ex:xyz data-type="date">発売日</ex:xyz>
      </cf:sort>
      <cf:group>
         <ex:xyz>発売日</ex:xyz>
      </cf:group>
   <cf:listinfo>
   <item>
      <title>タイトル1</title>
      <link>http://www.example.org/12345/1</link>
      <pubDate>Mon, Jun 27 2005 21:44:31 +0900</pubDate>
      <ex:xyz>Sun, Jun 26 2005</ex:xyz>
   </item>
   <item>
      <title>タイトル2</title>
      <link>http://www.example.org/12345/2</link>
      <pubDate>Mon, Jun 27 21:44:32 +0900</pubDate>
      <ex:xyz>Mon, Jun 27 2005</ex:xyz>
   </item>
   <item>
      <title>タイトル3</title>
      <link>http://www.example.org/12345/3</link>
      <pubDate>Mon, Jun 27 21:44:33 +0900</pubDate>
      <ex:xyz>Tue, Jun 28 2005</ex:xyz>
   </item>
   </channel>
</rss>

この RSS では発売日が ex:xyz っていう要素だとして,別の RSS では ex:abc で別の日付情報を扱っていたとします.それぞれ cf:sort の中で ex:xyz と ex:abc が data-type="date" として扱われているのであれば,両方の RSS を混ぜて日付情報でソートできるように実装できそうですね.

でも,価格情報だと単位が揃わなかったら難しそうです.日本円と米国ドルが価格情報としてそれぞれ別々の RSS にあったとして,data-type="number" だとしても,価格の単位の情報とどう関連づけるかが定義されていなければソートできないですよね.

ソートする方法を定義するっていうのはいいけど,そこに拡張性がないとすっごく限定された用途でしか使えないような気がします.

単に RSS リーダ側で,各 item を認識して,どの item でソートするのか指定できるようにするのと比べてどのようなメリットがあるのかな.

ぼくは RSS 2.0 は良くわかりません.マイクロソフトの Simple List Extensions Specification も読んでも良くわかりませんでした.なんか間違っていたり見落としていたり勘違いがあったら教えてくださいまし.

参考:

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050627n1 TrackBack

6 月 25 日

RSS を特定の条件でソートする

RSS の item をある特定の条件でソートできるように,順番の情報を追加する方法をマイクロソフトが提案しているそうです.RSS 1.0 なら RDF/XML として,とても柔軟に拡張できます.RDF/XML ではない場合は,ソートする為の順番の情報はさまざまな種類が必要になるのでは無いでしょうか.RDF なら他の目的で用意された語彙がそのまま流用できます.

CNET Japan の記事を引用します:

現在のRSSフィードは、単なるメッセージの流れとして送受信されており、その順番はメッセージが送信された時間によって決まる。Microsoftは、これに順番情報を追加する方法を提案しており、電子商取引サイトのベストセラーリストや、予定の作成順ではなくイベントの日付順に並んだカレンダー情報などを、RSSフィードがもっとうまく処理できるようにしたいと考えている。

引用終わり.

ここでの RSS は RSS/XML である RSS 1.0 のことではないだろうと思います.

RSS 1.0 の場合は,イベントのカレンダー情報なら,foaf:topic と http://www.w3.org/2002/12/cal/ical#Vevent を使うっていう手があります.

そうすれば rss:item の中では予定の作成日は dc:date で表現し,イベントの日付は dtstart/date で表現する事になるでしょう.

例えばこんな感じ:

<item rdf:about="http://onohiroki.cycling.jp/calendar/cal2005-06.html#d20050625">
  <title>2005-06-25 ツール・ド・美ケ原</title>
  <link>http://onohiroki.cycling.jp/calendar/cal2005-06.html#d20050625</link>
  <dc:date>2005-04-19T13:40:33Z</dc:date>
  <foaf:topic xmlns="http://www.w3.org/2002/12/cal/ical#">
    <Vevent>
      <dtstart rdf:parseType="Resource">
        <date>2005-06-25</date>
      </dtstart>
      <dtend rdf:parseType="Resource">
        <date>2005-06-27</date>
      </dtend>
      <summary>ツール・ド・美ケ原</summary>
      <uid>496B790F-660A-11D9-AF83-0003937B6ADA</uid>
      <dtstamp rdf:parseType="Resource">
        <dateTime>2005-04-19T13:40:33Z</dateTime>
      </dtstamp>
    </Vevent>
  </foaf:topic>
</item>

dc:date の 2005-04-19 はイベント情報を iCal に入力した日付で,イベントの日付は 開始 (dtstart/date) が 2005-06-25 で 2005-06-26 までです.iCalender の仕様により終了日 (dtend/date) は 2005-06-27 って表現されます.

これならイベントの日付でソートする事もできますよね.

RDF/XML で記述すると,けっこう複雑に見えますが,普通は手書きで書く訳ではないですから.

ぼくは iCal を使ってスケジュール管理しています.その中でも公開するサイクリングの情報は,iCalender の .ics ファイルを XML に変換し,さらに RDF Calender や RSS に変換しています.それがさらに XHTML に変換されて,カレンダーのページになったり,Welcome ページのイベント情報一覧になったりしています.

その作業は Mac OS X でスクリプトを起動すれば,Web の更新まで全自動です.

きっと RSS 2.0 用に Really Simple な規格を考えて普及させようって事なんだろうなぁ.RDF をベースに Semantic Web を考えている側からは,それを RDF に変換する方法だけ確立しておけばいいのかな.

これから寝て,起きたら松本に向けて出発です.ツール・ド・美ケ原という自転車でのヒルクライムレースに参加して来ます.今回はタンデム自転車で参戦です.さてはて.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050625n1 TrackBack