The more I learn about linking, the more I learn that creating links and user interfaces for them may be fun, but the difficult work of creating a reliable addressing system comes first. Otherwise, how do you name the thing you want to link to? The reason I enjoy hearing about new addressing possibilities, like the trick for linking to specific pages of a PDF file, is because of the new opportunities it presents for linking—someone bothered to do some addressing work, so my links have more possibilities.
When Tim Berners-Lee invented the web, the a element with its href attribute was the easy part; the tough part was the creation of the addressing system. As URLs evolved to sometimes represent addresses, sometimes represent names, and sometimes represent both, it has gotten a bit messy. Dan Connolly, who has played a key role in the development of HTML, XML, and the web since shortly after Berners-Lee put together his first prototype server and browser, has written an excellent IBM developerWorks article that explains the history of URLs and their relationship to URIs, URNs, and IRIs. The article even covers the PURL and DOI addressing systems, which I’ve been meaning to research and write about here for a while. If you’re interested in gaining a solid understanding of the design issues affecting the naming and addressing of resources on a network, particularly the web, I strongly recommend Dan’s article.