RSS 1.1のドラフトというものが出てきた。RSS 1.0のRDF/XML構文の取っつきにくさや、定義上の不明確な点を改良したという位置づけらしい。詳しく検討する時間がないので、評価は保留としておくが、ざっとみたところいくつか疑問はある。
簡単な例(上記暫定仕様のものを編集):
(例)
<Channel
xmlns="http://purl.org/net/rss1.1#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="http://www.xml.com/xml/news.rss"> <title>XML.com</title> <link>http://xml.com/pub</link> <description>.....</description> ... <itemsrdf:parseType="Collection"
> <item
rdf:about="http://www.xml.com/pub/a/2005/01/05/restful.html"> <title>The Restful Web: Amazon's Simple Queue Service</title> <link>http://www.xml.com/pub/a/2005/01/05/restful.html</link> <description>In Joe Gregorio's latest ....</description> </item> .... <item
> <title>Transforming XML: Extending XSLT with EXSLT</title> <link>http://www.xml.com/pub/a/2005/01/05/tr-xml.html</link> <description>In this month's Transforming XML column...</description> </item> </items> </Channel>
構文上の大きな違いは、(1)rdf:RDF
要素を用いずに、Channel
を文書要素としていること;(2)items
要素(プロパティ)の目的語をコンテナ(rdf:Seq
)にせず、コレクションを用いてitem
要素をitems
の子要素にしていること;の2点だろう。(1)はまぁどっちでもよいことだが、(2)でコレクションを持ってくるのは、モデルとしては疑問が残る。構文的にitems直下にitemを書きたいというだけだろうが、itemsが閉じたリストになるのは違和感がある。
item要素のrdf:about
属性はオプションになっている。理由は、ひとつのRSSで同じURI参照を持つitem要素が複数ある(たとえば更新履歴のようなケース)とそれらがマージされてしまうため、その場合はitemを空白ノードとして扱えるようにということだ。これは、本来はフラグメント識別子を加えるなどしてURI参照自体を区別するべきで本末転倒だと思うが、RSSをもっと幅広いメタデータのコンテナとして考える場合、もしかしたら使い道があるかも知れない。
RELAX NGのスキーマやらオントロジー、ツール、テストケースまでつくってずいぶん気合いは入っている。しかし、XML構文的にはすっきりするものの、RDFとして見たときは今ひとつしっくり来ない。それに、RSS1.0の構文が多少複雑だからといって、それを手書きするケースなんてほとんどなく、リーダーでも問題なくパースされているのだから、この上フォーマットを増やさなくてもいいようなものだが。
以上、速報と第一印象。