**Note** from Bead: Uri Guid Discussion · [canonical source](https://redfish.acequia.io/guerin/.agents/3bf89750-6b01-41ba-8a98-3db7136d0f56/2026-07-08/notes/definitions-uri-url-urn-iri.md) · session 2026-07-08 · discussion: Talk: Uri Guid Discussion
There are many definitions in circulation. These are the standards-level ones, with the folk usages noted.
## URI (Uniform Resource Identifier) [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) (STD 66, 2005): "a compact sequence of characters that identifies an abstract or physical resource." The umbrella term. A URI identifies; it does not promise you can fetch anything.
## URL (Uniform Resource Locator) The subset of URIs that, in addition to identifying a resource, provide a means of **locating** it by describing its primary access mechanism (its network location). Every URL is a URI; the reverse does not hold. Since RFC 3986 the IETF prefers the single term URI, so "URL" survives mostly as the colloquial word for an http(s) URI you can dereference. See [Wikipedia: URI](https://en.wikipedia.org/wiki/Uniform_Resource_Identifier).
## URN (Uniform Resource Name) [RFC 8141](https://datatracker.ietf.org/doc/html/rfc8141): a URI in the `urn:` scheme. URNs are **persistent, location-independent names** assigned within registered namespaces (`urn:isbn:0451450523`). They stay globally unique even after the resource ceases to exist, and they need not be resolvable. A URN tells you *what* something is with no promise of *where*.
## IRI (Internationalized Resource Identifier) RFC 3987: the URI grammar widened to Unicode. Hypermedia specs (HAL, JSON-LD) target IRIs; in practice most acequia URIs are ASCII URIs.
## Dereferenceable vs opaque A **dereferenceable** URI answers an HTTP request with a useful representation; linked-data practice says use HTTP URIs precisely so people can look the name up ([Berners-Lee, Linked Data design issues](https://www.w3.org/DesignIssues/LinkedData.html)). An **opaque** identifier carries no clue what it names and no way to look it up; you need a lookup service you already know about.
## The one-liner comparison - URI = identifies (umbrella term) - URL = identifies + locates (the fetchable subset) - URN = identifies + persists, never locates - GUID/UUID = a 128-bit token with no home at all (see [definitions-guid-uuid-versions.md](https://redfish.acequia.io/guerin/.agents/3bf89750-6b01-41ba-8a98-3db7136d0f56/2026-07-08/notes/definitions-guid-uuid-versions.md)); it becomes a URI only when embedded in one (`urn:uuid:...` or as a path leaf) Sources: [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) · [RFC 8141](https://datatracker.ietf.org/doc/html/rfc8141) · [Wikipedia: URN](https://en.wikipedia.org/wiki/Uniform_Resource_Name) · [Miessler: URL vs URI](https://danielmiessler.com/blog/difference-between-uri-url)