RSSはすっかりなじみ深いものになりましたが,仕様や運用を詳しく見ていくと問題がないわけではありません.中でも,ずっと前から気になっていて,いまだに解決されていないのが,古いブログの記事にRSSがついていないという問題.ブログにおけるRSSの位置づけが最新情報の通知だったこともあって,常に最新エントリー○件が載るような運用になっているのですが,RSSを「扱いやすい生データ」として考えるようになったときに,古い記事の情報がRSSの中から消えてしまうのは非常に都合が悪い.これについて実際に不便が生じているという事例が,「naoyaのはてなダイアリー - はてなブックマークの概要取得の処理」で指摘されています.RSS検索エンジンは頻繁にRSSの更新をチェックして,過去のデータを貯め込んでくれてはいますが,これによってデータが全て揃うかどうかは保証できません.
であれば,ブログの記事1つあたり1つのRSS(のようなメタデータ)をつけるという決まりを作ればいいのではないか,というのが「PermaRSS」のアイデアです.このアイデア,学会では2年前ぐらいから発表していたのですが(検索結果),ブログには1度も書いていなかったことが判明して反省してます...それはともかくとして,PermaRSSの基本仕様はRSSと同様のメタデータを記述する方法の定義と,XHTMLの中にそのメタデータの存在を示す方法の定義から構成されます.なお,今回はRSS 1.0に準拠した仕様を考えていますが,RSS 2.0やAtomについてもそれぞれ同じように仕様を策定する必要があります.
PermaRSSメタデータフォーマット
(ファイルのURI:http://blog.goo.ne.jp/glucose_goo/permalink0001.rdf)
PermaRSSを示すXHTMLタグ
仕様,と大層なことを言っていますが,特別なことは何もしていません.RSS 1.0の構造に完全に準拠しています.<trackback:ping>はこれを機に入れてみてはどうかという提案ではありますが,本当は入れたいモジュールが山ほどあって,これらを仕様レベルに落とし込むのは大変そうです.とりあえず,それ以外でぱっと思いつく議論のしどころは以下の通り.
・PermaRSSという名前でよいのか(おおむかいが勝手につけた名前なので)
・RSSとは別の名前空間で語彙を再設計すべきか(したくない…)
・<channel>はサイトかPermalinkか(個人的にはサイトに1票.RSSと同じにしたい)
これらが解決して,実際に運用が始まれば冒頭の問題は解消しそうです.ただ,せっかくここまでやるのであれば,もう1歩踏み込んで,「あるサイトにどれだけのPermalinkが存在していて,そのURIが何なのかがわからない」という問題の対処として,Google SitemapのXMLフォーマットを組み込むことも検討したいところです.そうすることで,あるサイトにたどりついた時に,そこに存在するすべてのコンテンツについてPermaRSSが取得できるようになることが期待されます.このあたりはブログツールの実装を含めた大きな話になっていきますが,できるところから議論を進めていければと思います.
であれば,ブログの記事1つあたり1つのRSS(のようなメタデータ)をつけるという決まりを作ればいいのではないか,というのが「PermaRSS」のアイデアです.このアイデア,学会では2年前ぐらいから発表していたのですが(検索結果),ブログには1度も書いていなかったことが判明して反省してます...それはともかくとして,PermaRSSの基本仕様はRSSと同様のメタデータを記述する方法の定義と,XHTMLの中にそのメタデータの存在を示す方法の定義から構成されます.なお,今回はRSS 1.0に準拠した仕様を考えていますが,RSS 2.0やAtomについてもそれぞれ同じように仕様を策定する必要があります.
PermaRSSメタデータフォーマット
(ファイルのURI:http://blog.goo.ne.jp/glucose_goo/permalink0001.rdf)
<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns="http://purl.org/rss/1.0/"> <channel rdf:about="http://blog.goo.ne.jp/glucose_goo/(サイトのURI)"> <title>Semantic High!(サイト名)</title> <link>http://blog.goo.ne.jp/glucose_goo/(サイトのURI)</link> <dc:date>2005-12-11T00:00:00+09:00(Permalinkの更新日時)</dc:date> <items> <rdf:Seq> <rdf:li rdf:resource="http://blog.goo.ne.jp/glucose_goo/permalink.html (PermalinkのURI)" /> </rdf:Seq> </items> </channel> <item rdf:about="http://blog.goo.ne.jp/glucose_goo/permalink0001.html (PermalinkのURI)"> <title>PermaRSSについて(エントリーのタイトル)</title> <link>http://blog.goo.ne.jp/glucose_goo/permalink.html(PermalinkのURI)</link> <dc:date>2005-12-11T00:00:00+09:00(Permalinkの更新日時)</dc:date> <trackback:ping rdf:resource="http://blog.goo.ne.jp/glucose_goo/tb.php (トラックバック用URI:オプション)"/> <description>(エントリーの本文)</description> <content:encoded><![CDATA[(エンコードされたエントリーの本文:オプション)]]> </description> </item> </rdf:RDF>
PermaRSSを示すXHTMLタグ
<link rel="alternate" type="application/rss+xml" title="PermaRSS" href="http://blog.goo.ne.jp/glucose_goo/permalink0001.rdf" />
仕様,と大層なことを言っていますが,特別なことは何もしていません.RSS 1.0の構造に完全に準拠しています.<trackback:ping>はこれを機に入れてみてはどうかという提案ではありますが,本当は入れたいモジュールが山ほどあって,これらを仕様レベルに落とし込むのは大変そうです.とりあえず,それ以外でぱっと思いつく議論のしどころは以下の通り.
・PermaRSSという名前でよいのか(おおむかいが勝手につけた名前なので)
・RSSとは別の名前空間で語彙を再設計すべきか(したくない…)
・<channel>はサイトかPermalinkか(個人的にはサイトに1票.RSSと同じにしたい)
これらが解決して,実際に運用が始まれば冒頭の問題は解消しそうです.ただ,せっかくここまでやるのであれば,もう1歩踏み込んで,「あるサイトにどれだけのPermalinkが存在していて,そのURIが何なのかがわからない」という問題の対処として,Google SitemapのXMLフォーマットを組み込むことも検討したいところです.そうすることで,あるサイトにたどりついた時に,そこに存在するすべてのコンテンツについてPermaRSSが取得できるようになることが期待されます.このあたりはブログツールの実装を含めた大きな話になっていきますが,できるところから議論を進めていければと思います.
わたしが作ろうとしている自作ブログシステムにも、個別記事に対してRSSを置こうとしていたので、勢いでコメントします。
何も変わったことはしてなくて、記事内容の修正と、新規コメントと、関連記事の追加(これはわたしのシステム特有の機能です)の情報を、それぞれ#fragment付きのLINKと共に記述するものです。
descriptionには要約しか載せないつもりなので、「コンテンツのメタデータ」というおおむかいさんの思想とは別物かもしれませんが。
hidden movie xxx [url=http://toskani.bloglots.com/13/]hidden movie xxx[/url]