Identifier

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Identifiers on the back of a statue in the Louvre

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 arbitrarily 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.) Arbitrary 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.

Contents

[edit] Metadata

In metadata, an identifier is a language-independent label, sign or token that uniquely identifies an object within an identification scheme.

The suffix identifier is also used as a representation term when naming a data element.

[edit] 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.

[edit] 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.

For example:

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

[edit] Ambiguity

[edit] IDs versus UIDs

Many resources may carry multiple 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[1]
  • One substance with multiple names (for example, CAS index names versus IUPAC names;[2][3] INN generic drug names versus USAN generic drug names versus brand names)

The inverse is also possible, where multiple resources are represented with the same identifier (discussed below).

[edit] 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). Within computer science, this problem is called naming collision. 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.

[edit] Identifiers in various disciplines

A small sample of various identifiers

Identifier Scope
atomic number, corresponding one-to-one with element name international (via ISV)
Australian Business Number Australian
CAGE code U.S. and NATO
CAS registry number originated in U.S.; today international (via ISV)
CODEN originated in U.S.; today international
Digital object identifier (DOI, doi) Handle System Namespace, international scope
DIN standard number originated in Germany; today international
E number originated in E.U.; may be seen internationally
EC number
Employer Identification Number (EIN) U.S.
Global Trade Item Number international
Group identifier many scopes, e.g., specific computer systems
International Chemical Identifier international
International Standard Book Number (ISBN) ISBN-13 is part of the EAN Namespace; international scope
International Standard Serial Number (ISSN) international
ISO standard number, e.g., ISO 8601 international
Library of Congress Control Number U.S., with some international bibliographic usefulness
personal identification number many scopes, e.g., banks, governments
Personal identification number (Denmark) Denmark
Product batch number
Serial Item and Contribution Identifier U.S., with some international bibliographic usefulness
Serial number many scopes, e.g., company-specific, government-specific
Service batch number
Social Security Number U.S.
Tax File Number Australian

[edit] Notes

[edit] See also


Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages