[urn] Proposal: urn:local: namespace for context-scoped identifiers

Melvin Carvalho <[email protected]> Fri, 2 Jan 2026 20:34:10 +0100
Newsgroups gmane.ietf.urn
Message-ID <CAKaEYhLMACgjFzWm96SR5B+wPtr=NJ_hxhq6yBneCQTmWj_-AQ@mail.gmail.com>
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]
To unsubscribe send an email to [email protected]