weavin'

 | 

2005-01-180063

[][] RSS 1.1

RSS 1.1なるものが出てきました。RSS 1.0が持っていたバグを解消して、よりXMLライクにフィード情報を記述することができます。最新のRDF仕様にも沿うようになっていて、別の語彙との組み合わせもうまくできそうです。

どのように変わったかは次の通り。大きなものを挙げています。

ルート要素がrdf:RDFではなくなった
RSS 1.1のルート要素は、1.0のrdf:RDFとは違いrss:Channelとなっています。これは昨年RDF/XMLの仕様が「rdf:RDF直下にトップレベル要素がひとつだけしかない場合は、rdf:RDFを省くことができる」ように改訂されたことで可能となりました。RDF/XML Spec 2.6にて解説されています。このようにできるだけRDF色を薄くしている試みがRSS 1.1では取られています。
itemsの直下にitemをおくようになった
RSS 1.0では各itemの順序を記述するためのitems要素と、itemの情報を記述するitem要素が兄弟として存在していました。items要素の中にもitem要素にも、リソースのURLを記述しなければならず面倒なものだったのですが、parseType="Collection"の導入で、items要素直下にitemを記述することができるようになりました。これにより前述したrdf:RDF要素の省略が可能となっています。
itemのrdf:aboutがoptionalとなった
RDFの仕様上rdf:aboutの値が重複してしまうと、そのURLのもとに情報がマージされてしまいます(そのようなフィード情報の使い方ってどうなのよとは思いますが、それはそれで)。これを避けるため、RSS 1.1のitemではrdf:aboutをoptionalとしました。そのためもしitemにrdf:aboutがある場合は、その値は必ずユニークでないといけないことになります。というわけで参照先のURLはlink要素に記述することとなります。
linkのdatatypeがxsd:anyURIとなった
RSS 1.1でもlink要素はリテラルを内容に持ちます。しかしXML SchemaのdatatypeであるanyURIをlink要素の型としているため、link要素の内容をURIとみなすことができ、リソースとリソースをつなげることの助けになります。
contentモジュールの代わりにpayloadモジュールが導入された
payloadモジュールというものがcontentモジュールの置き換えとなりました。parseType="Literal"を用いることでpayload要素内にそのままXMLの内容を記述できます。CDATAセクションではなくなったため、payloadモジュールの中身はXMLしか記述できないことになります。

とまぁ、RDFとXMLからなる奇々怪々だったRSS 0.9および1.0に比べるとだいぶすっきりしていて、ヒューマンフレンドリーになった感があります。RDF的な意味づけもきちんとされていますし、RDF Site Summaryに対する不満が結構解消されました。

なんでitemはChannelやItemsみたくcapitalizeされてないんだろうとか、変な疑問はありますが、期待したいです。

なお編者のひとりChristopher Schmidtが次のようにRSS 1.1の位置づけをしています。

This specification is not designed as competition for Atom: it is designed only as a bugfix release for RSS 1.0, and is not designed to compete with any other existing efforts.

あくまでRSS 1.0の不具合を解消しただけで、Atomとかと競合するものではないとのこと。

なお実装については、Rough Guide to RSS 1.1にてプラグインやコンバータなどが出されています。

OWLにちょっと不具合があるようですが、次の版で修正するとのこと。

以上、大幅に書き直ししました。

[][] More on RSS 1.1

RSS 1.1についてもうちょっと。

まず、ちょっとしたメモでitemsが閉じたリストになるのは違和感がある。とあるように、itemsをCollectionとしてしまうことについて少しはてながあります。CollectionはLinkedListと同じモデルを取っているため、プロパティがparseType="Collection"となっているものは、そのメンバ数が固定されることとなります。このため、Channelのrdf:aboutにフィードではなくweblogのURLを記述してしまうと、あたかもweblogはitems内にある要素の数のみしかitemを持っていないように取られてしまいます(フィード自体のURLではよいような気もしますが、それも引っかかるかも)。さっき質問してみたのですが、うまく伝えられなかったのでちょっとせつないです(ただ、itemsというプロパティの定義によってうまく解釈できるんじゃないかという答えみたいなものはもらった)。

木構造がかなり大きく変わったことに対してですが、フィードという人間に近い情報記述フォーマットにおいてRDF的な要素はやはり複雑なわけで、それらを取り除いたことは評価できると考えています。FOAFはほんのちょっと癖があるものの、RSS 1.0ほどRDFRDFしていなかったわけで、XML的なものをRDFにするという進め方はフィードに関してはよいものととらえられます。あと汎用リソースコンテナとする場合に、URIのRedundancyがなくなることが楽かなと。

混乱とか食傷気味とかそういうのはもはや意味を成さないのでノーコメント。

 | 
© 2004 kota.