On Mon, Mar 29, 2010 at 5:07 AM, Mark Evenson evenson@panix.com wrote:
On 3/28/10 5:26 PM, Alan Ruttenberg wrote: […]
The reserved characters are scheme specific. I'd suggest that there be a generic function eql dispatch on the scheme to compute namestrings.
Since URL handlers can be added at runtime, which is the case with the OSGi handler for the "bundle" scheme that we are interested in supporting, we can't make an EQL specializer ahead of time for everything we will encounter. I was hoping to use the Java implementations of the URLStreamHandler for the schemes help out here, but I don't see much. At the moment I'm favoring just implementing such a specializer for "http" and "bundle", creating a protocol for a user to add a specializer, and calling it a day.
+ ftp, https, urn, info would all be common in my world.
btw, I'm not sure mixing the authority and port is the best choice - they tend to be separate items. Also, how to do fragments ("#anchor") and queries (?q=blah) for http URIs?
Do we want the namestring to always be the encoded form? I was planning to have the namestring be what the user used to create the URL-PATHNAME, but always encode before going to the network. I need to think about this more.
It's a good question. The thing is that with an http URI you want to be able to format it for inclusion in a web page, or to execute an http get on it. So you need to access the encoded form in an easy way. I'm leaning to namestring as the way of retrieving that, but I suppose it doesn't matter as long as their's some function.
Will the logical pathname system interact with URL pathnames? I'm thinking I could probably make use of the analogy between prefixes and logical hosts.
By prefix you mean schemes like "http" or "ftp" right?
No, I mean qnames/curies http://www.w3.org/TR/curie/ http://www.w3.org/2001/tag/doc/qnameids-2004-03-17 http://www.w3.org/TeamSubmission/turtle/#terms "@prefix" http://www.w3.org/TR/rdf-sparql-query/#QSynIRI
I was currently planning to have URL pathnames explicitly not be allowed as logical hosts, because if one defined a logical host named "http", one could then never unambiguously construct an "http" scheme URL via #P"http://example.org/foo.lisp". We could require that a logical host *has* to be in upper case? In that case, I guess the two could co-exist.
Could you give an example of the sort of logical pathname definitions you would use? Incorporating something like wildcards for the URI authority is going to need some thought, but wouldn't be impossible.
I hadn't thought about wild cards at all. Maybe the use of logical pathnames for this is overambitious and I should think of this facility for URLs and retain my current system for dealing with URIs.
http://mumble.net:8080/svn/lsw/trunk/util/namespace.lisp http://mumble.net:8080/svn/lsw/trunk/util/uri.lisp
Best,
-Alan
-- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now."
armedbear-devel mailing list armedbear-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel