I Am Globally Unique

As I pore over the Atom syndication format for a writing project, I'm bumping into things that are new to me and probably old hat to the developers working on it.

Atom includes an optional id element that provides a globally unique, never-changing identifier for a feed. One purpose of this element is to make clients smarter about syndication feeds that change URLs: If a client finds a feed at a new URL with an id it recognizes, it can stop looking for the feed at the old URL.

An Atom identifier uses a new naming scheme called the Tag URI that can be adopted for any purpose by anyone who owns an Internet domain name or e-mail address.

To create one, follow the text "tag:" with the domain or e-mail address, a comma, a date that you controlled the address in YYYY-MM-DD format (today is a good choice), a semi-colon, and a short name you haven't already used in an identifier on that date.

For example, I hereby declare that my globally unique identifier is tag:cadenhead.org,2004-05-17:Rogers. If you encounter someone named Rogers Cadenhead from this point forward, you can verify that it's me by asking for his Tag URI.

As Phil Ringnalda notes, the implementation of this feature in Movable Type's Atom template is incorrect because all three elements of the identifier might change (and the date changes often). I've verified this in versions 2.661 and 3.0D. A Tag URI must not change after it has been created.

The easiest way to fix this in Movable Type is to remove the element by deleting the following line from the template:

<id>tag:<MTBlogHost exclude_port="1" encode_xml="1">,<MTDate format="%Y">:<MTBlogRelativeURL encode_xml="1">/<MTBlogID></id>

It also can be fixed by coining your own Tag URI for the weblog, as in this example:


Add a Comment

All comments are moderated before publication. These HTML tags are permitted: <p>, <b>, <i>, <a>, and <blockquote>. This site is protected by reCAPTCHA (for which the Google Privacy Policy and Terms of Service apply).