Turtle syntax: Please align base URI with RFC 3986 & 3987

AFAICT, the current Turtle syntax rules permit a base IRI
http://www.w3.org/TR/turtle/#grammar-production-base
to include a hash ("#"):

   BASE <http://example/foo#>

However, the URI specification, RFC 3986,
http://www.ietf.org/rfc/rfc3986.txt
in section 5.1 forbids a hash in a base URI:

    "A base URI
    must conform to the <absolute-URI> syntax rule (Section 4.3).  If the
    base URI is obtained from a URI reference, then that reference must
    be converted to absolute form and stripped of any fragment component
    prior to its use as a base URI."

Turtle spec section 6.3
http://www.w3.org/TR/turtle/#sec-iri-references
does refer to other portions of RFC 3986, but not the portion that
requires the base URI to be an absolute URI.

Please align the Turtle spec with RDF 3986 by requiring that a base URI
be an absolute-IRI as defined in RFC 3987.

I see that the SPARQL spec does explicitly say:
http://www.w3.org/TR/sparql11-query/#iriRefs
"Base IRIs declared with the BASE keyword must be absolute IRIs".

Therefore, I suggest:

  - Add the following sentence to section 6.3: "Base IRIs declared with
the @base or BASE keyword must be absolute-IRIs as defined in RFC3987."

  - Add the following comment to syntax rules 5 and 5s:

[5] 	base 	::= 	'@base' IRIREF '.'      /* See also Sec. 6.3 */
[5s] 	sparqlBase 	::= 	"BASE" IRIREF   /* See also Sec. 6.3 */

Thanks,
David

Received on Sunday, 26 May 2013 03:04:30 UTC