Re: URI references and aggregation

Graham Klyne <[email protected]> Mon, 10 Jan 2000 15:57:34 +0000
Newsgroups gmane.ietf.medfree
Message-ID <[email protected]>
Ted,

I apologize for taking so long to respond to this.  If I understand you 
correctly, you are proposing that:

(1) There is an IANA-allocated URL associated (in a well defined fashion) 
with every registered (IETF-tree and global-tree) feature tag.  The data 
resource at this URL would be a copy of the feature registration template.

(2) [At the definer's discretion] the URI part of an unregistered feature 
tag can be used in similar fashion as a URL to retrieve information about 
the feature.

(3) Use a URL to name an aggregate, with the aggregate expression being the 
referenced resource.

(4) Allow a defined form of URN (or a URI that is not a URL) to represent a 
hash-based aggregate name.

The motivation for this, I understand, is to have a uniform approach for 
dealing with unknown features, and unknown aggregates.

I see a number of possible problems here:

(a) unless a URL can always be resolved to a machine-interpretable 
definition, I think there there is marginal value in having a uniform 
resolution machinery.  If the expectation is that an aggregate URL resolves 
to an interpretable expression, it may be better if simple feature tag URIs 
are not resolvable, since there is generally no corresponding machine 
interpretable expression.  Also, there is a syntactic difference between 
usage of feature tags and aggregate names (i.e. auxiliary predicate vs 
comparison forms), though it might be possible to finesse that in some way.

(b) the unregistered feature tag form is defined as using URI syntax, not 
limited to being a URL.  So a mechanism for resolution is not necessarily 
always present.

(c) the "<URL>" form in the current feature-hash draft was introduced for a 
potent reason:  to dispel any possible ambiguity concerning the order of 
substitution and hash value calculation.

I think there is a need to draw a clear distinction between simple-valued 
("primitive") features and composite-valued aggregates, else undesired 
complexities or even non-determinism may result.

However, I do believe there is value in providing a well-defined mapping to 
URI form, with URL and resolution available where appropriate.  I happen to 
like the idea of using a URN form, as suggested by Larry, as part of the 
solution.

Currently, I perceive there are a two fixed points to be accommodated if 
the range of proposed capabilities is to be realized:

    Feature tags (currently the basis of CONNEG expressions)
    URLs (currently the only proposed form of directly resolvable identifier)

As far as I can tell, you are proposing what is, in effect, a direct 
mapping from feature tag to URL:

    Tag --> URL

and a corresponding:

    Aggregate --> URL

I would suggest allowing an intermediate URN form that can represent the 
difference between primitive and aggregate values:

    Tag       --> URN:a:xxx
    Aggregate --> URN:b:xxx

The URNs here would use different URN namespaces, with different resolution 
properties.  As I suggest above, I'm not convinced that feature URNs should 
be further resolvable (for now, at least;  it's possible that we'll devise 
a useful machine-interpretable form for these in future).  OTOH, it will 
sometimes be useful for aggregate URNs to be resolvable, using ad-hoc or 
(to-be-)standardized URN resolution mechanisms, possibly on a 
per-application basis.  A possible ad-hoc mechanism might be a simple 
textual subsitution of the 'URN:namespace' prefix for an 
'http://host/path/' form of prefix;  for aggregate names that contain URLs, 
the resolution mechanism may be to simply dereference to URL.

In summary, if I understand your proposal correctly, I am proposing adding 
a level of indirection via URNs to allow evolution of a uniform resolution 
framework while preserving the essential distinctions between tags and 
aggregates.

I'm not yet sure how to address my point (c) above in this framework, but I 
suspect that admits a reasonable simple solution.  One approach would 
simply be to say that the hash is always calculated without further 
substitution, and that dereferenced expressions would not (normally) be 
permitted to contain further references.

I trust I've not grasped _completely_ the wrong end of your proposed.

#g
--


At 12:21 PM 12/20/99 -0800, [email protected] wrote:
>Over the past few months, the group has struggled with the question of
>how to reference aggregations of features; we have discussed most
>extensively proposals based on MD5 hashes and based on URIs.  During
>those discussions, it has been clear that there were different use
>cases for which different methods were more appropriate.  For very
>feature and resource rich environments, URIs have some clear
>advantages; for feature and resource limited environments, hashes have
>advantages.  The obvious solution, support both, has been proposed
>several times, but I have pushed back as chair to see if we can't come
>to resolution on a single system which works across multiple
>environments.  After discussion with the document authors and IANA,
>my current thought is this:
>
>Work with IANA to change the form of the feature registry so that
>registered features are directly referencable by individual URLs.  (The
>current registry format is a single text page containing all of the
>registered features).  This will allow us to reference registered
>(unfaceted), global, and unregistered features using URLs, which has
>not been possible up to this point.
>
>Use URLs as the pointers for feature aggregates.  As a special type of
>reference, allow an object identifier URI based on the MD5 hash of the
>canonical representation of the feature tag and value; the canonical
>representation for the feature tags will be the URL pointer to the tag
>(the value representation will continue to be set during
>registration).  The MD5 hash URI could either be a unique scheme,
>registered according to the recently established URI registration
>guidelines, or a data URI (possibly requiring a content type
>registration through the MIME processes).
>
>I believe that this approach gives us a reasonable implementation
>path for systems with a variety of resource constraints.
>
>Please consider this carefully in light of your intended use of
>the CONNEG systems, and send comments and criticism to the list.
>                         regards,
>                                 Ted Hardie

------------
Graham Klyne
([email protected])