From W3C Wiki
Jump to: navigation, search

When deciding whether to use a URI with or without fragment identifier (aka HashVsSlash), ask yourself the question: "will users want to interact with this resource independently of any other resource?". If the answer is yes, then don't use a URI with fragment identifier. If the answer is no, then it would be acceptable to use a URI with fragment identifier.

A a URI with fragment identifier provides *indirect* access to representations of the resource denoted by that URIref, and thus doesn't benefit from things like HTTP caching and redirection in the same way. Resources which are denoted solely by URIrefs with fragment identifiers ("secondary resources") are "second class web citizens", and those who are choosing which URIs to use to denote their resources should give sufficient thought to whether they expect that users will want to interact with that resource (access representations of that resource) directly, without having to first access the representation of some other resource.

For logical subcomponents of documents (e.g. the chapter of a book, the section of a web page) it is reasonable, even preferable, to expect users to access "secondary resources" via the representation of the entire document -- and it is usually unlikely that they would access such subcomponent resources separately (though existing modular documentation systems, including some that I myself have built, benefit far more from using URIs without fragment identifiers for individually managed sub-components).

As vocabulary terms should certainly be considered first class citizens of the web if we expect the semantic web to scale, Vocabulary terms should always be denoted with URIs without fragment identifiers.

While RDF/XML (or other) documents may define some or all of the meaning of such terms, it is hard to consider those terms "subcomponents" of a schema document (even if the section (element) defining a given term is clearly a subcomponent of the schema document). Also, a given term may be fully defined by a collection of documents, not solely in a single document, so access to the complete definition of that term cannot be achieved via the single representation of only one document, so it is far less useful to employ a URIref which presumes such a limited form of access.

factored out of HashSlashDuality