The URI proposal [1] doesn't provide explicit support for subprojects - the assumption being that these will be encoded in the product-specifier portion of the URI:
repository-uri = access-specifier "/" product-specifier "/" version-specifier "/" artifact-specifier product-specifier = organisation "/" project Using jakarta commons as an example, there are a several possible naming conventions: A. http://repo.apache.org/apache/commons-cli http://repo.apache.org/apache/commons-collections http://repo.apache.org/apache/commons-logging B. http://repo.apache.org/jakarta.apache.org/commons-cli http://repo.apache.org/jakarta.apache.org/commons-collections http://repo.apache.org/jakarta.apache.org/commons-logging C. as in [B], but with "org.apache.jakarta" for organisation D. http://repo.apache.org/jarkarta.apache.org-commons/cli http://repo.apache.org/jarkarta.apache.org-commons/collections http://repo.apache.org/jarkarta.apache.org-commons/logging E. as in [D], but with "org.apache.jakarta-commons" for organisation F. http://repo.apache.org/jarkarta-commons/cli http://repo.apache.org/jarkarta-commons/collections http://repo.apache.org/jarkarta-commons/logging G. http://repo.apache.org/apache-jarkarta-commons/cli http://repo.apache.org/apache-jarkarta-commons/collections http://repo.apache.org/apache-jarkarta-commons/logging Of the above, [F] best matches CVS organisation: http://cvs.apache.org/viewcvs.cgi/jakarta-commons/ Which is the preferred approach? Another possibility is to add a mandatory subproject path segment: product-specifier = organisation "/" project "/" subproject (mandatory so the URI can be parsed), giving: H. http://repo.apache.org/jakarta.apache.org/commons/cli http://repo.apache.org/jakarta.apache.org/commons/collections http://repo.apache.org/jakarta.apache.org/commons/logging I. as in [H], but with "org.apache.jakarta" for organisation This would mean a redundant directory for those projects with no subprojects, e.g: http://repo.apache.org/xml.apache.org/batik/batik but would: . better reflect project heirarchies . improve navigability, as the heirarchy is not as flat . avoid the need to specify naming conventions for subprojects: . organisation is always derived from the project domain name . project is always the top level project name . subproject is the subproject name, or in the absence of a subproject, the same as the top level project name. Thoughts? -Tim [1] http://nagoya.apache.org/wiki/apachewiki.cgi?ASFRepository/URISyntax