Topic: unique numeric names as surrogates

topics > Group: naming

alias names
descriptive naming
file directory
immutable files and data
names defined by context
names independent of objects
object and value equivalence
pointers to data
proper names
unique names
using an address as a name
what is a number


A numeric name is a unique id for a system object within a naming universe (or symbol type). Kent calls this a representative, a surrogate, or a key.

A numeric id separates the system representation of an object from the object's names. Its only function is to be unique. A numeric id allows character strings (Kent's "symbols") to be reserved for description and communication. It also allows names to have a separate existence in the system, with their own descriptions and relationships.

If permanently unique, a numeric id may be used to confirm the identity of a location-based name. Delay before reassigning numeric ids to avoid mistaken identities and enable automatic forwarding.

A numeric id should be singular as well as unique. If not, a reference to an object may be missed since the wrong id was assumed. Also the same object may occur multiple times under different ids. (cbb 6/89)

Subtopic: numeric ID, handle, surrogate up

Quote: employee numbers are good representations for entities [»kentW1_1984]
Quote: an object identifier is a data value that reliably refers to an object, a surrogate [»kentW6_1991]
Quote: a handle is a symbol that is a surrogate for a thing; a reference is an occurrence of a handle; can be 1:1 [»kentW6_1991]
Quote: non-literal handles to objects are established by creation operations in some scope [»kentW6_1991]
Quote: check an address by checking the object's unique identifier [»oppeDC7_1983]
Quote: surrogates are globally unique [»kentW_1978]
Quote: surrogates are information free; they do not imply additional information [»kentW_1978]
Quote: surrogates are atomic, unstructured units [»kentW_1978]
Quote: a Telesophy label consists of a unique number, a description, and cataloging information [»caplM12_1987]
Quote: use surrogate values to preserve individual identity; separates object id from descriptive data [»copeG3_1980]
Quote: use nonsense codes when the naming universe is ill-defined or sparsely used [»poloHN_1980]
Quote: a surrogate stands for a real thing within a system; its symbols can be different [»kentW_1978]
Quote: a singular representation avoids multiple representations for an entity
Quote: an address tumbler is a universal, unique identifier; hierarchically defined [»nelsTH1_1988]

Subtopic: formating up

Quote: print 20-digit cryptographic token in two lines of four-digit groups; significantly reduced error rate [»andeRJ5_1996]
Quote: survey on the use of check digits for error detection in identification numbers [»gallJA9_1996]

Subtopic: BigFiles, huge files up

Quote: Google uses BigFiles with 64-bit offsets, multiple file systems, compression, and allocation/deallocation [»brinS4_1998]
Quote: a GFS file consists of fixed-size chunks identified by a globally unique 64-bit handle; a chunk is a Linux file [»gherS10_2003]

Subtopic: Godel number up

Quote: a Godel number is a name for a string [»hofsDR_1979, OK]
Quote: a Godel numbering defines a number isomorphism for any formal system; typographic rules are arithmetic [»hofsDR_1979]
Quote: easily identify hierarchical relations with symbolic numbers; e.g., if man is 6 and ape is 10 then neither concept contains the other [»leibGW4_1679]

Subtopic: separate name/handle from object up

Quote: in conceptual modeling, an object is not the same as a unique name; allows missing proper names, modified names, and multiple names [»borgA1_1985]
Quote: in conceptual modeling, relations are between objects instead of names of objects [»borgA1_1985]
Quote: with surrogates, symbolic names can be described independently of real objects [»kentW_1978]
Quote: with surrogates, can avoid confusing assertions about real things, about names, and about relationships [»kentW_1978]
Quote: to use an abstract type as part of a concrete type, separate the abstract object into two parts: a handle providing the user interface and a representation holding the object's state [»stroB_1991]

Subtopic: fact as ID relationship up

Quote: a fact consists of identifying a relationship between surrogates [»kentW_1978]

Subtopic: text vs. numeric ID up

Quote: two levels needed for names: machine-oriented (a bit string) for storage, protection, etc; people-oriented (a mnemonic string) for reading [»watsRW_1981]
Quote: symbols that are valid handles to objects in most scopes are typically recognized syntactically, e.g., numbers, symbols, and strings [»kentW6_1991]

Subtopic: two-level ID up

