Jump to: navigation, search

hCard singular properties


This is an explanation of the list of singular properties in hCard.

The analysis here is derived from a thorough reading and analysis of the specific property definitions in the vCard RFC 2426 spec, along with reasoning using physics, and legal name precedents.

This summary is provided because that thorough reading and analysis takes a long time, and while repeatable, is not something that is worth encumbering other developers with. See the Reasoning section for more.

Tantek Çelik
Tantek Çelik, Ryan King

Name Properties


The vCard represents a single directory object. Legal precedents afford a person a single given-name (with multiple additional-name(s)) and single family-name, thus, only a single "n" property is permitted.

Possible exceptions that may deserve further research:


A person has only one "best" / most preferred way of formatting their name, and legally organizations have only a single name, thus "fn" is singular.


When sorting a name, it doesn't make sense for it to have more than one way of sorting it, thus "sort-string" must be singular.

Physical Properties


A person only has a single physical birthday (reincarnation cannot be scientifically substantiated and thus constitues the creation of a new directory object rather than the re-birth of an existing object, and being "born again" is not the physical event that "bday" represents). Thus "bday" is singular.


The "geo" property represents the person's actual location, not a coordinate approximation of an "adr". A person cannot be in more than one location at a time. Thus a person can only have a single "geo" property.


The "tz" property is the same. A person can only be in a single time zone at a time.

Entire vCard Properties


The "class" property indicates the confidentiality/access classification of the hCard as a whole, and thus it only makes sense for there to be one (or rather, makes no sense for there to be more than one).


From RFC2426:

To specify revision information about the current vCard.

The "rev" property represents the datetime of the revision of the hCard as a whole, thus it doesn't make sense for there to be more than one.


The "uid" property is a globally unique identifier corresponding to the individual or resource associated with the hCard. It doesn't make sense for an hCard to have more than one "uid".


Reasoning and methodology.

Ryan King and Tantek Çelik basically analyzed both the language of the vCard specification, and did logical analysis on the semantics of each property to determine its singular vs. plural status. We wanted to minimize the introduction of new rules/assumptions as much as possible (per the principles). Relying upon only the vCard specification and logical reasoning seemed the best way to do so.

related pages

The hCard specification is a work in progress. As additional aspects are discussed, understood, and written, they will be added. These thoughts, issues, and questions are kept in separate pages.

hcard-singular-properties was last modified: Wednesday, May 13th, 2009