An identifier is a name that identifies (that is, labels the identity of) either a unique object or a unique class of objects, where the "object" or class may be an idea, physical [countable] object (or class thereof), or physical [noncountable] substance (or class thereof). The abbreviation ID often refers to identity, identification (the process of identifying), or an identifier (that is, an instance of identification). An identifier may be a word, number, letter, symbol, or any combination of those.
The words, numbers, letters, or symbols may follow an encoding system (wherein letters, digits, words, or symbols stand for (represent) ideas or longer names) or they may simply be arbitrary. When an identifier follows an encoding system, it is often referred to as a code or ID code. Identifiers that do not follow any encoding scheme are often said to be arbitrary IDs; they are arbritrarily assigned and have no greater meaning. (Sometimes identifiers are called "codes" even when they are actually arbitrary, whether because the speaker believes that they have deeper meaning or simply because he is speaking casually and imprecisely.)
ID codes inherently carry metadata along with them. (For example, when you know that the food package in front of you has the identifier "2011-09-25T15:42Z-MFR5-P02-243-45", you not only have that data, you also have the metadata that tells you that it was packaged on September 25, 2011, at 3:42pm UTC, manufactured by Licensed Vendor Number 5, at the Peoria, IL, USA plant, in Building 2, and was the 243rd package off the line in that shift, and was inspected by Inspector Number 45.) Arbritrary identifiers carry no metadata. (For example, if your food package just says 100054678214, its ID may not tell you anything except identity—no date, manufacturer name, production sequence rank, or inspector number.)
A unique identifier (UID) is an identifier that refers to only one instance—only one particular object in the universe. A part number is an identifier, but it is not a unique identifier—for that, a serial number is needed, to identify each instance of the part design. Thus the identifier "Model T" identifies the class (model) of automobiles that Ford's Model T comprises; whereas the unique identifier "Model T Serial Number 159,862" identifies one specific member of that class—that is, one particular Model T car, owned by one specific person.
The concepts of name and identifier are denotatively equal, and the terms are thus denotatively synonymous; but they are not always connotatively synonymous, because code names and ID numbers are often connotatively distinguished from names in the sense of traditional natural language naming. For example, both "Jane Smith" and "Employee Number 8547" are identifiers for the same specific human being; but normal English-language connotation may consider "Jane Smith" a "name" and not an "identifier", whereas it considers "Employee Number 8547" an "identifier" but not a "name". This is an emic distinction rather than an etic one.
In computer science
In computer science, identifiers (IDs) are lexical tokens that name entities. The concept is analogous to that of a "name." Identifiers are used extensively in virtually all information processing systems. Naming entities makes it possible to refer to them, which is essential for any kind of symbolic processing.
In computer languages
In computer languages, identifiers are tokens (also called symbols) which name language entities. Some of the kinds of entities an identifier might denote include variables, types, labels, subroutines, and packages.
In most languages, some character sequences have the lexical form of an identifier but are known as keywords. In a few languages, e.g., PL/1, the distinction is not clear.
Computer languages usually place restrictions on what characters may appear in an identifier. For example, in early versions of the C and C++ languages, identifiers are restricted to being a sequence of one or more ASCII letters, digits (these may not appear as the first character), and underscores. Later versions of these languages, along with many other modern languages support almost all Unicode characters in an identifier (a common restriction is not to permit white space characters and language operators).
For implementations of programming languages that are using a compiler, identifiers are often only compile time entities. That is, at runtime the compiled program contains references to memory addresses and offsets rather than the textual identifier tokens (these memory addresses, or offsets, having been assigned by the compiler to each identifier).
Implementations of programming languages that offer interactive evaluation of source code (using an interpreter or an incremental compiler) present identifiers at runtime, sometimes even as first-class objects that can be freely manipulated and evaluated. In Lisp, these are called symbols.
Compilers and interpreters do not usually assign any semantic meaning to an identifier based on the actual character sequence used. However, there are exceptions.
- In Perl a variable is indicated using a prefix called a sigil, which specifies aspects of how the variable is interpreted in expressions.
- In Ruby a variable is automatically considered immutable if its identifier starts with a capital letter.
- In Fortran, the first letter in a variable's name indicates whether by default it is created as an integer or floating point variable.
IDs versus UIDs
Many identifiers are not unique identifiers. Typical examples are:
- One person with multiple names, nicknames, and forms of address (titles, salutations)
- For example: One specific person may be identified by all of the following identifiers: Jane Smith; Jane Elizabeth Meredith Smith; Jane E. M. Smith; Jane E. Smith; Janie Smith; Janie; Little Janie (as opposed to her mother or sister or cousin, Big Janie); Aunt Jane; Auntie Janie; Mom; Grandmom; Nana; Kelly's mother; Billy's grandmother; Ms. :Smith; Dr. Smith; Jane E. Smith, PhD; and Fuzzy (her jocular nickname at work).
- One document with multiple versions
- One substance with multiple names (for example, CAS index names versus IUPAC names; INN generic drug names versus USAN generic drug names versus brand names)
Implicit context and namespace conflicts
Many codes and nomenclatural systems originate within a small namespace. Over the years, some of them bleed into larger namespaces (as people interact in ways they formerly hadn't, e.g., cross-border trade, scientific collaboration, military alliance, and general cultural interconnection or assimilation). When such dissemination happens, the limitations of the original naming convention, which had formerly been latent and moot, become painfully apparent, often necessitating retronymy, synonymity, translation/transcoding, and so on. Such limitations generally accompany the shift away from the original context to the broader one. Typically the system shows implicit context (context was formerly assumed, and narrow), lack of capacity (e.g., low number of possible IDs, reflecting the outmoded narrow context), lack of extensibility (no features defined and reserved against future needs), and lack of specificity and disambiguating capability (related to the context shift, where longstanding uniqueness encounters novel nonuniqueness). The story of the origination and expansion of the CODEN system provides a good case example in a recent-decades, technical-nomenclature context. The capitalization variations seen with specific designators reveals an instance of this problem occurring in natural languages, where the proper noun/common noun distinction (and its complications) must be dealt with. A universe in which every object had a UID would not need any namespaces, which is to say that it would constitute one gigantic namespace; but human minds could never keep track of, or semantically interrelate, so many UIDs.
Identifiers in various disciplines
Identifier Namespace(s) atomic number, corresponding one-to-one with element name [international namespace (via ISV)] Australian Business Number [Australian namespace] CAGE code [U.S. and NATO namespaces] CAS registry number [originated in U.S. namespace; today international (via ISV)] CODEN [originated in U.S. namespace; today international] Digital object identifier (DOI, doi) [international namespace] DIN standard number [originated in German namespace; today international] E number [originated in E.U. namespace; may be seen internationally] EC number Employer Identification Number (EIN) [U.S. namespace] Global Trade Item Number [international namespace] Group identifier [many namespaces, e.g., specific computer systems] International Chemical Identifier [international namespace] International Standard Book Number (ISBN) [international namespace] International Standard Serial Number (ISSN) [international namespace] ISO standard number, e.g., ISO 8601 [international namespace] Library of Congress Control Number [U.S. namespace, with some international bibliographic usefulness] personal identification number [many namespaces, e.g., banks, governments] Personal identification number (Denmark) [Denmark namespace] Product batch number Serial Item and Contribution Identifier [U.S. namespace, with some international bibliographic usefulness] Serial number [many namespaces, e.g., company-specific, government-specific) Service batch number Social Security Number [U.S. namespace] Tax File Number [Australian namespace]
- ^ University of Glasgow. "Procedure for Applying Identifiers to Documents". http://www.gla.ac.uk/infostrat/ERM/Docs/procref.htm. Retrieved 28 April 2009.
- ^ Advanced Chemistry Development. "IUPAC vs. CAS Index". http://www.acdlabs.com/products/name_lab/iupac_cas.html. Retrieved 28 April 2009. [dead link]
- ^ University of Pennsylvania. "Information on Chemical Nomenclature". http://gethelp.library.upenn.edu/guides/scitech/chemnom.html. Retrieved 28 April 2009.
- Binomial nomenclature
- British Approved Name
- Diagnosis codes
- Document management system
- Food labeling regulations
- Gene nomenclature
- Identifier (metadata)
- Identification (disambiguation)
- Identity document
- Marketing part number
- Name binding
- Naming conventions (programming)
- National identification number
- Part number
- Product code
- Systematized Nomenclature of Medicine
- Uniform Resource Identifier
- Unique identifier
- Nomenclature – contains various standardized naming systems
- Nomenclature Codes
- Data element
- Representation term
Wikimedia Foundation. 2010.