urn:foo.com:abc123def
where:
This requires four steps:
Its also usefull for the generic objects scenario, where a client can display a URL it does have cached, while waiting for the correct one to be downloaded e.g.
WWWInline {
name [ "urn:foo.com:abc126, # A URN for the fancy phone
"http://www.foo.com/fancyphone.wrl", # Where we know there is a copy
"http://vrml.org/generic/phone.wrl ] # A generic version to use now
}
# We have the object library from foo.com here
urn:foo.com:* @file:c:/objectlib/foo/index.urn
# Maybe we have the URN cached from earlier
* @file:e:/objectcache/index.urn
# Try looking in d: (the CDROM) maybe its there
* @file:d:/index.urn
Note the "@" to denote to look in that file, rather than return the file.
Lower level URN files would look something like
urn:foo.com:abc123 file:c:/objectlib/foo/table.wrl
urn:foo.com:abc124 file:c:/objectlib/foo/chair.wrl
Of course, a clever browser might implement its own, more efficient, binary format, but we need a common shared format.
This is implemented by:
urn:bar.com:* @http://bar.com
urn:* @http://vrml.org