RFC 3986 defines the syntax of URIs. When used with linked data only scheme and hier-part are significant; query and fragment are ignored.
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"