feed/id や feed/entry/id はどうなっているのだろうかと、いくつかの Atom Feed の中やサンプルを見てみると、次のようなものが多いようです。
urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
http://example.org/blog/a-day-at-the-beach.xhtml
tag:blogger.com,1999:blog-1509463847369212828.post-8271786567008127478
tag:flickr.com,2005:/grouppool/322338@N20/photo/56104498
The Atom Syndication Format によると、atom:id の値は IRI にしなさいとあります。また、その値は、グローバルでユニークにしなさいともあります。が、その IRI を使ってどのような atom:id を割り振ればよいかといった指針は示されていません。
で、そこが知りたいのよーと探してみると、
How to make a good ID in Atom にそのヒントがありました。
次のように、atom:id は feed/link や feed/entry/link の URL と同じでいいと思っていましたが、atom:id は普遍性が要求されるため、URL が変わったとしても atom:id は変えてはいけないようです。
ので、このような状況になると atom:id の意味づけや運用に支障が出てきそうです。ちなみに atom:id が示したリソースが実存する必要性はないようです。
http://example.org/blog/a-day-at-the-beach.xhtml
次のように UUID を使うという方法もあるようです。ただ、こうすると、URL と UUID の対応表を保持しないといけませんね。
urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a
次のように
The 'tag' URI Scheme を使うという方法もあるようです。調べた範囲ではもっとも使われている方法でした。
blogger.com は、ブログとエントリの単位でユニーク値を付与し、その値を組み合わせて Tag URI としています。UUID と同じく URL との対応表が必要ですが、blogger.com (と年) をスコープにしている点が異なります。
filckr.com は URL をそのままマッピングしています。これだと前述のとおり URL が変わったときに不都合がありそうです。
tag:blogger.com,1999:blog-1509463847369212828.post-8271786567008127478
tag:flickr.com,2005:/grouppool/322338@N20/photo/56104498
う~む。私も自前の Atom Feed を設計しているのですが、atom:id をどう割り振ろうかとよっと悩んでしまいました。
サイトの構成を変えない前提とすれば、atom:id と URL は同じでよい気がしています。filckr.com が Tag URI にしている根拠はどこにあるのだろうか。まだ私の理解の曖昧さがあるのだろうか。
サイトの構成を変えることを前提とすれば、blogger.com と同じように、サイト内でユニーク値を付与して、その値と URL の対応表を保持すればよい気がしています。
将来のことを考え過ぎると、前に進めなくなりそうなので、前者の atom:id と URL を同じにする案でいこうかなぁと・・・でもなんかシックリこないので、もう少し保留にします。