RFC 4151 INFORMATIONAL URI · IDENTIFIERS · NAMING

The 'tag' URI Scheme

A way to mint names that nobody else can hand out, without asking anyone's permission first.

On rfc-editor.org ↗
PUBLISHED
October 2005
AUTHORS
T. Kindberg, S. Hawke
STREAM
IETF
SCHEME NAME
tag
IANA STATUS
Permanent
DATE FORMATS ALLOWED
YYYY, YYYY-MM and YYYY-MM-DD
DEFAULT MONTH AND DAY
01
RESOLUTION MECHANISM
None
EXAMPLE TAG
tag:timothy@hpl.hp.com,2001:web/externalHome
DOI
10.17487/RFC4151
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        T. Kindberg
Request for Comments: 4151                   Hewlett-Packard Corporation
Category: Informational                                         S. Hawke
                                               World Wide Web Consortium
                                                            October 2005


                          The 'tag' URI Scheme

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Disclaimer

   The views and opinions of authors expressed herein do not necessarily
   state or reflect those of the World Wide Web Consortium, and may not
   be used for advertising or product endorsement purposes.  This
   proposal has not undergone technical review within the Consortium and
   must not be construed as a Consortium recommendation.

Abstract

   This document describes the "tag" Uniform Resource Identifier (URI)
   scheme.  Tag URIs (also known as "tags") are designed to be unique
   across space and time while being tractable to humans.  They are
   distinct from most other URIs in that they have no authoritative
   resolution mechanism.  A tag may be used purely as an entity
   identifier.  Furthermore, using tags has some advantages over the
   common practice of using "http" URIs as identifiers for
   non-HTTP-accessible resources.

Table of Contents

   1. Introduction ....................................................2
      1.1. Terminology ................................................3
      1.2. Further Information and Discussion of this Document ........4
   2. Tag Syntax and Rules ............................................4
      2.1. Tag Syntax and Examples ....................................4
      2.2. Rules for Minting Tags .....................................5
      2.3. Resolution of Tags .........................................7
      2.4. Equality of Tags ...........................................7
   3. Security Considerations .........................................7
   4. IANA Considerations .............................................8
   5. References ......................................................9
      5.1. Normative References .......................................9
      5.2. Informative References .....................................9

1.  Introduction

   A tag is a type of Uniform Resource Identifier (URI) [1] designed to
   meet the following requirements:

   1.  Identifiers are likely to be unique across space and time, and
       come from a practically inexhaustible supply.

   2.  Identifiers are relatively convenient for humans to mint
       (create), read, type, remember etc.

   3.  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.

   4.  The identifiers are independent of any particular resolution
       scheme.

   For example, the above requirements may apply in the case of a user
   who wants to place identifiers on their documents:

   a.  The user wants to be reasonably sure that the identifier is
       unique.  Global uniqueness is valuable because it prevents
       identifiers from becoming unintentionally ambiguous.

   b.  The identifiers should be tractable to the user, who should, for
       example, be able to mint new identifiers conveniently, to
       memorise them, and to type them into emails and forms.

   c.  The user does not want to have to communicate with anyone else in
       order to mint identifiers for their documents.

   d.  The user wants to avoid identifiers that might be taken to imply
       the existence of an electronic resource accessible via a default
       resolution mechanism, when no such electronic resource exists.

   Existing identification schemes satisfy some, but not all, of the
   requirements above.  For example:

   UUIDs [5], [6] are hard for humans to read.

   OIDs [7], [8] and Digital Object Identifiers [9] require entities to
   register as naming authorities, even in cases where the entity
   already holds a domain name registration.

   URLs (in particular, "http" URLs) are sometimes used as identifiers
   that satisfy most of the above requirements.  Many users and
   organisations have already registered a domain name, and the use of
   the domain name to mint identifiers comes at no additional cost.  But
   there are drawbacks to URLs-as-identifiers:

   o  An attempt may be made to resolve a URL-as-identifier, even though
      there is no resource accessible at the "location".

   o  Domain names change hands and the new assignee of a domain name
      can't be sure that they are minting new names.  For example, if
      example.org is assigned first to a user Smith and then to a user
      Jones, there is no systematic way for Jones to tell whether Smith
      has already used a particular identifier such as
      http://example.org/9999.

   o  Entities could rely on purl.org or a similar service as a
      (first-come, first-served) assigner of unique URIs; but a solution
      without reliance upon another entity such as the Online Computer
      Library Center (OCLC, which runs purl.org) may be preferable.

   Lastly, many entities -- especially individuals -- are assignees of
   email addresses but not domain names.  It would be preferable to
   enable those entities to mint unique identifiers.

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119.

