- From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Date: Mon, 15 Apr 2002 14:15:21 +0100
- To: "Williams, Stuart" <skw@hplb.hpl.hp.com>
- Cc: <www-xml-linking-comments@w3.org>, <uri@w3.org>
Summary: RDF Core's interpretation of same-document references within RFC 2396 is legitimate. And even if it isn't, it is a legitimate interpretation of a same-document reference within an RDF document! Jeremy: > > e,f,i,j,k,l > > Base does apply to same document references in RDF/XML Stuart: > I think that you're changing the semantics of URI references as defined in > RFC2396, particularly section 4.2, same document references. I think your > answers would be correct only for those cases where the in-scope base URI > and the URI from which the document were retrieved are the same. Stuart's point of view was expressed clearly (and repeatedly) to the RDF Core WG during the decision process e.g. issue #1 in http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Feb/0516.html Jeremy: > The positive tests on the test cases web site show a usage of xml:base > in RDF/XML and the resolution of that usage in terms of the RDF graph > produced (with absolute URI ref labels). Paul: > It is important that RDF and everyone > else realize that use of XML Base requires compliance with RFC 2396 which > requires that relative URI references consisting of just the fragment id > ignore any base URI and instead always refer to a fragment id within the > current document. I do not recall the RDF Core WG having resolved a justification of the decision in favour of the these test cases. Hence I will give my own justification. First: The actual decisions of the RDF Core WG reflect what 'same document references' mean within an RDF/XML document within the scope of an xml:base attribute. Primarily the WG decisions reflect the meaning of RDF/XML rather than XML Base of RFC 2396. However, these decisions do point to weaknesses in RFC 2396. The RDF Core WG has consistently (with or without xml:base) interpreted all uri references as absolute uri references. The decisions clarify that when the normal uri resolution mechanisms deliver a same document reference, we form the absolute uri ref using the currently in scope xml:base uri. Second: The definition of same-document references is unfortunately focussed on browsing: [[[ 4.2. Same-document References 1 A URI reference that does not contain a URI is a reference to the 2 current document. In other words, an empty URI reference within a 3 document is interpreted as a reference to the start of that document, 4 and a reference containing only a fragment identifier is a reference 5 to the identified fragment of that document. Traversal of such a 6 reference should not result in an additional retrieval action. 7 However, if the URI reference occurs in a context that is always 8 intended to result in a new request, as in the case of HTML's FORM 9 element, then an empty URI reference represents the base URI of the 0 current document and should be replaced by that URI when transformed 1 into a request. ]]] line 3 "start of that document" is meaningless for an RDF document. RDF is a graph and is not a linear structure. line 6 "no additional retrieval action" All URIrefs in RDF are absolute, and none are retrieved accept when the application content "is always intended to result in a new request". The RDF Core is trying to clarify which absolute URI ref corresponds to a same document ref. line 9 The answer, at least for empty same document refs, it is the "base URI". We discover what a base URI is in section "5.1 Establishing a Base URI" [[[ 5.1. Establishing a Base URI The term "relative URI" implies that there exists some absolute "base URI" against which the relative reference is applied. Indeed, the base URI is necessary to define the semantics of any relative URI reference; without it, a relative reference is meaningless. In order for relative URI to be usable within a document, the base URI of that document must be known to the parser. ]]] I note that the algorithm in 5.2. Resolving Relative References to Absolute Form amongst its defects, does not implement line 9 of section 4.2. Once we are dynamically changing the xml:base from one element to the next, we are outside the design bounds of RFC 2396. If we consider only documents with a single xml:base on their outermost elements, then as far as RDF goes, the resolution of the same document test cases is consistent with section 4.2 of RFC 2396. A same document reference, like any uri ref, in an RDF file means an absolute URI ref. The absolute URI ref is formed by taking "the base URI" of the document, as suggested in line 9 of 4.2. The fragment part if taken from the same document reference. Jeremy > > EASY: > > a "http://example.org/dir/file" "../relfile" > > b "http://example.org/dir/file" "/absfile" > > c "http://example.org/dir/file" "//another.example.org/absfile" > > > > GETTING HARDER: > > d "http://example.org/dir/file" "../../../relfile" > > e "http://example.org/dir/file" "" > > f "http://example.org/dir/file" "#frag" > > > > MASTER CLASS: > > g "http://example.org" "relfile" > > > > h "http://example.org/dir/file#frag" "relfile" > > i "http://example.org/dir/file#frag" "#foo" > > j "http://example.org/dir/file#frag" "" > > > > k "mailto:Jeremy_Carroll@hp.com" "#foo" > > l "mailto:Jeremy_Carroll@hp.com" "" > > m "mailto:Jeremy_Carroll@hp.com" "relfile"
Received on Monday, 15 April 2002 09:17:46 UTC