Editor: Robin Cover
Latest Version: http://docs.oasis-open.org/specGuidelines/namingGuidelines/resourceNamingCommentary.html
This Version: http://docs.oasis-open.org/specGuidelines/namingGuidelines/resourceNamingCommentaryV06.html
Status: Provisional/Pending. Commentary text is under revision.
Review Comments: send to firstname.lastname@example.org
Current Activity: produce a versioned condensed format with just the rules; add examples and commentary
Between February 2003 and February 2006, at least twenty-one (21) numbered drafts relating to "OASIS Naming Guidelines" were produced under an informal process, for review by OASIS Members, Chairs, TAB, Board, and others. These drafts have several different titles, suggesting variable focus and scope.
This document seeks closure on a few key decisions that need to be made in order to proceed with design and development of new document management facilities to support resources in the OASIS Open Library. The document editor recognizes that consensus will never be reached on a much longer list of naming issues about which stakeholders have strong opinions, and disagreements.
The document provides a summary of key issues raised by members of the TAB in its recent production of draft documents on "artifact" guidelines, as well as some issues raised by reviwers of AIR/ASIS, including OASIS Staff. The issues are presented under one of two labels, reflecting the emerging consensus of opinion as of 2006-06, or lack thereof: (a) "Issues Resolved, Near Resolution, or with Substantial Agreement" and (b) "Issues Requiring Further Discussion". We believe that the conclusions reached in "(a)" are reasonable consensus positions, at least suitable for trial application. Further work on issues in "(b)" will seek to discover solutions that need to be provided in order to give guidance to TCs and to OASIS Staff programmers who will create document management software to support the naming guidelines.
As consensus emerges, we anticipate a phase-wise publication of the minimum guidelines and rules on a dynamic, evolving web site. Initially, we are inclined not to characterize these "Guidelines for Filenames, URIs, Namespaces, and Metadata" (under some title) as hardened "policy" but as a collection of guidelines which need to be tested and refined through use by TCs in connection with new document management software. Similarly, the provisional rules and guidelines will be tested by common practice and new use cases.
Not all topics addressed by the TAB during the period 2003-02 through 2006-02 are mentioned in this summary document: additional background, including theoretical matters and formal notations are available in early drafts and supplemental materials, most recently in Artifact Standard Identification Scheme for Metadata 1.0.
This document uses terms familiar to users of the Web: "resource" and "URI", along with "file" and sometimes "document", "specification", and "directory" — in preference to the abstract term "artifact".
"Name Characters" here refers to characters used in URIs — including filenames, directory names, colon- or slash-delimited components within namespace URIs, delimiters, and possibly other URI subcomponents as may be labeled.
Beginning with one of the earliest drafts (Proposed Rules for OASIS Document File Naming, Working Draft 02, 18-February-2003), contributors to the twenty-some versions of the OASIS naming guidelines have agreed that a restricted character inventory for published names would best serve the needs of the organization. Experience using the Kavi system has confirmed that users (unconstrained) are likely to publish documents using problematic characters and character patterns in filenames/URIs, creating risks to interoperability and data integrity. Some such characters require hex (escape) representation because they are "Reserved Characters" in URI syntax, while others present risks because they are meaningful to the shell. Some of these potentially problematic characters include the at-sign (@), ampersand (&), left and right parenthesis, tilde (~), hash/pound-sign (#), dollar-sign ($), left and right square-bracket, plus-sign (+), colon (:), semicolon (;), etc.
While technical solutions are available to minmize problems arising from potentially problematic characters and character sequences, common best practice guidance urges avoiding them altogether; this conclusion has been supported in all twenty-some AIR/ASIS drafts and in the two OASIS member reviews.
"Name construction" here refers to the lexical and syntactic structure of names, given the restricted character inventory. Motivations for the constraints include concerns for fidelity of interchange across file systems, minimizing the risks of common text-processing errors, usability (visual clarity), and other data QA. In other cases, arbitrary restriction of unbounded variablity serves the goal of simplicity through uniformity.
ASIS sections on metadata have been removed in this document, as metadata design has been targeted for work as a separate design effort, to be revisited following the conclusion of OASIS Staff design on specification templates, search requirements, and other functional requirements that are part of the document management system design. Results from this design will be incorporated into the "Guidelines for Filenames, URIs, Namespaces, [and Metadata]" document at a later stage.
A significant conclusion emerged from the two public reviews of AIR (July 2005) and ASIS (February 2006): the OASIS membership does not welcome a policy mandating the use of structured filenames which use hyphen-delimited metadata components, IETF-style. In some cases it may be natural and desirable to use some "metadata" information in filenames and URIs, but we heard strong negative reaction against the early proposal to make a componentized schema required. The current plan is to coordinate investigation about metadata requirements around site-wide search functionality, then to align the metadata model(s) with usage in specification templates and (other) markup embedding guidelines. Further support for (optional use of) componentized flenames might be reconsidered later (e.g., when it would make sense to generate sugested filenames from a metadata record.
Design document titles: An incomplete listing for various versions of "AIR", variously titled:
Note on nomenclature: this document does not feature the term "artifact" (nor "requirements" nor "deliverable"), as was used in several earlier draft proposals (Artifact Identification Guidelines, Artifact Identification Requirements, Artifact Standard Identification Scheme for Metadata). Feedback from reviewers of ASIS indicated that artifact probably does not represent a central concept, even if some of its defined characteristics are useful. This document uses the more familiar Web terms "resource" and "URI", along with "file" and sometimes "document", "specification", and "directory" (as a hierarchical element matching a URI path component). A taxonomy of resource types (previously described in ASIS as "artifact types") will be considered separately as part of the metadata design effort. The notion of an abstract identifier may need to be modeled to account for: (a) constituent parts of a compound document; (b) nearly "identical" representations of a document, differing only in format [XHTML, XML, ODF, PDF, Postscript, plain text]; (c) names of package files which store collections of resources making up [part/whole] a complete specification or otherwise aggregating related documents forming a single published relase; (d) etc.
See Upgrading OASIS document and file management services, posted by Peter Roden November 18, 2005: "We plan exclusively to use the [Internet] domain 'docs.oasis-open.org' for public access to approved work product of its technical committees. The 'docs' subdomain is in optional use today. By 'approved', we mean all work that has been approved under our TC Process rules as a Committee Draft, Public Review Draft, Committee Specification or OASIS Standard..."
While the collection of naming rules is intended to apply to all resources deposited into the OASIS Open Library, rules may apply variably to different document genres, file formats, and as a function of specification status. Thus, while rules for allowable characters in file and directory names would apply universally, rules governing namespace definition would be applied differently to contributed specifications vs. TC-approved specifications. Any such distinctions will be documented clearly.
Methods for uploading and installing resources in the OASIS Open Library include use of compressed archives or packages like ZIP and tar+gzip. It is expected that filenames and directory names created by a package extract operation will conform to the naming rules just as if the files were uploaded individually. In order to make all resources directly visible to human users (not requiring a download + extract-on-local-machine operation) and accessible to indexing for search purposes, all files in packages will be extracted and installed in the named directories. All package files uploaded to the OASIS Open Library will also be retained in package format at the canonical URI.
See Eve Maler in Proposed Rules for OASIS Document File Naming, February 2003: "Hyphens must be used as separators of the major portions of a file name. Spaces must not be used. Hyphens are recommended between words within the description and extended description portions, though underscores may be used. Hyphens are preferred because they are easier to see in displayed URIs and easier to type. Lowercase spelling is recommended..."
This document specifies characters for use in the URI Path and Fragment components, but does not address characters allowable in the Scheme and Authority components (e.g., http://docs.oasis-open.org/ ). The characters "?" (question-mark) and "=" (equals) may be recommended at some future time for use in the Query component of a URI, should OASIS provide implementations that use such query elements.
TC members involved in naming are encouraged to consider the context in which URIs are likely to be used; in some print media, the UNDERSCORE character is indistinguishable from other "blank" characters, and in the context of common Web practice, may be ambiguous. See the following note.
The most common strategies for creating names from a sequence of words or morphemes (closed compounds) include use of an explicit delimiter character (e.g., HYPHEN) or marking juncture by camel case. Both strategies are intended to enhance readability for the human user. In some programming languages (by no means all), the underscore character may be used to join word components. This usage is probably benign. In the context of the World Wide Web, where use of the [not-hex-escaped] SPACE character within filenames (thus URIs) is exceedingly popular, the use of the underscore character to mark juncture may be deleterious, since typically it will be rendered as an ambiguous BLANK character in certain print media.
The OASIS web server(s) used for resources in the OASIS Open Library will respect the authoritative, canonical, exact (mixed-case) spelling used in official OASIS URIs, viz., in the path and filename components of the URI. Protecting the quality of URIs and the identity of URI-addressable resources depends critically upon respecting case: Unicode, used in XML and almost all modern applications, is case-sensitive, so that 'foo' and 'Foo' as identifiers are different. Most XML processing depends upon respect for case (XML schema, XML DTDs, etc). Therefore, using the exact (normative, canonical, authoritative) correct character tokens, including correct case, with respect to subdirectories and files is critical. The Apache server as currently configured is doing the right thing: rejecting requests for approximate URIs. We may provide assistance for 404s but will not deliver mis-identified documents silently.
File names reserved for (future) administrative use include any files significant to the Apache server (e.g., .htaccess; *.cgi; *.conf or matching any Apache config files; mime.types) and files used by Staff for uniform browsing/navigation (e.g., index.html, index.htm, etc). A complete list must be provided.
The goal of the naming guidelines is to provide a set of loose constraints under which TCs can adopt naming practices suitable to their application. In boundary cases, where some naming construct is judged problematic for technical, political, or social reasons, the TC Administration will attempt to negotiate an acceptable solution that avoids the problem, but in some cases, may need to exertise authority, which may be appealed by a TC.
A tcShortName is the abbreviated name assigned to a TC by the TC Administration, designed for use in URIs. Examples:
|TC Full Name||tcShortName|
|OASIS eXtensible Access Control Markup Language (XACML) TC||xacml|
|OASIS Universal Business Language (UBL) TC||ubl|
|OASIS Security Services (SAML) TC||security|
|OASIS Entity Resolution TC||entity|
|OASIS HumanMarkup TC||humanmarkup|
Once assigned to a resource, an identifier (URI) should never be retired and re-assigned to some other resource: the relationship between identifier and resource should be considered fixed and unseverable. This applies to primary resources (e.g., a conceptual whole document) and to secondary resources associated with a fragment identifier component of a URI [post-pound # fragment portion]. Some CMS products [Moin Wiki] will rewrite the value of of an (X)HTML ID attribute when a document is saved — breaking URI references that link to internal document components.
See for example DocBook : "Historically, DocBook was in no namespace. Starting with DocBook V5.0, DocBook is in a namespace: http://docbook.org/ns/docbook, the namespace name for DocBook. In time, other modules may also have their own namespace."
Some TCs want to hard-link to XML schemas from namespace URIs rather than to separate "namespace documents". We can honor that option by saying in the rules that the namespace URI MUST resolve rather than return a harsh 404 status code. The WebArch document's section on Namespace documents notes that there are many methods of accomplishing the effect of a namespace document, including documents based upon XML Schema (XSDs), to follow "Good practice": Namespace documents — "The owner of an XML namespace name SHOULD make available material intended for people to read and material optimized for software agents in order to meet the needs of those who will use the namespace vocabulary." The W3C document says: "the following are examples of data formats for namespace documents: OWL Web Ontology Language Reference (OWM), Resource Directory Description Language (RDDL), XML Schema Part 1: Structures (XML Schema), and XHTML 1.1-Module-based XHTML. Each of these formats meets different requirements described above for satisfying the needs of an agent that wants more information about the namespace..." It seems quite reasonable that an HTTP scheme namespace URI (namespace name, URI reference) should resolve to something useful and informative, whether an XML schema or other representation which fulfills the general requirement of "useful information." TCs should be able to indicate the resource to be delivered when the URI is dereferenced; we expect that resource to be located under the TC's web site root. If the TC designates/provides no such resource, OASIS TC Administration would do so.
Several solutions have been offered for a required or recommended practice of identifying "versions" of specifications using words and enumerators. One scheme would apply the term "revision" to any intermediate non-approved documents between major status levels — where '#' is a digit:
SDOs/SSOs commonly publish a "Latest Version: " (version-agnostic) URI for specifications that are developed in stages over a long period of time, allowing collaborators and reviewers to create stable bookmarks and hyperlinks that can be assured to get the most recent/current release of an evolving document. See references below to this practice as implmented by W3C, WS-I, the Unicode Consortium, Dublin Core Metadata Initiative (DCMI), and the RDDL Spec Development Team. Similarly, a "Latest Version: " URI is useful for documents like a TC Issues List or Minutes, where team members need a stable URI reference for the most recent published instance. This feature has been requested by numerous TCs for other application scenarios in which changing interdependent URIs in each release is impractical.
The OASIS Open Library currently supports the "Latest Version: " URI in several contexts, though not uniformally; as of 2006-07-01, no common method for designing these URIs had yet been adopted. For issues lists, see these examples:
|TC||Latest Version URI||(Example) Version-Specific URI||History|
The label "Latest version" URI functioning as the constant/fixed/permanent URI can be confusing — depending upon whether one thinks of a "version URI" as an identifier or as a locator. It's clear what "Latest" means when one sees the customary usage in context, for example in any of the following sample documents from W3C, WS-I, Unicode Consortium, DCMI, etc.:
W3C: Web Services Choreography Description Language Version 1.0. This version: http://www.w3.org/TR/2004/WD-ws-cdl-10-20041217/; Latest version: http://www.w3.org/TR/ws-cdl-10/. Previous version: http://www.w3.org/TR/2004/WD-ws-cdl-10-20041012/. The 'Latest version' URI is the permanent/fixed URI alias that always points to the most recent 'This version' instance file as the W3C specification progresses through different maturity levels: Working Draft, Candidate Recommendation, Proposed Recommendation, Recommendation.
W3C: Synchronized Multimedia Integration Language (SMIL 2.1). Slightly more complex case; same idea, same principles, same implementation.
Unicode Consortium: Unicode Named Character Sequences
Dublin Core (DCMI): Dublin Core Metadata Element Set, Version 1.1: Reference Description
RDDL Spec Team: Resource Directory Description Language (RDDL)
OASIS: Draft OASIS Specification Templates. [needs discussion]
[ANG06] OASIS - Artifact Naming Guidelines. Working Draft 06. July 09, 2004. Document identifier: 'oasis-tab-artifact_naming_guidelines-wd-05'. Edited by Tim Moses. See the posting "Naming guidelines for comment." [oasis-tab-artifact_naming_guidelines-wd-06.doc; local source .DOC]
[ANG09] OASIS - Artifact Naming Guidelines. Working Draft 09. The diff from version -08, also unmarked v09. October 25, 2004. Artifact identifier: 'tab-artifact_naming_guidelines-1.0-spec-wd-09'. Edited by Tim Moses and William Cox. See the posting "Back to boring old Naming Guidelines, this time with URN section". Source: tab-artifact_naming_guidelines-1.0-spec-wd-09-diff.doc [local] and tab-artifact_naming_guidelines-1.0-spec-wd-09.doc [local].
[AIR] Artifact Identification Requirements 1.0. Produced by members of the OASIS Technical Advisory Board (TAB). Edited by William Cox and Tim Moses. Artifact Identifier: 'ArtifactIdentificationRequirements-v1.0-requirements-wd-r14'. Working Draft 15. 30-June-2005. See the announcement [also here] and "short preface and list of questions." [local copy]
[ASIS] Artifact Standard Identification Scheme for Metadata 1.0. Approved TAB Document. 30-January-2006. Edited by William Cox and Tim Moses. Artifact Identifier: 'ArtifactStandardIdentificationSchemeForMetadata-1.0.1-req-approved'. Sent out for public review on February 06 2006 ending March 01, 2006. With spreadsheet listing comments and responses from the July 2005 review. [local copy]
[Namespaces10] Namespaces in XML. W3C Recommendation. World Wide Web Consortium. Reference: REC-xml-names-19990114. 14-January-1999. Edited by Tim Bray, Dave Hollander, and Andrew Layman. With errata page.
[Namespaces11] Namespaces in XML 1.1. W3C Recommendation. 04-February-2004. Edited by Andrew Layman, Richard Tobin, Tim Bray, and Dave Hollander. See also Namespaces in XML 1.1 Requirements. With errata page.
[Versioning] [Editorial Draft] Extending and Versioning Languages Part 1. Edited by David Orchard (BEA Systems, Inc) and Norman Walsh (Sun Microsystems, Inc). Draft TAG Finding. 17-July-2006 or later.