1.2.  Further Information and Discussion of this Document

   Additional information about the tag URI scheme -- motivation,
   genesis, and discussion -- can be obtained from
   http://www.taguri.org.

   Earlier versions of this document have been discussed on uri@w3.org.
   The authors welcome further discussion and comments.

2.  Tag Syntax and Rules

   This section first specifies the syntax of tag URIs and gives
   examples.  It then describes a set of rules for minting tags that is
   designed to make them unique.  Finally, it discusses the resolution
   and comparison of tags.

2.1.  Tag Syntax and Examples

   The general syntax of a tag URI, in ABNF [2], is:

      tagURI = "tag:" taggingEntity ":" specific [ "#" fragment ]

   Where:

      taggingEntity = authorityName "," date
      authorityName = DNSname / emailAddress
      date = year ["-" month ["-" day]]
      year = 4DIGIT
      month = 2DIGIT
      day = 2DIGIT
      DNSname = DNScomp *( "."  DNScomp ) ; see RFC 1035 [3]
      DNScomp = alphaNum [*(alphaNum /"-") alphaNum]
      emailAddress = 1*(alphaNum /"-"/"."/"_") "@" DNSname
      alphaNum = DIGIT / ALPHA
      specific = *( pchar / "/" / "?" ) ; pchar from RFC 3986 [1]
      fragment = *( pchar / "/" / "?" ) ; same as RFC 3986 [1]

   The component "taggingEntity" is the name space part of the URI.  To
   avoid ambiguity, the domain name in "authorityName" (whether an email
   address or a simple domain name) MUST be fully qualified.  It is
   RECOMMENDED that the domain name should be in lowercase form.
   Alternative formulations of the same authority name will be counted
   as distinct and, hence, tags containing them will be unequal (see
   Section 2.4).  For example, tags beginning "tag:EXAMPLE.com,2000:"
   are never equal to those beginning "tag:example.com,2000:", even
   though they refer to the same domain name.

   Authority names could, in principle, belong to any syntactically
   distinct namespaces whose names are assigned to a unique entity at a
   time.  Those include, for example, certain IP addresses, certain MAC
   addresses, and telephone numbers.  However, to simplify the tag
   scheme, we restrict authority names to domain names and email
   addresses.  Future standards efforts may allow use of other authority
   names following syntax that is disjoint from this syntax.  To allow
   for such developments, software that processes tags MUST NOT reject
   them on the grounds that they are outside the syntax defined above.

   The component "specific" is the name-space-specific part of the URI:
   it is a string of URI characters (see restrictions in syntax
   specification) chosen by the minter of the URI.  Note that the
   "specific" component allows for "query" subcomponents as defined in
   RFC 3986 [1].  It is RECOMMENDED that specific identifiers should be
   human-friendly.

   Tag URIs may optionally end in a fragment identifier, in accordance
   with the general syntax of RFC 3986 [1].

   In the interests of tractability to humans, tags SHOULD NOT be minted
   with percent-encoded parts.  However, the tag syntax does allow
   percent-encoded characters in the "pchar" elements (defined in RFC
   3986 [1]).

   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

