[urn] Re: Proposal: urn:local: namespace for context-s coped identifiers
Graham Klyne <[email protected]> Wed, 7 Jan 2026 17:25:51 +0000
| Newsgroups | gmane.ietf.urn,gmane.org.w3c.uri |
|---|---|
| Message-ID | <[email protected]> |
Hi!
Agreeing with the other responses, I note that there exists a URI scheme that
has local(ish) semantics, viz file:.
Despite working with URIs for many years, it was relatively late in the day that
I noticed the way that the authority part of file: URIs is defined:
A file URL takes the form:
file://<host>/<path>
where <host> is the fully qualified domain name of the system on
which the <path> is accessible, and <path> is a hierarchical
directory path of the form <directory>/<directory>/.../<name>.
-- https://datatracker.ietf.org/doc/html/rfc1738#section-3.10
(and similar in https://datatracker.ietf.org/doc/html/rfc8089#section-2)
I felt this was a helpful aspect as it provides a way to provide a globally
unique form of URI without guaranteeing accessibility, while allowing a
convenient "local reference" form.
Just sayin'
#g
On 05/01/2026 11:14, Ted Hardie wrote:
> Howdy,
>
> I agree with Martin that this seems to be a poor fit for the URN properties. If
> something like urn:local:version does not mean the same thing in all contexts,
> this doesn't seem like it's a good candidate for using a URN.
>
> I also agree with him that you could probably create a URI scheme that had the
> relevant properties, using something like "local-scope-data" as the name of the
> scheme; you could probably also reuse the NSS definitions from the URN documents
> as syntax if those truly do match what you want.
>
> I am somewhat skeptical, though, that trying to create a single scheme to cover
> this set of use cases:
>
> * Distributed configs and state machines (urn:local:version, urn:local:pool)
> * Configuration artifacts (urn:local:database, urn:local:cache)
> * JSON-LD and other graph-shaped documents requiring local entity references
> * Multi-tenant systems with per-context identifiers
> * Structured data processing by generic agents (including, but not limited to,
> AI systems)
>
> is going to be easy or successful. At best, i think you will have created a
> single-bit context marker for an opaque string, with all the relevant semantics
> being utterly opaque at the URI layer. I think that means that the advantage
> over this:
>
> Ad-hoc names ("version", “config”) lack URI semantics and machine cues
>
> will be minimal.
>
> If you have a single use case that you believe will drive adoption, I'd suggest
> starting with that single protocol context, using a provisional registration of
> something like local-scope-data, and see if it gets taken up. If it does, you
> can use that experience to review the initial definition and propose other
> contexts of use.
>
> best regards,
>
> Ted Hardie
>
> On Mon, Jan 5, 2026 at 6:13 AM Martin J. Dürst <[email protected]
> <mailto:[email protected]>> wrote:
>
> Hello Melvin, others,
>
> Reading the Introduction to RFC 6963 (urn:example: URN namespace,
> https://www.rfc-editor.org/rfc/rfc6963.html#section-1
> <https://www.rfc-editor.org/rfc/rfc6963.html#section-1>), and given the
> general idea that URNs should be stable and unique, I'm not sure at all
> that a urn:local: namespace is a good idea.
>
> Your explanations seem to fit much more with a "local:" URI scheme. URI
> schemes have much less restrictions on their semantics than URN
> namespaces. (copying the uri list)
>
> Another issue is that "local" isn't very clearly defined. Many mime
> media types can contain information from different origins; if "local"
> identifiers from different origins get mixed, there may be conflicts.
>
> Regards, Martin.
>
> On 2026-01-03 04:34, Melvin Carvalho wrote:
> > Hello,
> >
> > I would like to propose a new URN namespace for explicitly context-scoped
> > identifiers:
> >
> > - urn:local:
> >
> > PROBLEM
> >
> > In many systems that process structured data (e.g., JSON-LD documents,
> > ledgers, configuration artifacts, protocol messages), there is a recurring
> > need for identifiers that are intentionally local to a defined scope.
> >
> > Existing approaches have drawbacks:
> >
> > * http(s) URLs imply dereferenceability, even when none is intended
> > * did: methods require resolvers and global identity semantics
> > * RDF blank nodes (_:) are RDF-specific and opaque outside that ecosystem
> > * urn:example: is reserved for documentation only (RFC 6963)
> > * Ad-hoc names ("version", “config”) lack URI semantics and machine cues
> >
> > What is missing is a clear, protocol-agnostic way to signal "this
> > identifier is local by design."
> >
> > PROPOSAL
> >
> > Define urn:local: as a URN namespace for identifiers whose meaning is
> > explicitly scoped to a containing context.
> >
> > Examples:
> >
> > * urn:local:version — "version" of software or specification
> > * urn:local:db:primary — primary database in this configuration
> > * urn:local:user:alice — user "alice" within this system context
> >
> > SEMANTICS
> >
> > When an agent encounters urn:local:<NSS>:
> >
> > 1. No external resolution MUST be attempted
> > 2. Interpretation MUST be limited to the applicable scope
> >
> > The scope is defined by the containing artifact (e.g., document, message,
> > configuration unit) and/or by an application-specific profile that
> > establishes the processing context.
> >
> > RATIONALE
> >
> > URNs are syntactically absolute identifiers, but this proposal uses that
> > property to provide unambiguous signaling.
> >
> > urn:local: is analogous to relative references in URI processing: the
> > identifier is globally well-formed, while its interpretation is
> > intentionally context-dependent.
> >
> > This follows the precedent of RFC 6963 (urn:example:), which introduced a
> > utility namespace for a narrowly defined, non-resolvable purpose.
> >
> > USE CASES
> >
> > * Distributed configs and state machines (urn:local:version, urn:local:pool)
> > * Configuration artifacts (urn:local:database, urn:local:cache)
> > * JSON-LD and other graph-shaped documents requiring local entity references
> > * Multi-tenant systems with per-context identifiers
> > * Structured data processing by generic agents (including, but not limited
> > to, AI systems)
> >
> > SYNTAX
> >
> > urn:local:<NSS>
> >
> > Where <NSS> follows RFC 8141 rules for Namespace Specific Strings.
> > Hierarchical naming (e.g., urn:local:foo:bar) would be permitted.
> >
> > QUESTIONS FOR THE LIST
> >
> > 1. Is there interest in pursuing a short Internet-Draft for this?
> > 2. Are there existing mechanisms that already address this cleanly?
> > 3. Any concerns with the local NID or the proposed semantics?
> >
> > If there is interest, I am happy to draft a specification.
> >
> > Best regards,
> >
> > Melvin Carvalho
> >
> > References:
> > RFC 8141: Uniform Resource Names (URNs)
> > RFC 6963: A URN Namespace for Examples (urn:example:)
> >
> >
> > _______________________________________________
> > urn mailing list -- [email protected] <mailto:[email protected]>
> > To unsubscribe send an email to [email protected]
> <mailto:[email protected]>
>
> _______________________________________________
> urn mailing list -- [email protected] <mailto:[email protected]>
> To unsubscribe send an email to [email protected] <mailto:[email protected]>
>
_______________________________________________
urn mailing list -- [email protected]
To unsubscribe send an email to [email protected]