<!DOCTYPE TEI.2 PUBLIC '-//C. M. Sperberg-McQueen//DTD
          TEI Lite 1.0 plus SWeb (XML)//EN'
          'http://www.w3.org/People/cmsmcq/lib/swebxml.dtd' [

<!ENTITY date.last.touched '22 June 2008'>
]>
<?xml-stylesheet type="text/xsl" href="../../../People/cmsmcq/lib/swebtohtml.xsl"?> 
<TEI.2 rend="w3c-public">
<teiHeader>
<fileDesc>
<titleStmt>
<title>Notes on bug 5542</title>
</titleStmt>
<publicationStmt>
</publicationStmt>
<sourceDesc>
<p>Created in electronic form</p>
</sourceDesc>
</fileDesc>
</teiHeader>
<text>
<front>
<titlePage>
<docTitle>
<titlePart>Notes on bug 5542</titlePart>
</docTitle>
<titlePart>Working paper for the W3C SML Working Group</titlePart>
<docAuthor>C. M. Sperberg-McQueen</docAuthor>
<docDate>&date.last.touched;</docDate>
</titlePage>
</front>
<body>
<p>This working paper contains some notes related to the resolution of
URIs in SML and SML IF.</p>
<p>It was constructed in some haste; the author apologizes if parts of it
are hard to follow.</p>
<div>
<head>Apparent inconsistency in definition and use of the term 'target-complete'</head>
<p>SML says (2.2):
<q rend="block"><p>
    A target-complete identifier is a URI or IRI that contains all the
    information required to locate a target of an SML reference. It is
    a consequence of this definition that a target-complete identifier
    cannot be a relative URI/IRI.</p>
</q>
</p>
<p>
This seems to say explicitly that "relative URI/IRI" and
"target-complete identifier" are disjoint classes.
</p>
<p>
But SML 4.3 says of references defined by some arbitrary reference
scheme:
<q rend="block"><p>
    An SML reference scheme definition MUST specify all of the
    following:
</p>
<p>
      ...
</p>
<p><list type="ordered">
<item n="3">
<p>An assertion that states whether or not the reference
   scheme uses target-complete identifiers. Using
   target-complete identifiers requires all the following:
<list type="ordered">
<item n="b">
<p>If these references are allowed to be relative
            references, i.e. they are not already target-complete,
            then some implementation-dependent base URI or IRI is used
            to resolve them to URIs or IRIs. (See section 5 of [IETF
            RFC 3986] and section 6.5 of [IETF RFC 3987].)  
</p></item></list></p></item></list></p>
</q>
</p>
<p>
If "relative URI/IRI" and "target-complete identifier" are disjoint
classes, this makes no sense.  If 3b makes sense, then the claim in
2.2 about the consequence of the definition of "target-complete" is
false.
</p>
<p>
I don't think I care how this is resolved, only that the terms be used
consistently.
</p>
</div>
<div>
<head>
Implementation-dependent base URI/IRI in SML reference schemes (general)
</head>
<p>
SML 4.3 point 3.b says that if a reference scheme requires
target-complete identifiers, and a relative reference is used, 
<q rend="block"><p>
    then some implementation-dependent base URI or IRI is used to
    resolve them to URIs or IRIs. (See section 5 of [IETF RFC 3986]
    and section 6.5 of [IETF RFC 3987].)</p>
</q>
</p>
<p>
Questions:  
<list type="ordered">
<item>
Does this mean that the definition of a reference scheme cannot (or
MUST NOT) forbid relative URIs?  I think it does not, since the phrase
"if these references are allowed to be relative references" suggests
that a schema MAY "allow" them to be relative (and thus may chooose
not to).
</item>
<item>
Does this mean that if a reference schema allows relative
references, then it MUST NOT specify an interoperable way to identify
the appropriate base URI?  If not, then what is the force of the
quoted material?
</item>
<item>
Does this mean that if a reference schema allows relative
references and does not specify an algorithm for identifying a base
URI, then it MUST NOT specify that the choice of the base URI is
implementation-defined (and thus must be documented)?  If not, then
what is the force of the quoted material?
</item>
<item>
Is it possible for a user to provide useful relative references,
which reliably capture the user's intention, without knowing how the
base URI used to absolutize the relative references will be chosen?
If so, is it wise to specify that the implementation need not
document its method of identifying a base URI?
</item>
</list>
</p>
</div>
<div>
<head>
Implementation-dependent base URI/IRI in SML URI reference scheme
</head>
<p>
SML 4.3.1 describes in list item 2 how SML references using the SML
URI reference schema are resolved.  Among other things, it says 
<q rend="block"> <p>If the URI is a relative reference, then use an
implementation-dependent base URI to resolve it to an URI.</p></q>
</p>
<p>One of the question evoked above by the general case is also
relevant here:<list>
<item>
Is it possible for a user to provide useful relative references,
which reliably capture the user's intention, without knowing how the
base URI used to absolutize the relative references will be chosen?
If so, is it wise to specify that the implementation need not
document its method of identifying a base URI?
</item>
</list>
</p>
</div>
<div>
<head>Base URI in SML IF</head>
<p>SML IF (4.1) says:
<q rend='block'>The first child of each document is typically a
docInfo element that contains a baseURI element and a list of alias
elements. The baseURI element can be used to specify a base URI for
relative references in the document. </q></p>
<p>Question:<list>
<item>Would it not be easier just to allow or encourage the
use of the <xref href="http://www.w3.org/TR/xmlbase/"><title>XML
Base</title></xref> spec?</item>
</list>
</p>
</div>
<div>
<head>Proposal for URI resolution in SML and SML IF</head>
<list type="ordered">
<item>Drop the current normative descriptions of URI 
resolution and aliasing.</item>
<item></item>
<item>Optionally, restore the same or similar text, modified as need
be, marked as non-normative paraphrase of the relevant normative
specifications for URIs (RFC 3986, XML Base).</item>
</list>
</div>
</body>
</text>
</TEI.2>
<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-default-dtd-file:"/Library/SGML/Public/Emacs/sweb.ced"
sgml-omittag:t
sgml-shorttag:t
End:
-->
