Conventions, Not Constraining Requirements
From Well Designed Urls WiKi
People involved with web standardization processes have a set of architectural principles they believe must be followed for proper functioning of the web. These principles come in the form of IETF standards referred to as Requests for Comment, a set of well-known axioms from Tim Berners-Lee, and a collection of recommendations from the W3C. Of the W3C recommendations, the most important one is Architecture of the World Wide Web and it's related findings.
Our position here at the Well Designed URLs Initiative is to completely respect these architectural principles, including all RFCs, axioms, and recommendations, and to make our recommendations within those confines.
However, some people have been concerned when our Principles call for conventions. They believe by calling for conventions we are somehow violating the principles of the World Wide Web. We believe that that is not the case. One of the fundamental axioms requires URLs to be Opaque so people say we should not specify conventions for metadata because others might take it as implicit permission to "peek" inside URLs when they haven't previously been given explicit permission by the web server owner.
However, even the W3C TAG finding "The use of Metadata in URIs" states (slightly edited for context and clarity) that it is:
- Good practice for web servers owners to "form an orderly mapping from resource metadata into URIs."
- Good practice for URIs intended for humans to be easy to understand and should suggest the resource actually named.
- Good Practice to use a file extension representative of a resource's media type.
The finding goes on to say (unedited):
- Constraint: Web software MUST NOT depend on the correctness of metadata inferred from a URI, except when the encoding of such metadata is documented by applicable standards and specifications.
By proposing conventions we are not trying to empower web clients to depend on metadata for which they have not received explicit permission; they should not. However, if we rigorously define those conventions is it possible that some of them may evolve to being applicable standards, in which case web software that retrieves URI metadata for URLs designed using the conventions will be perfectly conformant.
To use an analogy, consider the automobile. There are no set of rules that requires the driver seat to be on the left in countries that drive on the right side of the road. No; opposite side driver seats are only a convention, and a good one at that because they provide a consistent environment for drivers if they switch cars. This convention lessens the likelihood of driver disorientation and hence lessens the likelihood of a crash. The same goes for the pedal and steering wheel layout.
On the other hand, what side of the road you drive on matters a great deal, and there are laws that specify which side you may legally drive on. In addition, green lights allow a driver to continue on and a red lights require a stop, the latter of which is coded into law. If either of these two were not laws, there would be chaos on the road much as there would be chaos on the Internet if router vendors were to inspect URI metadata and attempt to transform it.
Back to conventions for automobiles, tire size and wheel bolt patterns are both conventions in most (all?) countries. But these conventions allow far greater interoperability and streamline and increase related commerce than if each auto manufacturer were to create their own custom wheel bolt pattern and tire size. On the other hand, these conventions don't limit engineers from creating their own custom wheels if the requirements depend on it, but when they do they loose the advantage of standard wheels and standard tires.
So it is the same for the conventions that we plan to recommend. They should never constrain a web server owner's freedom to implement whatever URL design he chooses, and they shouldn't create conflict with web software such as routers and proxies. But if they are well considered meaning we've done a good job, these conventions will improve interoperability and streamline and increase related commerce. And that's why we plan to recommend conventions.
See Also URLs vs. URIs

