wsmo logo

Persistent URIs for WSMO and WSML deliverables

WSMO Note 17 November 2004

This version:
http://www.wsmo.org/2004/NOTE-URIs/20041117/
Latest version:
http://www.wsmo.org/2004/NOTE-URIs/
Previous version:
http://www.wsmo.org/2004/NOTE-URIs/20040324/
Editors:
Jos de Bruijn
Jacek Kopeckż

This document is also available in non-normative PDF version.
Copyright © 2004 DERI®, All Rights Reserved. DERI liability, trademark, document use, and software licensing rules apply.


Abstract

This note describes the way URIs (Uniform Resource Identifiers) for working drafts in the WSMO and WSML Working Groups should look. We also provide some useful tips on implementing these rules can be implemented on the current Apache web server, which hosts the wsmo.org web site.

Table of contents

1. WSMO Working Draft URIs
2. Reaching the latest update of a certain version of a WSMO Working Draft
3. Reaching the latest version of a WSMO Working Draft
4. Reaching a list of sub-deliverables of WSMO deliverables
Appendix A. URI Rewriting on the Apache web server
Appendix B. URI Redirecting on the Apache web server
Acknowledgement


1. WSMO Working Draft URIs

This section is normative

This section contains the rules for persistent URIs, which are used to give different updates of working drafts in the WSMO and WSML Working Groups permanent presence on the World Wide Web.

The URI of a WSMO[1] working draft consists of the following parts:

http://www.wsmo.org/year/deliverable-number/
  [sub-deliverable-number/]version/date/

A more detailed description per item in the URI:

year
The year the working draft was written, in the usual four character notation, e.g. 2004.
deliverable-number
The (top-level) number of the working draft, including the lower-case 'd' character, e.g. d16.
sub-deliverable-number (optional)
The sub-deliverable number, including the top-level deliverable number, the lower-case 'd' character and the '.' indicating the separation between the top-level deliverable number and the sub-deliverable number, e.g. d16.2.
version
The version of the working draft, including the lower-case 'v' character and the '.' indicating the separation between the major and the minor version, e.g. v0.1.
date
The date of the working draft update in the convenient yyyymmdd format, e.g. 20040324.

As an example, the March 24, 2004 update of deliverable 16.2 version 0.1 should be persistently available at the following URI:

http://www.wsmo.org/2004/d16/d16.2/v0.1/20040324/

2. Reaching the latest update of a certain version of a WSMO Working Draft

This section is normative

The URI of the latest update of a certain version of a WSMO working draft consists of the following parts:

http://www.wsmo.org/year/deliverable-number/
  [sub-deliverable-number/]version/

When the browser accesses a URI of this type, the browser should receive the latest update (see Appendix A for an example of doing this on an Apache web server). The browser should not be redirected to this URI because we assume the user wants the latest update, even when this page is bookmarked and visited later. Every working draft update should contain a full link to itself in case a link to this particular update is necessary.

For example, if the user wants to access the latest update of deliverable 16.2, version 0.1, the user will access the following URI:

http://www.wsmo.org/2004/d16/d16.2/v0.1/

Assuming that the latest update of d16.2 v0.1 is dated March 24, 2004, the browser will display the URI above, but it will show the document that is also identified by the following URI:

http://www.wsmo.org/2004/d16/d16.2/v0.1/20040324/

3. Reaching the latest finalized version of a WSMO Working Draft

This section is normative

The URI of the latest finalized version of a WSMO working draft consists of the following parts:

http://www.wsmo.org/year/deliverable-number/
  [sub-deliverable-number/]

When the browser accesses a URI of this type, the browser should be automatically redirected to the latest finalized version (see Appendix B for an example of doing this on an Apache web server). In case no version of the deliverable is finalized, the browser should be redirected to the current version.

The redirect to the last finalized version (as opposed to the current version) is done so that once a finalized version is available, there exists a link to the latest stable version of the specification.

For example, if the user wants to access the latest finalized version of deliverable 16.2, the user needs to access the following URI:

http://www.wsmo.org/2004/d16/d16.2/

Assuming that the latest finalized version of d16.2 is 0.1, the browser is redirected to the following URI:

http://www.wsmo.org/2004/d16/d16.2/v0.1/

The same redirect would also happen if version 0.2 is already being developed for d16.2, but it isn't finalized yet. If the user wants to see the current version (even though it may not be a mature specification) and not the last finalized one, they have to know the version number (v0.2 in our example) or they have to visit the draft listing at http://www.wsmo.org/2004/.

