David Durand and Fabio Vitali posted a thought-provoking draft of functional requirements for versioning on the WWW. At the beginning of their document, they describe what they consider to be the rationale for versioning on the web. My comments in this post apply to the rationale elements of their document. While I think their functional requirements draft provides a solid foundation for a final draft document, it still requires some revision, and tightening up. I offer the following comments in this vein. I think the first bullet, "(Versioning) allows more efficient management of large web sites," is a benefit that can be ascribed to facilities for the management of configurations of versioned resources, rather than simply to versioning individual resources. Thus I see efficient management of large web sites helped by CM capabilities working in tandem with versioning capabilities, not simply by versioning capabilities alone. The second bullet, "(Versioning) allows concurrent and controlled access to resources by authors and editors" is at once too broad and too restrictive. Too broad, because browsers already handle concurrent and controlled access to resources: they serve the resource concurrently to everyone who asks for it (excepting cases where the resource is password protected). Too restrictive, because the potential roles of people employing versioning capabilities is far greater than simply authors and editors. Computer programmers, reviewers, managers, students, etc. are all people whose roles both fall, and don't fall under "authors and editors." However, I think this bullet does get at the essence of one of the most important capabilities versioning should provide: parallel development support, the ability for two or more people to simultaneously edit a resource. The second issue alluded to in this bullet is access control, in many versioning schemes a necessary support capability for parallel development. Thus I think the "concurrent and controlled access" bullet should be subdivided into two bullets: - Versioning provides parallel development support - Versioning provides access control over resources The bullet stating that versioning enhances annotation support due to the preservation of the historical record merges several points which should be separated: - Versioning provides a consistent naming scheme for versions of a resource This supports two major rationales for versioning: - browse access to previous versions of a resource - annotation support - Jim Whitehead <ejw@ics.uci.edu>