you certainly wonder what could be in my mind the link between yesterday's
"finger" and URNs discussions.
Dan suggested:
> ... click <A HREF="finger://my.domain/myloginname">here</a>...
>
> I'm not sure about the URL syntax for a finger query... you should check
> the spec or the code or something.
and Dave wrote:
> By using URNs we can decouple this from the document format itself. I have
> recently posted a note on how this can be achieved using a DNS like
> distributed name lookup scheme for lifetime identifiers and a mechanism for
> selecting between variants. This could be available by the end of this year.
Now, let's imagine we have a very strong directory service that:
- provides white or yellow pages informations
- has powerful searching capabilities
- can easily store Web URLs
- is the perfect response to a "distributed name lookup scheme"
And, on the other hand, a protocol that:
- allows you to access this directory service
- but is not restricted to it (finger, whois+*... compatibility)
- uses User Friendly Naming
- has a centroid approach of servers networking
- is so simple that a nice client module could be easily integrated in
the common WWW library
maybe we'd have a solution to both problems.
But those things exist yet, namely X.500 and SOLO:
- X.500 is THE directory service, but it's HUGE to implement, even as
a client.
- SOLO has only one command: SOLO <ufn>?attributes. Its results are
easily parsable, and fit perfectly in an hypertext browser: if the
name is not found, we get suggestions, and we can create hypertext
links with that.
On server side, you can implement SOLO just a la finger, but you can
also build an X.500 access server with it. Thus we have done a WWW/SOLO
gateway that provides X.500 and SOLO servers access from a WWW client. And, of
course, we have put URL attributes in our X.500 directory.
But more efficient is is what we're doing now: add to libwww a module (smaller
than gopher one) that:
- given a "solo://server/" URL
example "solo://mitsou.inria.fr/"
returns you a FORM to query the server
- given a "solo://server/ufn?attributes" URL
example "solo://mitsou.inria.fr/huitema?*"
sends the query to the server, and parses results:
- if suggestions returned -> hypertext links to other queries
- if name found -> HTML result
- if URL attributes found in entry -> hypertext links
- and if a "SmallPhoto" URL found -> include it in result
- could be extended (suggestions ?), but we want to keep it SIMPLE
- given a "x500:ufn?attributes" URL
example "x500:kostner,nexor,england?phone,address,email,url"
does the same, but using an X.500 access server defined in your
environment (which must be a SOLO server, of course ;-). So, you can
use the nearest entry point in X.500 world.
- given a "urn:name" URL
example "urn:CN=testdoc,O=inria,C=fr"
returns the latest version of a document using the same X.500 access
server
- given a "urn:name#version" URL
example "urn:CN=testdoc,O=inria,C=fr#1.0.1"
returns the named version of the document
We are submitting a paper on this topic for the WWW-94 conference, so if
you're interested in it, you'll find further explanations on CERN's server.
If you want more informations about SOLO, have a look at the draft RFC:
draft-huitema-solo-00.txt
Cheers,
-JCT-
<A HREF="solo://perignon.inria.fr:2222/touvet?*"> JC Touvet </A>
<A HREF="x500:pap,inria,france?*"> Paul-Andre Pays </A>
<A HREF="urn:CN=Solo/WWW%20paper,O=inria,C=fr"> The paper (soon) </A>