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. ---- It would be useful if the URL resolution was done in a manner that allowed '''authorized''' updating by authors or designated maintainers. Note: why not write a 'cantcl' implementation for tclvfs? Then you could mount a cantcl:/ new volume, and perhaps do things like ''glob -dir cantcl:/newpackages *'' -- this code could even transparently ''send'' information on the user's current system (win/mac/unix etc) and therefore only show things which apply. The ''newpackages'' directory could be constructed on the fly to represent only things the user doesn't yet have. Similarly there could be an ''upgrades'' directory -- all dynamic!! ---- [Category Suggestion] | [Category Internet] |