Quote: a number represents an entity if we know the symbol type, i.e., naming universe [»kentW1_1984]
Quote: V's object identifiers consist of an object-manager-IPC-id (changes on reboot) and a local-object-id (transient name) [»cherDR3_1988]
Quote: V has globally unique, entity ids for processes, process groups, and ports; now 32-bits, will be 64-bits [»cherDR3_1988]
Quote: V went from 32-bit ids to 64-bit ids to reduce expected frequency of reuse
Quote: V process ids are unique within a V domain, i.e., a local network [»cherDR4_1984]
Quote: internal names for persistent objects by a 48-bit unique id followed by a 48-bit random id; protects name access [»birrAD9_1980]
Quote: Pilot assigns a unique id (64 bits: time + serial number) to each file [»redeDD2_1980]
Note: natural IDS -- 64-bit DepotID, world-wide unique with owner; 64-bit ItemID, unique within DepotID; formats with language codes [»cbb_2000, OK]

Subtopic: physical ID up

Quote: a URL identifies a resource in cyberspace, a barcode identifies an object in the real world [»maraH10_1997]
Quote: unique, physical identification of objects by embedding reflective particles in a transparent adhesive [»bricEF11_1991]
Quote: WebMark is a public database of (barcode, URL) pairs for retrieving web pages with a barcode scanner

Subtopic: global identifiers up

Quote: unique, system-wide names by capabilities better than symbolic links and remote mounting
Quote: in a distributed environment need unique, permanent ids (128 bits) for all data [»giffDK7_1985, OK]
Quote: Satchel uses tokens to retrieve documents any time, anywhere with mobile devices, printers, and workstations [»lammM9_2000]
Quote: the identity of a CLI assembly consists of an originator key, name, version number, and optional cultural; variations via satellite assemblies [»meijE10_2002]

Subtopic: network ID up

Quote: Apollo's AEGIS single level store uses 64-bit object id plus 32-bit offset for every byte on network; rapid remote access [»giffDK7_1985, OK]
Quote: Amoeba uses server ports (48 bits) to identify a server independently of its network address
Quote: Andrew uses unique ids for users and groups; never reassigned since used in many tables; user and group names are easily changed [»satyM8_1989]
Quote: Dexter components have a globally unique identifier across the entire universe of discourse [»halaF2_1994]
Quote: each OS6 user has a name, unique number, and index; user may 'log in'; includes maximum disk allocation [»stoyJE3_1972]

Subtopic: file identifiers up

Quote: the full name of a file is file id, version number, page 0; a directory associates strings with full names [»lampBW4_1974]
Quote: the Unix i-list gives each file a short, unique name; is reliable and simple, with easy access to file information [»ritcDM7_1978a]
Quote: files in OS6 are first-class values; access heading and body by file handle; heading contains information about file [»stoyJE3_1972]
Quote: a file is a linear array of data accessed by name or by segment number plus offset; independent of device

Subtopic: database tuple ID up

Quote: a database uniquely identifies every object [»coddEF_1990]
Quote: the relational model uses user-defined and user-controlled primary keys as unique and permanent identifiers
Quote: RM/T augments the relational model with system-assigned surrogates for entities [»coddEF12_1979]

Subtopic: object identifiers up

Quote: a backing store server manages persistent objects with internal names; allocates and frees storage space [»birrAD9_1980]
Quote: an index defines the internal name for objects in a backing store server; objects exist as long as a name exists [»birrAD9_1980]
Quote: derived Modeler objects named with 48-bit version stamp which hashes the source name, compiler version, switches, and interface version stamps [»lampBW6_1983]
Quote: Smalltalk uses an object id to access an object through a table; allows objects to move in memory [»krasG8_1981]
Quote: Smalltalk-80 uses 16-bit object ids [»krasG8_1981]
Quote: LOOM uses 16-bit object ids in memory and long ids on the disk [»kaehT9_1986]
Quote: LOOM objects store their own 32-bit id; only used by virtual memory code [»kaehT9_1986]
Quote: LOOM uses 'leaves' (object stubs) to represent an object that resides on disk [»kaehT9_1986]
Quote: when LOOM matures an object, it assigns a long id and a new hashed, memory-id; uses forwarding block at old id [»kaehT9_1986]

Subtopic: problems with ID up

Quote: problems with user-controlled keys as permanent surrogates: can be changed, different keys for same entity, entities without keys
Quote: Thoth depended on T-stability (ids not reused in <T seconds); difficult to implement in a distributed environment

Related Topics up

Topic: alias names (39 items)
Topic: descriptive naming (29 items)
Topic: file (22 items)
Topic: file directory (55 items)
Topic: immutable files and data (59 items)
Topic: names defined by context (36 items)
Topic: names independent of objects (34 items)
Topic: object and value equivalence (60 items)
Topic: pointers to data (55 items)
Topic: proper names (35 items)
Topic: unique names (58 items)
Topic: using an address as a name (22 items)
Topic: what is a number
(55 items)

Updated barberCB 3/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.