Hash URIs

On ontologies and # URIs

(Back to URI documentation, URI documentation protocol)

We have no difficulty with URIs containing the # character per se, but current practice is that the URI documentation (the document found by following the documentation URI, which is the URI truncated starting with the #) in this case will usually talk about not just the URI in question but lots of other URIs as well. We ask that if the URI has a # in it then no other URIs (Stuart Williams puts in a plea for allowing a small number of tightly related URIs) should share the same documentation URI.

For large URI sets, such as those that might be associated with PubMed, using # for multiple URIs would be a disaster as there are millions of PubMed records.

"Hash" (#) URIs are often used to flag that the URI is meant to be used to name something, especially something such as a class, relationship, or anything else that isn't web-page-like. However URIs without # work just as well, thanks to W3C's 2005 httpRange-14 protocol innovation. See URI documentation protocol. If the URI documentation only describes the referent of one URI, then there is little reason to use a # URI, which would be redundant and would dilute the effectiveness of prefix abbreviation in RDF/XML and N3.

It has been argued that splitting documentation up into one URI's documentation per piece will lead to excessive network traffic, but it is best to access large collections of documentation via SPARQL or bulk downloads in any case.

A number of URIs that we like to use, such as those for RDF Schema and OWL, contain #, so software that needs to be able to track down URI documentation should be prepared to understand # URIs and deal with what comes back. But if you're coining new URIs for use with Neurocommons and more widely on the Semantic Web, kindly avoid #.