tag URI scheme

From Wikipedia, the free encyclopedia

The tag URI scheme is a uniform resource identifier (URI) scheme for unique identifiers called tags, defined by RFC 4151 in October 2005.[1][2]

The RFC identifies four requirements for tags:[1]

  • Identifiers are likely to be unique across space and time, and come from a practically inexhaustible supply.
  • Identifiers are relatively convenient for humans to mint (create), read, type, remember etc.
  • No central registration is necessary, at least for holders of domain names or email addresses; and there is negligible cost to mint each new identifier.
  • The identifiers are independent of any particular resolution scheme.

Tags are used extensively in YAML.[3]


The general syntax of a tag URI is:[1]

"tag:" authorityName "," YYYY-MM-DD-date ":" specific [ "#" fragment ]

In this syntax, the authorityName is either a domain name or an email address, and the date is in the YYYY-MM-DD format, such as 2017-01-01. Thus, a specific tag is tied to a specific domain name or email address at a specific point of time. It is required that the "tagging entity" creating the tag be in control of the specified domain or email address as of 00:00 UTC on the specified date. This requirement makes each tag globally and persistently unique. The authority name alone would not suffice for global uniqueness, since the ownership of domains and email addresses is subject to change.

The date used in a tag may be a past date, provided the tagging entity controlled the authority name on that past date. An entity which acquires control of an authority name immediately after a period when it was unassigned is allowed to mint tags as if it controlled the authority name during the unassigned period, provided the entity has evidence that the name was unassigned. The date used in a newly-minted tag may not be a date in the future.

The date may be abbreviated; the month and day default to 01, but tags which have defaulted month and day values are reckoned as different from tags where the 01 value is specified. Thus,

  • tag:example.com,2004:1234
  • tag:example.com,2004-01:1234
  • tag:example.com,2004-01-01:1234

are all different tags and might have different referents. They all should have been minted by the same tagging entity (specifically, whoever controlled example.com on January 1, 2004 00:00 UTC). If a different entity gained control of example.com at 00:05 UTC on that date, it would not be allowed to mint tags until the following date, and it would not ever be able to use the abbreviated forms, 2004 or 2004-01.

Examples of tag URIs are:

  • tag:timothy@hpl.hp.com,2001:web/externalHome
  • tag:sandro@w3.org,2004-05:Sandro
  • tag:my-ids.com,2001-09-15:TimKindberg:presentations:UBath2004-05-19
  • tag:blogger.com,1999:blog-555
  • tag:yaml.org,2002:int#section1

See also[edit]


  1. ^ a b c Kindberg, T.; Hawke, S. (October 2005). "The 'tag' URI Scheme". Internet Engineering Task Force. Retrieved 1 September 2015.
  2. ^ "Tag URI". Retrieved 2007-11-02.
  3. ^ "YAML specification". Retrieved 2007-11-02.