- From: Jason Dusek <jason.dusek@gmail.com>
- Date: Fri, 10 Jun 2016 04:37:23 +0000
- To: Matthew Kerwin <matthew@kerwin.net.au>, Julian Reschke <julian.reschke@gmx.de>
- Cc: "uri@w3.org" <uri@w3.org>
- Message-ID: <CAO3NbwNq76N6GV8Ohk1J0+PYpr-o0T2SazWcwvN-YVSHRoK_Zw@mail.gmail.com>
On Wed, 8 Jun 2016 at 04:42 Matthew Kerwin <matthew@kerwin.net.au> wrote: > On 08/06/2016 2:50 PM, "Julian Reschke" <julian.reschke@gmx.de> wrote: > > > > On 2016-06-08 01:39, Jason Dusek wrote: > >> > >> Dear List, > >> > >> The use of HTTP and other recognized URL schemes for resource > >> identification often overlaps with the use of files. For example, in the > >> specification of Python dependencies. > >> ... > > > > > > Time to review < > https://tools.ietf.org/html/draft-ietf-appsawg-file-scheme-10>, I guess > :-) > > > > Best regards, Julian > > > > > I'm definitely taking Jason's comments on board, but I can't see anyone > implementing this. In the case of the draft, my goal is updating the > scheme to fit with RFC 3986 and documenting the funny things people already > do, not inventing new things. > > Here are my thoughts on the proposal: > > 1. '.' already means something in URIs; you can't redefine it, even for > just one scheme, without rewriting RFC 3986 (possibly requiring a time > machine.) Since '.' is an unreserved character we can't even use "%2E" to > smuggle it through the remove_dot_segments algorithm. > This is a fair point. I don’t think direct use of . is viable; it has to be by way of some indirection. > 2. Presumably the proposed '~' and '.' are only special when they're the > first path segment*. How would that interact with relative resolution? To > me, as someone familiar with tilde expansion in bash, I'd expect > "~/foo/bar" to be an obvious relative reference, but if it were resolved > against a base URL with subdirectories in the path, the tilde would find > itself above the root, and thus lose all its special meaning. We'd have to > use "/~/foo/bar" as the relative reference, which is unintuitive and kind > of counter to the proposal. > > * otherwise what would "/foo/~/bar" mean? > > 3. This would break: `mkdir -p /\~/foo ; touch /\~/foo/bar` > ("file:///~/foo/bar" would always resolve to my home directory; > "file:///%7E/foo/bar" would too, since '~' is unreserved) > Fair points. In the draft RFC, some allowance is made for UNC paths, which result in runs of slashes like this file://///... UNC provides a notion of a share and perhaps we could treat home, dot and dot dot as shares? Using file://..././/.., file://.../~//..., &c. Another possibility is to make use of a reserved character, the @, as a mysterium bonum. We imagine a virtual directory at file:///@ wherein: - file:///@/. is a link to the present directory as defined by the end user’s context, - file:///@/.. is the directory above this directory, - file:///@/~ is the end user’s home directory. To access a file or directory @ at the system root, one can use file:///%40. Is this something that a conforming implementation could provide under the present draft? Kind Regards, Jason Dusek > > Off-list I suggested Jason use RFC 6570 URI templates, and define > variables like {+PWD} or {+HOME} in the context of his application (even > though "moustache templates" aren't aesthetically pleasing). I still think > that's probably the best way forward. > > Cheers, > Matty > >
Received on Friday, 10 June 2016 04:38:04 UTC