Provide a URI based interface where each resource (package) has a unique URI and various kinds of package searches and browsing are available via URIs as well. Here's an evolving list, comments are welcome. cantcl/ -- front page The front page lists the various starting URIs below, it's HTML cantcl/ -- get a package cantcl/packages/anagif.zip -- get latest version of anagif cantcl/packages/anagif.kit -- get latest version of anagif as a starkit cantcl/packages/anagif1.0.zip -- get version 1.0 cantcl/packages/anagif/ * returns a page of links to package contents which can then be browsed or traversed by a client, including at some point URIs of individual files inside the package, eg: cantcl/packages/anagif/tcl/anagif.tcl With the purl is activated, this will give us a way of referencing the latest version of any package as http://purl.org/tcl/cantcl/packages/anagif.zip '''Browse Interface''' cantcl/browse/ This page might eventually list the top level of some set of package categories (eg. Trove) from which a web user might browse. cantcl/browse/platform=Linux cantcl/browse/subject=CGI cantcl/browse/name=*image* -- glob style search * each of these returns a package list with links into the /packages/ hierarchy, eg: Results of query /browse/platform=Linux perhaps with an appropriate stylesheet to allow it to render nicely in a web browser. '''Upload''' According to REST, creation of new web resources should be done via POST or PUT. POST is for creating new sub-objects, PUT for completely new resources. PUT seems appropriate here, although supporting POST would allow for browser forms based upload as in the initial implementation.