- From: David Booth <david@dbooth.org>
- Date: Wed, 29 May 2013 01:10:00 -0400
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- CC: public-rdf-comments@w3.org
Hi Markus, I think my reply back to Andy addresses everything that you brought up: http://lists.w3.org/Archives/Public/public-rdf-comments/2013May/0178.html If not, let me know and I'll clarify further. Thanks! David On 05/28/2013 06:57 PM, Markus Lanthaler wrote: > On Monday, May 27, 2013 5:36 AM, David Booth wrote: >>>> That would require a relative URI specified in >>>> @base to be resolved using "Reference Resolution", which is >>>> specified in section 5 of RFC 3986. But the result of >>>> "Reference Resolution" is "a >>>> string matching the <URI> syntax rule of Section 3", and the <URI> >>>> production *allows* a fragment identifier. >>> >>> And why should that be a problem? >> >> Because a base URI as defined in RFC 3986 does not permit a fragment >> identifier. Therefore, if @base specified a relative URI which was >> resolved using RFC3986 "Reference Resolution" then the result could >> contain a fragment identifier. Thus, a Turtle "base URI" could contain >> a fragment identifier, whereas an RFC 3986 "base URI" does not permit a >> fragment identifier. > > No, that's not correct. Even if the base contains a fragment identifier the > result of resolving any relative IRI (even the empty string "") will result > in a URI which does not contain the fragment identifier. Thus it really > doesn't matter. The fragment identifier will be ignored in any case. > > >>> It is aligned with the two RFCs. There might be a case where you >>> can't resolve a relative @base as the document itself has no IRI >>> but that's the >>> same problem as not being able to resolve relative IRIs anywhere else >>> in such a document. >> >> If it is aligned with RFC 3986 and 3987 then the alignment certainly is >> not very visible. I spent quite a lot of time trying to track it down, >> and finally concluded that nothing in the Turtle spec requires Turtle's >> notion of a base URI (which AFAICT is specified using @base) to be an >> absolute-IRI as defined in those RFCs. Can you please point me to the >> exact wording that requires a Turtle base URI to be an absolute-IRI? > > @base enables to establishment of the base URI, it is not the final URI. If > base contains a relative IRI it is resolved against the document's URI or > the application supplied base to obtain the final base URI. > > >> [...] >> >> Notice that it only references RFC3986 sections 5.1.2 and 5.1.3, which >> only talk (vaguely) about where the base URI might come from. Those >> sections do not constrain the base URI to be an absolute-URI. It is >> the >> beginning of RFC3986 section 5.1 that constrains a base URI to be an >> absolute-URI, and that portion is *not* referenced by the Turtle spec. > > Yes, in the end you need an absolute URI otherwise you can't resolve > relative ones. There a number of "layers" where the base might come from. > @base -> document URI -> application supplied. I'm writing this mail offline > so I can't give you the exact section in the RFC, but that's explained there > as well. > > >> The last sentence of that second paragraph in Turtle section 6.3 does >> say "Each @base directive sets a new In-Scope Base URI, relative to the >> previous one", and I guess that sentence is the justification for why >> you and Andy are saying that @base can specify a relative URI. But > > Yes > > >> knowing that RFC3986 requires a base URI to be an absolute-URI, I had >> understood that sentence to mean "Each @base directive sets a new >> In-Scope Base URI, [in relation to] to the previous one", i.e., it is >> new in relation to the previous one. I had no idea it was suggesting >> that @base could specify a relative URI. >> >> Bottom line: >> >> - This stuff is not at all clear in the current wording. > > I find that quite clear and in-line with what, e.g., HTML does. Can you > suggest some concrete wording which would make it clearer? > > >> - If @base is permitted to specify a relative IRI then: (a) an >> explanation should be added to explain how that relative IRI is >> converted into an absolute-IRI (including what happens to any fragment >> identifier that the relative IRI contains); and (b) Turtle will not be >> aligned with SPARQL in this regard. > > The RFC's explain how a relative IRI can be resolved against a base to an > absolute IRI. @base does nothing special here. Isn't referencing the RFC > enough? > > >> - If @base is NOT permitted to specify a relative IRI then the Turtle >> spec should make clear that @base must specify an absolute-IRI, in >> alignment with SPARQL. > > That's not the case. > > >> I was not aware that HTML allowed base URIs to be relative, but, it >> seems more important to align Turtle with SPARQL than with HTML. Plus >> it would also be simpler. > > What's the advantage of such a restriction? If someone wants to use absolute > URIs that's fine. It doesn't add any complexity because the URI resolution > algorithm have to be implemented in any case. > > > > -- > Markus Lanthaler > @markuslanthaler > > > >
Received on Wednesday, 29 May 2013 05:10:28 UTC