Re: Version identifier in URL

Daniel W. Connolly (connolly@w3.org)
Tue, 28 May 1996 21:46:22 -0400


It's OK for individual systems to have conventions about
the syntax of HTTP URLs, but it's an abstraction violation
to standardize such conventions across all HTTP servers.

In stead, the thing to standardize is the way to express
        "the resource at X is a version-specific instance
                 of the resource at Y"
and
        "the resource at X has version V"

using a syntax proposed at:

        http://www.w3.org/pub/WWW/MarkUp/Resource/Specification

with X=/foo;version=1.2
        Y=/foo
        V=1.2

we would have:

   <resource url="/foo;version=1.2">
           <link rev=version-specific url="/foo">
        <meta name=version content="1.2">
        </resource>

(Note that I've used rev, as the version-specific link type
has the generic as the source, and the specific as the target.
In our case, the link goes from specific to generic; hence the
reverse relationship.)

These semantics can be encoded using whatever syntax is
appropriate to the circumstances. But the general schema for
information about web resources is:

        link(A1, A2, rel)
                ==> "There is a link of type _rel_ from A1 to A2"

        attribute(A1, name, val)
                ==> "The _name_ attribute of A1 is _val_"

Dan


In message <add10d040a0210045498@[128.195.21.209]>, Jim Whitehead writes:
>
>One aspect of the versioning of WWW content which appears in all
>work/proposals to date is a versioned HTTP GET method.  A versioned GET
>supports browsing of an arbitrary version of an entity, a basic
>requirement.  Examples of this include (references are to work which is
>available from the working group home page, at URL:
><http://www.ics.uci.edu/~ejw/versioning/>)
>
>Pettengill & Arango:
>  - add a ",{version_identifier}" suffix to the end of a URL to specify the
>version identifier
>
>MKS:
>  - add a ";version={version_identifier}" suffix to the end of a URL
>
>Whitehead:
>  - add a ";v={version_identifier}" suffix to the end of a URL
>
>>From these examples, you can see that there is a basic similarity to all
>approaches.
>
>I would like to suggest we adopt the MKS approach for specifying version
>identifiers in a versioned GET operation as a usage convention for our
>future work.  I like the MKS approach because it uses a semicolon (;) to
>separate the version specification from the rest of the path (this is
>superior to a (,) because a comma is not a reserved character according to
>the URL specification in RFC 1738 "Uniform Resource Locators", and hence
>might legally be part of a path), and because the use of a full "version"
>tag is more readable, and is less likely to have a name collision with
>another URL usage convention than the "v" tag.
>
>Note that this convention only specifies the version of the entity, and
>does not specify the version of each directory in the heirarchy leading to
>that entity.
>
>Comments?
>
>- Jim Whitehead <ejw@ics.uci.edu>
>