URN:RL — A Proposal

Table of Contents



This document describes a proposal for a real life locator scheme as part of the URN (Uniform Resource Name) scheme.

Real life URIs are proposed in the form of:


where the postal address is a hierarchical path in the form of a common URL path.



Why Real Life Locators

Because it's a shame that there's no rl-scheme by now.


urn-rl                  = "rl:"<real-name>"@"<postal-address>

real-name               = [<special-code>":"] (<personal-name> | <corporate-name>)
personal-name           = <personal-compound-name> | <alternate-personal-name>
corporate-name          = <fieldvalue>
special-code            = <fieldvalue>

personal-compound-name  = <firstname>["."<middlename>]"."<lastname>["."<index>]
firstname               = <namestring>
lastname                = <namestring>
middlename              = <namestring>|<initial>["."<middlename>]
index                   = <upper-case-roman-number>
namestring              = <fieldvalue>
initial                 = <uchar>

alternate-personal-name = <namestring>["."<namestring>]

postal-address          = <international-selector>"/"<national-selector>
international-selector  = <country-code>[":"<province-or-state>]
national-selector       = <city>"/"<postal-code>"/"<address-selector> |
country-code            = <2-letter-ISO-3166-country-code>
province-or-state       = <namestring>
city                    = <namestring>
postal-code             = <number> | <fieldvalue>
unique-postal-code      = <postal-code>
address-selector        = <address-path> | <postbox> | <simple-selector>

postbox                 = "~"<fieldvalue>

address-path            = <street>"/"<simple-selector>["#"<named-location-fragment>]
street                  = <namestring>
simple-selector         = (<number>[<uchar>]|<fieldvalue>)["/"<simple-selector>]
named-location-fragment = <fieldvalue>

fieldvalue              = 1*<uchar>
number                  = 1*("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
                             "8" | "9")
upper-case-roman-number = 1*("I" | "II" | "III" | "IV" | "V" | "VI" | "VII" |
                             "VIII" | "IX" | "X")


"uchar" is not extensively defined, but relates to RFC 1738. Spaces/blanks SHOULD be escaped using the "+" escape sequence. It is preferred to transliterate any national characters to US-ASCII (7bit), if applicable.

It is preferred to convert fields of type "namestring" to all-lower-case.

In addition to common definitions of "uchar" a single foot-mark (') is allowed in fields of type "namestring" and in the "named-location-fragment" to serve the purpose of an apostrophe. (e.g.: flann.o'brian)

Names of corporations or organisations may be written using upper case initials and may include escaped blanks (in stead of separating dots) in order to distinguish them from personal names and/or to preserve corporate identity.

Personal names that do not conform to the scheme of "personal-compound-name" (consisting of a compound of any lastname and at least one personal identifier) MUST use a dot (.) for any white space characters or other separators (see "alternate-personal-name").

"named-location-fragment" refers to any well known or elsewise attributed names like "Villa+Seeblick" or "Tudor+Manor".

The value of field "country-code" SHOULD be all lower-case like fields of type "namestring".

The "address-selector" may be obmitted for organization etc that are specified by a unique postal-code (see last example).

A minimal "address-selector" may consist of a single number, depending on local address schemes.

The "postal-code" may be an empty string, if there is no kind of postal code or other routing code available in this country.

Values of field "city" SHOULD be in international form (preferably English).

If there is no such a concept as of a city or a village, the value of field "city" MUST be either the name of the nearest such location applicable or the name of the installation specified (e.g. installation in Antartica).

The definition of "upper-case-roman-number" does not include a valid definition of roman numbers with values above 39.

Special codes (e.g.: key words, promotion-tickets) may be specified as the first part of field "real-name" using a separating colon (:). (See last two examples.)


Some examples for the application of this scheme are given here:






Derivative Forms

URN:RLT — Real Life Time-stamped

Extending the urn:rl-scheme, a timestamp in the form of


may be added to a URI of type urn:rl, such becoming a URI of type urn:rlt.

The value of field "timezone-acronym" SHOULD be all upper-case and defaults to "UTC".



URN:RLL — Real Life Location

An alternate form of urn:rl may be used to specify sole locations:

urn-rll         = "rll:" [<geo-location>"@"] <postal-address>
postal-address  = (see urn-rl)
geo-location    = <lat>,<lon>[,<alt>][;u=<uncertainty>]
                  (see RFC 5870, 'geo' URI for details)

In other words a urn:rl consisting of the sole "postal-address" part or substituting the "real-name" part by a geo-location conforming to RFC 5870 followed by a seaprating "@" becomes a urn:rll.

Note that there is at least one comma (,) in a URI of type urn:rll using a "geo-location" part, while there is no comma in the "real-name" part of a URI of type urn:rl.

URN:RLLT — Real Life Location Time-stamped

Should a timestamp (see urn-rlt) be added to a URI of type urn:rll, it such becomes a URI of type urn:rllt.

Note that a fully qualified URI of type urn:rllt (including a "geo-location" part and a precise timestamp) represents a 4D locator in both human and machine readable form.

Author, Notes on the Edition

Norbert Landsteiner, www.masswerk.at, Vienna, 2011-08-16


Edited: Vienna, 2011-08-25

Location of this document: http://www.masswerk.at/urn/urn-rl.html
A text-only version (text/plain) of this document is availble at: http://www.masswerk.at/urn/urn-rl.txt.