4. Reaching a list of sub-deliverables of WSMO deliverables

This section is normative

For deliverables that have sub-deliverables, a listing of those sub-deliverables should be available (as a part of the document) at the following URI:

http://www.wsmo.org/year/deliverable-number/

For example, if the user wants to access the listing of sub-deliverables of deliverable 16, the user needs to access the following URI:

http://www.wsmo.org/2004/d16/

The retrieved document will contain links to deliverables d16.1 and d16.2, in case those are the sub-deliverables of d16.

Note that for deliverables that don't have sub-deliverables, these links will redirect to the latest finalized version of the deliverable, as described in section 3.

Appendix A. URI Rewriting on the Apache web server

This section is non-normative

In Apache, URI rewriting allows a request for one URI to be served from a different resource that has its own URI. As we have seen in section 2, every working draft version needs HTTP rewrites to the latest update.

This appendix shows by example how these rewrites can be achieved on an Apache web server (such as the one on which the wsmo.org web site is currently hosted).

The example used in this appendix is WSMO deliverable d16.2 with current version v0.1 and latest update March 24, 2004. This update of the deliverable is available from:

http://www.wsmo.org/2004/d16/d16.2/v0.1/20040324/

Our goal is to implement HTTP rewrite to this update of the deliverable from the following URI:

http://www.wsmo.org/2004/d16/d16.2/v0.1/

One way to implement this HTTP rewrite on an Apache web server is using the .htaccess file. We implement the rewrite from http://www.wsmo.org/2004/d16/d16.2/v0.1/ to http://www.wsmo.org/2004/d16/d16.2/v0.1/20040324/ by creating a file .htaccess in the directory http://www.wsmo.org/2004/d16/d16.2/v0.1/ on the web server, with the following content:

RewriteEngine on
RewriteBase   /2004/d16/d16.2/v0.1/
RewriteRule   ^$        20040324/

This concludes the implementation of the required HTTP rewrites.

Note: In Case a document contains relative URLs (e.g. for images) that typically reside in the directory specific to the version an extended Rewrite is needed:

RewriteRule ^(([^\d]).*)?$ 20040324/$1

This RewriteRule will internally rewrite requests such as http://www.wsmo.org/2004/d16/d16.2/v0.1/img/pic.gif to http://www.wsmo.org/2004/d16/d16.2/v0.1/20040324/img/pic.gif. I. e. the regular expression specifies that everything that does not start with a number will be rewritten; the exception is made to avoid recursion.

Appendix B. URI Redirecting on the Apache web server

This section is non-normative

URI redirecting means issuing an explicit HTTP redirect to a different URI in response to a request to some other URI. As we have seen in section 3, every working draft needs HTTP redirects on the deliverable level, where a redirect to the latest version is necessary.

This appendix shows by example how these redirects can be achieved on an Apache web server (such as the one on which the wsmo.org web site is currently hosted).

The example used in this appendix is WSMO deliverable d16.2 with current version v0.1. This version of the deliverable is available from:

http://www.wsmo.org/2004/d16/d16.2/v0.1/

Our goal is to implement HTTP redirect to this version of the deliverable from the following URI:

http://www.wsmo.org/2004/d16/d16.2/

One way to implement such an HTTP redirect on an Apache web server is using the .htaccess file. We implement the redirect from http://www.wsmo.org/2004/d16/d16.2/ to http://www.wsmo.org/2004/d16/d16.2/v0.1/ by creating a file .htaccess in the directory http://www.wsmo.org/2004/d16/d16.2/ on the web server, with the following content:

RedirectMatch /2004/d16/d16.2/$ http://www.wsmo.org/2004/d16/d16.2/v0.1/

This concludes the implementation of the required HTTP redirects.

Acknowledgement

The work is funded by the European Commission under the projects DIP, Knowledge Web, InfraWebs, SEKT, SWWS, ASG and Esperonto; by Science Foundation Ireland under the DERI-Lion project; by the Vienna city government under the CoOperate programme and by the FIT-IT (Forschung, Innovation, Technologie - Informationstechnologie) under the projects RW² and TSC.

The editors would like to thank to all the members of the WSMO working group for their advice and input to this document.


[1] The WSMO and WSML Working Groups share the same URI space for working drafts and use the same numbering for working drafts. Therefore, all rules presented for WSMO working drafts also apply for WSML working drafts.


Valid XHTML 1.1!

$Date: 2004/11/17 22:55:43 $

webmaster