This page is a brief discussion of a potential solution to one of the Best Practice Recipe Issues: Serving the latest of multiple snapshots of a vocabulary.
Currently the Recipes discuss a possible naming convention for multiple snapshots of a vocabulary:
"Conventions in common use for distinguishing successive descriptions include the use of version-number strings or date strings in filenames (e.g., 1.01.rdf or 2005-10-31.rdf) or in pathnames (e.g., http://dublincore.org/2003/02/04/dces#title). It should be noted that, at present, there are no generally accepted conventions for using date or version-number strings in this way."
I'd like to propose that we endorse a naming convention, perhaps for slash namespaces only, that appends a timestamp string of any type indicating the date-time of the snapshot to the uri, e.g.:
Different vocabulary snapshots might be named "2006-10-31.rdf", "2006-04-25.rdf", "2005-10-31.rdf" and be served from the "content" directory.
http://example.com/http-examples/example6/
and
http://example.com/http-examples/example6/2006-10-31/
would both be redirected to
http://example.com/http-examples/example6/content/2006-10-31.rdf
http://example.com/http-examples/example6/2006-04-25/
would be redirected to
http://example.com/http-examples/example6/content/2006-04-25.rdf or
http://example.com/http-examples/example6/content/2006-04-25.html
...and so on.
This could be adapted to hash namespaces as follows:
http://example.com/http-examples/example3#ClassA
and
http://example.com/http-examples/example3/2006-10-31#ClassA
would be redirected to
http://example.com/http-examples/example3/content/2006-10-31.rdf
or
http://example.com/http-examples/example3/content/2006-10-31.html#ClassA
The most recent snapshot could be hard-coded into .htaccess as it is now, or negotiated by a script. An simple example script in PHP and Perl could be provided for this purpose.
The requester would always by default retrieve the latest snapshot, but previous snapshots would remain available making it possible for multiple versions of a vocabulary to be served over time. Named versions -- "../example3.1/" -- could be supported by redirecting to a dated snapshot associated with that version name or number.