2.2.  Rules for Minting Tags

   As Section 2.1 has specified, each tag includes a "tagging entity"
   followed, optionally, by a specific identifier.  The tagging entity
   is designated by an "authority name" -- a fully qualified domain name
   or an email address containing a fully qualified domain name --
   followed by a date.  The date is chosen to make the tagging entity
   globally unique, exploiting the fact that domain names and email
   addresses are assigned to at most one entity at a time.  That entity
   then ensures that it mints unique identifiers.

   The date specifies, according to the Gregorian calendar and UTC, any
   particular day on which the authority name was assigned to the
   tagging entity at 00:00 UTC (the start of the day).  The date MAY be
   a past or present date on which the authority name was assigned at
   that moment.  The date is specified using one of the "YYYY",
   "YYYY-MM" and "YYYY-MM-DD" formats allowed by the ISO 8601 standard
   [4] (see also RFC 3339 [10]).  The tag specification permits no other
   formats.  Tagging entities MUST ascertain the date with sufficient
   accuracy to avoid accidentally using a date on which the authority
   name was not, in fact, assigned (many computers and mobile devices
   have poorly synchronised clocks).  The date MUST be reckoned from
   UTC, which may differ from the date in the tagging entity's local
   timezone at 00:00 UTC.  That distinction can generally be safely
   ignored in practice, but not on the day of the authority name's
   assignment.  In principle it would otherwise be possible on that day
   for the previous assignee and the new assignee to use the same date
   and, thus, mint the same tags.

   In the interests of brevity, the month and day default to "01".  A
   day value of "01" MAY be omitted; a month value of "01" MAY be
   omitted unless it is followed by a day value other than "01".  For
   example, "2001-07" is the date 2001-07-01 and "2000" is the date
   2000-01-01.  All date formulations specify a moment (00:00 UTC) of a
   single day, and not a period of a day or more such as "the whole of
   July 2001" or "the whole of 2000".  Assignment at that moment is all
   that is required to use a given date.

   Tagging entities should be aware that alternative formulations of the
   same date will be counted as distinct and, hence, tags containing
   them will be unequal.  For example, tags beginning
   "tag:example.com,2000:" are never equal to those beginning
   "tag:example.com,2000-01-01:", even though they refer to the same
   date (see Section 2.4).

   An entity MUST NOT mint tags under an authority name that was
   assigned to a different entity at 00:00 UTC on the given date, and it
   MUST NOT mint tags under a future date.

   An entity that acquires an authority name immediately after a period
   during which the name was unassigned MAY mint tags as if the entity
   were assigned the name during the unassigned period.  This practice
   has considerable potential for error and MUST NOT be used unless the
   entity has substantial evidence that the name was unassigned during
   that period.  The authors are currently unaware of any mechanism that
   would count as evidence, other than daily polling of the "whois"
   registry.

   For example, Hewlett-Packard holds the domain registration for hp.com
   and may mint any tags rooted at that name with a current or past date
   when it held the registration.  It must not mint tags, such as
   "tag:champignon.net,2001:", under domain names not registered to it.
   It must not mint tags dated in the future, such as
   "tag:hp.com,2999:".  If it obtains assignment of
   "extremelyunlikelytobeassigned.org" on 2001-05-01, then it must not
   mint tags under "extremelyunlikelytobeassigned.org,2001-04-01" unless
   it has evidence proving that name was continuously unassigned between
   2001-04-01 and 2001-05-01.

   A tagging entity mints specific identifiers that are unique within
   its context, in accordance with any internal scheme that uses only
   URI characters.  Tagging entities SHOULD use record-keeping
   procedures to achieve uniqueness.  Some tagging entities (e.g.,
   corporations, mailing lists) consist of many people, in which case
   group decision-making SHOULD also be used to achieve uniqueness.  The
   outcome of such decision-making could be to delegate control over
   parts of the namespace.  For example, the assignees of example.com
   could delegate control over all tags with the prefixes
   "tag:example.com,2004:fred:" and "tag:example.com,2004:bill:",
   respectively, to the individuals with internal names "fred" and
   "bill" on 2004-01-01.

2.3.  Resolution of Tags

   There is no authoritative resolution mechanism for tags.  Unlike most
   other URIs, tags can only be used as identifiers, and are not
   designed to support resolution.  If authoritative resolution is a
   desired feature, a different URI scheme should be used.

2.4.  Equality of Tags

   Tags are simply strings of characters and are considered equal if and
   only if they are completely indistinguishable in their machine
   representations when using the same character encoding.  That is, one
   can compare tags for equality by comparing the numeric codes of their
   characters, in sequence, for numeric equality.  This criterion for
   equality allows for simplification of tag-handling software, which
   does not have to transform tags in any way to compare them.

