[
Lists Home |
Date Index |
Thread Index
]
Clark C . Evans writes:
> On Tue, Dec 18, 2001 at 01:15:43PM -0000, Leigh Dodds wrote:
> | For Java purposes, why not use the javadoc URI?
> | e.g. http://java.sun.com/j2se/1.3/docs/api/java/lang/Integer.html
> works across multiple languages. After reading the
> RFC a bit more, I was thinking something like this:
>
> type://language/the/package/path#classname
Some comments:
1. The "//" is the hostname separator, and doesn't make sense for
this kind of URN. So your template becomes
type:language/the/package/path#classname
2. I can see how you make names for classes in modules, but there's
more to it than that. Most languages (not all) have some types
for which there is no corresponding named type in the package
namespace. Numeric types often fall into this category; think
of "int" in C/C++. How could these be spelled? Perhaps there
needs to be another "chunk" to the URNs. Let's try this, and
change the "chunk separator" to ":" instead of "/", to make it
more easily distinguished:
type:language:intrinsic/int
A class in a package/module might then be:
type:java:class/java/lang#String
type:python:class/win32com/client#genpy
type:perl:class/Net/Ftp
3. Have you considered types that are defined abstractly rather
than for a specific programming language? Say, in an interface
definition language such as CORBA IDL, or some other formal
specification?
type:abstract:ieee754/double
type:abstract:corba/3.0/my/module#interface
There are still (huge!) potential problems with these, I think.
Versioning is as much a problem here as in other areas, and would
probably need to be dealt with. Naming conflicts exist in the space
being described, as well, so it's hard to name types that have the
same name by coincidence: suppose two companies build their own
MailSystem::Server interface using CORBA, and your job is to write a
report explaining which one your employer should adopt.
-Fred
--
Fred L. Drake, Jr. <fdrake at acm.org>
PythonLabs at Zope Corporation
|