RE: RDF and xml:base

This discussion seems to be getting hung-up on possibly side issues.

Can I, or can I not do this:

   <rdf:RDF xmlns:rdf='...' xmlns:ex='http://example.org/'
            xml:base='http://example.org/Base/' >
     <rdf:Description rdf:ID='localID'>
       <ex:property>PropVal</ex:property>
     </rdf:Description>
   </rdf:RDF>

?

And if I can, what is the full URI of the resource identified locally as 
'localID'.

I have encountered a requirement to use this general form, or something 
like it, to assign a full URI to this resource.  My expectation was that 
xml:base used as above would provide for it to be defined as 
'http://example.org/Base/#localID'.

#g
--

At 11:11 AM 5/30/01 +0100, Lee Jonas wrote:
>Graham Klyne [mailto:GK@ninebynine.org] wrote:
>
> >OR:
> >
> >(3) use a protocol-independent way to communicate the document's URI;  i.e.
>
> >xml:base.
> >
>
>No!  xml:base is not intended to communicate the document's URI.  A
>document's URI and a base URI are two separate concepts.
>
> >From the XMLBase spec:
>
>[[
>4.1. Relation to RFC 2396
>RFC 2396 [IETF RFC 2396] provides for base URI information to be embedded
>within a document. The rules for determining the base URI can be summarized
>as follows (highest priority to lowest):
>
>The base URI is embedded in the document's content.
>
>The base URI is that of the encapsulating entity (message, document, or
>none).
>
>The base URI is the URI used to retrieve the entity.
>
>The base URI is defined by the context of the application.
>
>NOTE: The term "entity" in points #2 and #3 above uses the RFC 2396 meaning
>of the term. Elsewhere in this document the term "entity" is used in the XML
>sense.
>
>This document specifies the details of rule #1 for embedding base URI
>information in the specific case of XML documents.
>]]
>
>Hence xml:base is used to override any document URI for the resolution of
>relative URIs.
>
>Now, fragments are _not_ considered part of a URI.  From RFC2396 section 4:
>
>[[
>4. URI References
>
>    The term "URI-reference" is used here to denote the common usage of a
>    resource identifier.  A URI reference may be absolute or relative,
>    and may have additional information attached in the form of a
>    fragment identifier.  However, "the URI" that results from such a
>    reference includes only the absolute URI after the fragment
>    identifier (if any) is removed and after any relative URI is resolved
>    to its absolute form.  Although it is possible to limit the
>    discussion of URI syntax and semantics to that of the absolute
>    result, most usage of URI is within general URI references, and it is
>    impossible to obtain the URI from such a reference without also
>    parsing the fragment and resolving the relative form.
>
>       URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
>]]
>
>Hence '#fragment' is an empty URI (''), plus the fragment identifier.
>
>Again from RFC section 5.2, if a URI has no scheme, authority, path or query
>then it is a reference to the current document, and further processing of
>the URI is terminated.
>
> >The requirement I was imagining was not necessarily to preserve
> >persistence, but to provide a way for cross-referencing between multiple
> >transient subgraphs.  I.e. to reference resources defined by rdf:ID from
> >outside the document.
> >
> >#g
>
>
>You could still use a protocol-independent way to communicate the URIs
>associated with each transient graph, but xml:base is not it.
>
>regards
>
>Lee
>
>
>

------------
Graham Klyne
(GK@ACM.ORG)

Received on Wednesday, 30 May 2001 09:38:23 UTC