DACOM labeled the result IDEF1X and supplied it to the ICAM program, which published it in 1985. (IEEE 1998, p. iii) (Bruce 1992, p. xii) DACOM also converted the ADAM software to C and sold it under the name Leverage. IDEF1X building blocks Entities The representation of a class of real or abstract things (people, objects, places, events, ideas, combination of things, etc.) that are recognized as instances of the same class because they share the same characteristics and can participate in the same relationships. Domains A named set of data values (fixed, or possibly infinite in number) all of the same data type, upon which the actual value for an attribute instance is drawn. Every attribute must be defined on exactly one underlying domain. Multiple attributes may be based on the same underlying domain. Attributes A property or characteristic that is common to some or all of the instances of an entity. An attribute represents the use of a domain in the context of an entity. Keys An attribute, or combination of attributes, of an entity whose values uniquely identify each entity instance. Each such set constitutes a candidate key. Primary keys The candidate key selected as the unique identifier of an entity. Foreign keys An attribute, or combination of attributes of a child or category entity instance whose values match those in the primary key of a related parent or generic entity instance. A foreign key can be viewed as the result of the "migration" of the primary key of the parent or generic entity through a specific connection or categorization relationship. An attribute or combination of attributes in the foreign key can be assigned a role name reflecting its role in the child or category entity. Relationships An association between the instances of two entities or between instances of the same entity. Connection relationships A relationship having no semantics in addition to association. See constraint, cardinality. Categorization relationships A relationship in which instances of both entities represent the same real or abstract thing. One entity (generic entity) represents the complete set of things, the other (category entity) represents a sub-type or sub-classification of those things. The category entity may have one or more characteristics, or a relationship with instances of another entity, not shared by all generic entity instances. Each instance of the category entity is simultaneously an instance of the generic entity. Non-specific relationships A relationship