3.  Security Considerations

   Minting a tag, by itself, is an operation internal to the tagging
   entity, and has no external consequences.  The consequences of using
   an improperly minted tag (due to malice or error) in an application
   depends on the application, and must be considered in the design of
   any application that uses tags.

   There is a significant possibility of minting errors by people who
   fail to apply the rules governing dates, or who use a shared
   (organizational) authority-name without prior organization-wide
   agreement.  Tag-aware software MAY help catch and warn against these
   errors.  As stated in Section 2, however, to allow for future
   expansion, software MUST NOT reject tags which do not conform to the
   syntax specified in Section 2.

   A malicious party could make it appear that the same domain name or
   email address was assigned to each of two or more entities.  Tagging
   entities SHOULD use reputable assigning authorities and verify
   assignment wherever possible.

   Entities SHOULD also avoid the potential for malicious exploitation
   of clock skew, by using authority names that were assigned
   continuously from well before to well after 00:00 UTC on the date
   chosen for the tagging entity -- preferably by intervals in the order
   of days.

4.  IANA Considerations

   The IANA has registered the tag URI scheme as specified in this
   document and summarised in the following template:

   URI scheme name: tag

   Status: permanent

   URI scheme syntax: see Section 2

   Character encoding considerations: percent-encoding is allowed in
   'specific' and 'fragment' components (see Section 2)

   Intended usage: see Section 1 and Section 2.3

   Applications and/or protocols that use this URI scheme name: Any
   applications that use URIs as identifiers without requiring
   dereference, such as RDF, YAML, and Atom.

   Interoperability considerations: none

   Security considerations: see Section 3

   Relevant publications: none

   Contact: Tim Kindberg (timothy@hpl.hp.com) and Sandro Hawke
   (sandro@w3.org)

   Author/Change controller: Tim Kindberg and Sandro Hawke

5.  References

5.1.  Normative References

   [1]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
        Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986,
        January 2005.

   [2]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
        Specifications: ABNF", RFC 2234, November 1997.

   [3]  Mockapetris, P., "Domain names - implementation and
        specification", STD 13, RFC 1035, November 1987.

   [4]  "Data elements and interchange formats -- Information
        interchange -- Representation of dates and   times", ISO
        (International Organization for Standardization) ISO 8601:1988,
        1988.

5.2.  Informative References

   [5]   Leach, P. and R. Salz, "UUIDs and GUIDs", Work in Progress,
         1997.

   [6]   "Information technology - Open Systems Interconnection - Remote
         Procedure Call (RPC)", ISO (International Organization for
         Standardization) ISO/IEC 11578:1996, 1996.

   [7]   "Specification of abstract syntax notation one (ASN.1)", ITU-T
         recommendation X.208,  (see also RFC 1778), 1988.

   [8]   Mealling, M., "A URN Namespace of Object Identifiers",
         RFC 3061, February 2001.

   [9]   Paskin, N., "Information Identifiers", Learned Publishing Vol.
         10, No. 2, pp. 135-156,  (see also www.doi.org), April 1997.

   [10]  Klyne, G. and C. Newman, "Date and Time on the Internet:
         Timestamps", RFC 3339, July 2002.

Authors' Addresses

   Tim Kindberg
   Hewlett-Packard Corporation
   Hewlett-Packard Laboratories
   Filton Road
   Stoke Gifford
   Bristol  BS34 8QZ
   UK

   Phone: +44 117 312 9920
   EMail: timothy@hpl.hp.com


   Sandro Hawke
   World Wide Web Consortium
   32 Vassar Street
   Building 32-G508
   Cambridge, MA  02139
   USA

   Phone: +1 617 253-7288
   EMail: sandro@w3.org

Full Copyright Statement

   Copyright (C) The Internet Society (2005).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

ISO Plain Language

On this page
PROBLEMPeople want names for their documents and objects that are unlikely to collide with anyone else's, can be created without registering anywhere, and are easy to read and type.
MECHANISMA tag URI combines the domain name or email address of the person minting it with the date that name was assigned to them, followed by any string they choose, so two different holders of the same name can never mint the same tag.
THE CATCHTags are identifiers only. They have no resolution mechanism, and the memo says that if resolution is wanted, a different URI scheme should be used instead.

§1What A Tag Is For

A tag is a type of Uniform Resource Identifier designed to meet four requirements. Identifiers should be likely to be unique across space and time and come from a practically inexhaustible supply. They should be reasonably convenient for humans to create, read, type and remember. No central registration should be necessary, at least for holders of domain names or email addresses, and minting each new identifier should cost almost nothing. And the identifiers should be independent of any particular resolution scheme.

