Frank Sommers discusses about supporting content negotiation or alternate URLs. Source of this discussion is a series of articles on a meaningful web for humans and machines (Part 1 and Part 2) by Lee Feigenbaum and Elias Torres. The articles explore techniques for a parallel web, one for the humans and the other for the machines.
Parallel Web
In essence, today Web is about serving the humans in different formats. For example, you can read this blog by visiting the URL or by subscribing to its feed or by clicking on a search result via a search engine. In all of these cases, you will end up using different intermediate software, like the feed reader or the search engine. To enable this, this blog has to serve you directly, serve the search engines and the feed readers, with a format their own understands. The two techniques of parallel web that were discussed in the articles were:
- Provide separate URLs for each of the formats, e.g., different URLs for the blog and its feed. This is what this blog follows currently. Even if they are separate, the URL for feeds is auto-discoverable. That is, with most feed readers, even if you just enter the blog URL, it will be able to detect URL for the feed.
- Provide a single URL for all the formats, and use content negotiation to request a specific format. That is, the URL of this blog can be used by you, as well as by the feed reader, there is no other URL for the feed reader. Content negotiation is supported inherently by HTTP. Web servers like Apache include support for it since a long time, an example is provided in the articles. Content negotiation can be effectively used to serve different mime-types to browsers depending on their compatibility, as illustrated by Roger Johannson.
In both the cases, the URLs serve you, and other softwares that help you read. This same fundamental, when applied to all the web applications, create two parallel webs - one for the humans and one for the machines.
I agree with Frank that these two are different approaches, and it is quite important to decide which to support. I think that using content negotiation can be simpler for the user from a usability perspective, as he/she will not have to look around for various URLs. This problem is solved to some extent by auto-discovery, but even that is going to require a manual intervention. However, I wonder if it would be so for people who are already used to separate URLs. By usage the paradigm of separate URLs for separate format has become simple, anything simpler can actually seem more complex. This is the only skeptical thought I have right now, otherwise I think content negotiation should get used more.

