Open Publication URNs v0.1.0
Open Publication URNs v0.1.0
Status
Draft
Overview
Open Publication URNs v0.1.0 defines the urn:pub: identifier scheme for published
document families and immutable published document versions.
The goal of this specification is to provide a stable, machine-readable identifier model that agents can use across publication hosts, listings, manifests, and retrieved documents.
This version specifies:
- the
urn:pub:family and version identifier formats - the meaning of
namespace,name, andversion - the minimum uniqueness and immutability rules for publication URNs
- the relationship between family URNs and version URNs
This version does not specify:
- how namespaces are claimed
- how URNs are resolved to HTTP URLs
- how publication hosts determine the latest version within a family
- how publication metadata is encoded in JSON or HTML
Terminology
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document are to be interpreted as described in BCP 14 when, and only when, they appear in all capitals.
Concepts
Published Document
A published document is a human-readable artifact that has been assigned a stable publication identity.
Examples include:
- specifications
- design notes
- protocol drafts
- ADRs
Namespace
A namespace is the publisher-scoped grouping key for a family of published
documents.
Examples include:
iloweacme
This version treats the namespace as an opaque string.
Name
A published document family has a stable human-readable name such as
task-model or pdd-gorilla-inspired.
name identifies the family within its namespace.
Version
A published document version is identified by a version string such as:
0.1.00.3.02026-02-25
This version permits semver-style versions and date-style versions.
This specification treats version as an opaque string.
Family URN
A published document family is identified by a stable family URN:
urn:pub:<namespace>:<name>
Example:
urn:pub:ilowe:spec-publication-protocol
Version URN
A published document version is identified by an immutable version URN:
urn:pub:<namespace>:<name>:<version>
Example:
urn:pub:ilowe:spec-publication-protocol:0.3.0
Syntax
This version defines the urn:pub: scheme structurally as:
- family URN:
urn:pub:<namespace>:<name> - version URN:
urn:pub:<namespace>:<name>:<version>
This version does not impose a character-level grammar beyond the requirement
that namespace, name, and version be represented without ambiguity by the
publishing system that issues them.
Future versions SHOULD define tighter character and escaping rules.
Identity Rules
- The pair
(namespace, name)uniquely identifies a published document family. - The triple
(namespace, name, version)uniquely identifies a published document version. - The family URN
urn:pub:<namespace>:<name>uniquely identifies a published family. - The version URN
urn:pub:<namespace>:<name>:<version>uniquely identifies one immutable published version. - A published version URN belongs to exactly one family URN formed by removing
the trailing
:<version>segment. - A publisher MUST NOT assign the same family URN to multiple document families.
- A publisher MUST NOT assign the same version URN to multiple published versions.
- Once published, a version URN MUST remain immutable.
- A publisher MUST NOT reuse a family URN for unrelated content.
Derived Relationships
Given a version URN:
urn:pub:<namespace>:<name>:<version>
the corresponding family URN is:
urn:pub:<namespace>:<name>
Given a family URN:
urn:pub:<namespace>:<name>
zero or more version URNs MAY exist beneath that family.
Resolution Model
This specification defines identity only. It does not define URL resolution.
Other protocols MAY define how a publication host maps:
- a family URN to a latest alias URL
- a version URN to a canonical human-readable URL
- a family URN to a family index URL
References
Example
Document family:
- family URN:
urn:pub:ilowe:task-model
Published versions:
urn:pub:ilowe:task-model:0.1.0urn:pub:ilowe:task-model:0.2.0
Versioned note family:
- family URN:
urn:pub:ilowe:pdd-gorilla-inspired
Published versions:
urn:pub:ilowe:pdd-gorilla-inspired:2026-02-25
Open Questions
- Should a future version require a stricter grammar for
namespace,name, andversion? - Should a future version define namespace claim and transfer rules?
- Should a future version define a canonical normalization form for case-sensitivity and escaping?