Minority opinion on allowing relative URIs as role values

The XLink Candidate Recommendation [1] provides that the value of a role
attribute may be a URI Reference (including a relative URI).  The draft
Proposed Recommendation tightens this restriction to allow only absolute 
URIs.  It is the position of Microsoft and Jamcracker that this restriction 
is inappropriate and unnecessary, for the following reasons:

1) Introduces bias against a particular class of XLink applications

The role identifies a "property" of the resource, using URI syntax.  There
is no constraint in the XLink spec as to what if anything may be returned if
that URI is fetched.  There is no constraint in the XLink spec as to whether
the meaning of the property the role identifies is hard-coded into the
_name_ of the property (as represented by the absolute URI), or is obtained
somehow from the _value_ of the property (as represented by the resource
fetched from that URI).

For applications resolving role URIs to obtain their meaning
(_value_-centered applications), relative URIs are an indispensible
management tool.  Not allowing relative URIs restricts the ability to build
this class of applications.  The bias against URI forms (relative URIs) 
which might serve this purpose is inconsistent with the goal to refrain 
from placing constraints on what if anything may be retrievable from a URI 
used as a role.

2) Doesn't address globally unique identifiers

For applications that rely solely on the _name_ of a property, there is a
fear that relative URIs may not provide the globally unique identifier
needed by that class of processor.  In fact relative URIs may indeed resolve
to globally unique identifiers (especially in conjunction with XML Base).
There is no attempt to limit other forms of URI, such as file://, which may
not provide globally unique identifiers.  Thus, outlawing relative URIs does
not seem to significantly contribute to solving the problem of writing
_name_-centric applications.

3) Represents excessive force

The change was motivated by a question [2] about how to determine if two
role values were equivalent, especially if they were represented using
relative URIs.  This question can be answered by providing for
absolutization of relative URIs before character-for-character comparisons
are performed.  Such a fix does not introduce significant complexity, nor
limit the utility of roles in particular applications.   This more minimal
fix is more appropriate to adopt during the CR phase, as it clarifies
unspecified behavior, rather than outlawing previously legal syntax.

[Note: for simplicity, the "role" attribute has been used to illustrate this
problem.  The "arcrole" attribute also manifests the problem.]

Jonathan Marsh, Microsoft (jmarsh@microsoft.com)
David Orchard, Jamcracker (dorchard@jamcracker.com)

[1] http://www.w3.org/TR/2000/CR-xlink-20000703/#link-semantics
[2] http://www.w3.org/XML/Group/1999/07/LinkingIssueList.html#XL101

Received on Thursday, 7 December 2000 16:50:26 UTC