hpcc-systems/HPCC-Platform — Issue #654: Use URI naming system
Author: rengolin
Created: 2011-10-12 10:26:50+00:00
State: open

The URI naming system defines both location and identification of a resource, via URL and URI.

The standard format (for the non-opaque form) is:

`scheme:server/path#fragment`

where `scheme` is the information on how to access the file, `server` where the file is physically located (server + port, where server can be a name or an IP) and path is where, within that server, the file can be found (by whatever means is encoded in the protocol). `fragment` is which part, if any, of the file is being accessed at the moment.

In HPCC, the semantics is:
* `scheme` is what kind of file it is (file, super-file, stream-file, external), since that changes how the file is physically accessed and what operations you can do to the file. Schemes are also not compatible with each other, which is true for different file types, and you need special mechanisms to transform one to another, if necessary.
* `server` is the name server (Dali) location. As usual, you can query files on a name server A, referring to a name server B, and it's up to name server A to route you to B and retrieve the file. This naming system is already present in Dali and has to be kept identical.
* `path` is the normal path to the file, which must be unique within any given `server`. Access control should be used to restrict hidden files (temporary files, system files, etc), since no external resource (ECL programs) should be able to access them, but system administrators should.
* `fragment` is which part of the file is being read. This is only valid with super files and stream files for now, and on regular files (files and external), the whole file should be returned, instead. Again, access control is needed, since stream files or temporary super-files (multi) might not want other process to have direct access to its sub-files.

Please, refer to the [RFC2396](http://tools.ietf.org/html/rfc2396) for more details on URIs.