URI

URI (Uniform Resource Identifier), can be a URL (locator, most common case) or a URN (name).

The URI should include trailing # or /. The character "#" is used to delimit a URI from a fragment identifier in URI references.

Generic Syntax
Generic Syntax

URI & RDF
In case of RDF resp. the semantic web that means: If one has declared rdf:id="Thing" and xmlns="http://kwarc.eecs.iu-bremen.de/" (or xml:base) then the resolved URI would be http://kwarc.eecs.iu-bremen.de/Thing and http://kwarc.eecs.iu-bremen.de/Thing# respectively. So the generic document Thing at kwarc.eecs.iu-bremen.de would be referenced. If, however, the namespace declaration ends-up with a trailing # like http://kwarc.eecs.iu-bremen.de# then the resolved URI would be http://kwarc.eecs.iu-bremen.de#Thing which correctly identifiers a RDF concept Thing.

In other words (cf. [1]): So that each RDF concept (classes and properties) has a fragment identifier, the hash-sign (#) should follow the URI when declaring XML namespaces in RDF. This is because the RDF parser is supposed to simply concatenate namespace with the element name to get the expanded name. Although this is not compliant with the XML-Namespaces-rec, this is a good way to take profit of the namespace mechanism and still work with simple URIs.
 * Why is it not compliant with the XML-Namespaces-rec? I didn't understand that. --Clange 00:27, 3 August 2006 (CEST)
 * I am not quite sure and I do not have any reliable referenze yet, but I guess this is because namespace usually do/should not end-up with a trailing # but a /. --Nmueller 14:01, 3 August 2006 (CEST)

Resources

 * 1) The hash-sign (#) following the URI
 * 2) URI References: Fragment Identifiers on URIs