[Nml-wg] URN urn:ogf:network

Freek Dijkstra fdijkstr at science.uva.nl
Tue Sep 23 15:41:15 CDT 2008


Aaron Brown wrote:

> urn:ogf:network:domain=glif.is:[domain-specific-chunk]

This is an identifier of an *instance*, I was talking about identifier 
of *classes*.

E.g. in NDL:
"http://www.science.uva.nl/research/sne/ndl/#Device" is an identifier of 
a class, while "http://uva.netherlight.nl/#Lighthouse" is an identifier 
of an instance (of a Domain in this case).

Again, for class identifier, I don't have a preference for either URL or 
URN in some OGF namespace (urn:ogf:network, or 
http://ogf.org/ns/network, or similar).

As for instance identifiers, I have two major objections against 
"urn:ogf:network:domain=glif.is:3267"

1. This looks like a *query* to me, not an *identifier*. I associate 
"domain=glif.is:3267" with a SELECT clause. This confuses me.
I really like queries though, but don't see how that will fit here.
Imagine I want to query for this identifier. Should I write
"WHERE identifier=urn:ogf:network:domain\=glif.is:3267"?
Better is: "urn:ogf:network:domain:glif.is:3267"

2. I don't see the need for the prefix "urn:ogf:network". The actual 
identifying part is "glif.is:3267". The "urn:ogf:network:domain:" is 
only there to set the type. However, the type (network in this case) is 
probably clear from the context.
Imagine that all DNS identifier had to be prefixed with "dns:". So, we 
wou;d have to type "protocol:http://dns:www.google.com.path:/"
(or worse: "urn.ietf.url:protocol=http:dns=www.google.com.:path=/").
Better: remove the type information: "glif.is:3267"
(see the resemblance with Internet2' GRI identifiers here?)

So the best choice in my view is to use "glif.is:3267" as an identifier. 
It is short. It is unique. It is transparent to a program (a unique 
string). It is easy to query ("WHERE domain STARTS WITH "glif.is:".
It is human readable -- in short, it is all an identifier has to be.
Why make it more complex?

Regards,
Freek


More information about the nml-wg mailing list