URI are Opaque

URI are opaque, and suggested they should be many times over. Back in the day it was useful to atribute meaning to their parts because our tools didn't free us from them.

<http://state.ga.us/atlanta/weather.html> provides obviously provides weather information for Atlanta as an HTML doucment. It's easy to relatively easy to remember for humans, both to tell them about where they've arrived and how to get to Atlanta's weather on the Web.

What would we do if URIs were actually opaque? Well, more than relying more on our tools, our tools could do more for us. Leave the addressing (URI's) to the machines, wouldn't we rather talk about resource titles, dates, formats, styles, and other metadata? Sure we would. And to do this relying on (non-opaque) URI's would be horrible. Some were used like file extentions to denote type (eg. ".html" = "text/html"), language preference (index.en.html). But what about when we want a different style, dimension, or size? Yeah, we could make up some more conventions to encode these preferences into the URIs, but lets not, really.

The solution is to describe resources and all their relationships, and have those instances mapped to URI's, but our use of the resources (URI's) happens through the richer interface possible by all the metadata about the URIs.