The memo gives the case of someone who wants to put identifiers on their documents. The user wants reasonable assurance of uniqueness, because global uniqueness stops identifiers from becoming unintentionally ambiguous. The identifiers should be tractable to mint, memorise and type into emails and forms. The user should not have to talk to anyone else to mint one. And the identifiers should avoid implying that an electronic resource exists at a location, when it does not.

Existing schemes meet some of these requirements but not all. UUIDs are hard for humans to read. OIDs and Digital Object Identifiers require entities to register as naming authorities even when they already hold a domain name. URLs, in particular http URLs, are often used as identifiers and satisfy most of the requirements, but they have drawbacks: someone may try to resolve a URL-as-identifier even though no resource is accessible there, and domain names change hands, so a new assignee cannot tell whether the previous holder already used a particular identifier. Lastly, many people, especially individuals, hold email addresses but not domain names, and it would be preferable to let them mint identifiers too.

People want names for their own files and objects that are hard to collide with, easy to make, and need no registration. A tag is designed to give exactly that, with no central authority involved.

WHY THE EXISTING SCHEMES FALL SHORT (RFC 4151 SECTION 1)
SchemeWhy it does not fit
UUIDs and GUIDsHard for humans to read.
OIDs and Digital Object IdentifiersRequire entities to register as naming authorities, even when they already hold a domain name.
http URLs used as identifiersSomeone may try to resolve one even though no resource is there, and a domain name can change hands.

§2.1The Syntax Of A Tag URI

The general syntax of a tag URI is tag:, then a tagging entity, then a colon, then a specific string, optionally followed by a hash and a fragment. The tagging entity is made of an authority name and a date. The authority name is either a fully qualified domain name or an email address containing one, and it must be fully qualified so that there is no ambiguity. It is recommended that the domain name be in lower case, and alternative spellings of the same authority name are counted as distinct, so tags beginning tag:EXAMPLE.com,2000: are never equal to those beginning tag:example.com,2000:.

Authority names could in principle belong to any namespace whose names are assigned to a unique entity at a time, such as certain IP addresses, MAC addresses or telephone numbers. To keep the scheme simple the syntax is restricted to domain names and email addresses, but software that processes tags must not reject tags on the grounds that they fall outside this syntax, so that future standards efforts can add other forms.

The specific part is the name-space-specific string chosen by the minter, drawn from URI characters, and it may include query subcomponents as defined in the generic URI syntax. It is recommended that specific identifiers be human-friendly. A tag may optionally end in a fragment identifier, and tags should not be minted with percent-encoded parts, because humans find them hard to read, although the syntax does allow percent-encoded characters in the permitted character set.

A tag always has the same shape: the word tag, then your name, then a comma and a date, then a colon and whatever text you want to use. The part after the colon is yours to choose, and it can be as readable as you like.

THE TAG URI SYNTAX IN ABNF (RFC 4151 SECTION 2.1)
tagURI
tagURI = "tag:" taggingEntity ":" specific [ "#" fragment ]

taggingEntity = authorityName "," date
authorityName = DNSname / emailAddress
date = year ["-" month ["-" day]]
year = 4DIGIT
month = 2DIGIT
day = 2DIGIT
DNSname = DNScomp *( "."  DNScomp ) ; see RFC 1035
DNScomp = alphaNum [*(alphaNum /"-") alphaNum]
emailAddress = 1*(alphaNum /"-"/"."/"_") "@" DNSname
alphaNum = DIGIT / ALPHA
specific = *( pchar / "/" / "?" ) ; pchar from RFC 3986
fragment = *( pchar / "/" / "?" ) ; same as RFC 3986

§2.2Rules For Minting Tags

Each tag carries a tagging entity, identified by an authority name and a date. The date is what makes the entity globally unique, exploiting the fact that domain names and email addresses are assigned to at most one entity at a time. That entity then ensures it mints unique identifiers itself.

The date names the day, in the Gregorian calendar and UTC, on which the authority name was assigned to the tagging entity at 00:00 UTC. It may be a past or present date, and it must be one of the YYYY, YYYY-MM and YYYY-MM-DD formats of the ISO 8601 standard. Tagging entities must ascertain the date accurately enough to avoid accidentally using a day on which the name was not in fact assigned, since many computers and mobile devices have poorly synchronised clocks. The date must be reckoned from UTC. The month and day default to 01, so 2001-07 means 2001-07-01 and 2000 means 2000-01-01, and every formulation names a moment rather than a period. Alternative spellings of the same date count as distinct, so tags beginning tag:example.com,2000: are never equal to those beginning tag:example.com,2000-01-01:.

An entity must not mint tags under an authority name that was assigned to a different entity at 00:00 UTC on the given date, and must not mint tags under a future date. An entity that acquires a name immediately after a period when it was unassigned may mint tags as if it had held the name throughout, but this practice has considerable potential for error and must not be used without substantial evidence that the name was unassigned; the authors know of no mechanism that counts as evidence other than daily polling of the whois registry.

Finally, a tagging entity mints specific identifiers that are unique within its own context, using any internal scheme built only from URI characters. It should keep records to achieve that uniqueness, and where many people share one authority name, as a corporation or a mailing list might, group decision-making should also be used. The outcome of such a decision could be to delegate control over parts of the namespace, so that the assignees of example.com could hand the prefixes tag:example.com,2004:fred: and tag:example.com,2004:bill: to two different people.

The rules are about the date. Use the day you got your domain name or email address, count it from UTC, and never use a date when someone else held the name. Inside that space, you choose the rest of the tag and keep it unique yourself.

THE RULES FOR MINTING TAGS
  • Use your own nameMint only under a fully qualified domain name or email address that is assigned to you.
  • Date it correctlyUse the day the authority name was assigned to you, reckoned from UTC, in YYYY, YYYY-MM or YYYY-MM-DD form.
  • Never use someone else's nameAn entity must not mint tags under an authority name that was assigned to a different entity on that date.
  • No future datesTags dated in the future are not allowed.
  • Unassigned periods are riskyMinting as if the name were held while it was unassigned is allowed only with solid evidence.
  • Keep your part uniqueUse record keeping, and group decisions where many people mint under one name.

§2.3Resolution And Equality

There is no authoritative resolution mechanism for tags. Unlike most other URIs, tags can only be used as identifiers and are not designed to support resolution. If authoritative resolution is a desired feature, a different URI scheme should be used.

Tags are simply strings of characters, and two tags are equal only if they are completely indistinguishable in their machine representations when using the same character encoding. In practice that means comparing the numeric codes of their characters in sequence. This criterion keeps tag-handling software simple, because it does not have to transform tags in any way to compare them.

You cannot look up a tag to find a document. It is only a name, and two tags are the same only when every character matches exactly.

§3Security Considerations

Minting a tag is an operation internal to the tagging entity and has no external consequences. What happens when an improperly minted tag, from malice or error, is used in an application depends on the application and has to be considered in the design of any application that uses tags.

There is a significant possibility of minting errors, from people who fail to apply the rules governing dates or who use a shared organizational authority name without prior agreement across the organization. Tag-aware software may help catch these errors and warn against them, but software must not reject tags that do not conform to the syntax, so that the scheme can be extended later.

A malicious party could make it appear that the same domain name or email address was assigned to each of two or more entities. Tagging entities should use reputable assigning authorities and verify assignment wherever possible. They should also avoid the risk of clock-skew exploitation by using authority names that were held continuously from well before to well after 00:00 UTC on the chosen date, preferably by intervals in the order of days.

Making a tag does not affect anyone else, so the risk is in using one that was minted wrongly. Get the date right, agree with others if you share a name, and check who your name registrar says holds it.

§4IANA Considerations

The IANA has registered the tag URI scheme as specified in this document. The registered scheme name is tag and its status is permanent. The syntax is the one in Section 2. Percent-encoding is allowed in the specific and fragment components. The intended usage is as described in the introduction and in the section on resolution. Applications and protocols that use the scheme include any application that uses URIs as identifiers without requiring dereference, such as RDF, YAML and Atom. The interoperability considerations are recorded as none, and the security considerations are those in Section 3.

The scheme is registered under the name tag with a permanent status. It is meant for formats such as RDF, YAML and Atom, which use URIs as labels rather than as addresses.

§7References