A COMPONENT is a structure that can have parts and connections. The parts are also components, and the connections are to other components. The concept of components defined in this theory is a fundamental abstraction that applies in many engineering domains. Component structures appear as physical parts in a machine, modules in a software program, functions in a functional description, and model fragments in a model library. The part relation for components is called SUBCOMPONENT-OF, and it is not tied to physical inclusion. For named part relations, the relations HAS-SUBPART-SLOT and SUBPART-SLOT-OF are defined. Each subpart-slot is a unary-function from a component to one of its subcomponent.
Connection in this theory is also an abstract primitive notion. Two varieties of connections are defined. The binary relation CONNECTED-COMPONENTS is the minimal, most abstract relation between connected components. Connections may also be reified as CONNECTION objects.
What makes something a component is how it is related to other objects by the subcomponent and connection relations. That is why this theory is called component assemblies, and why the notions of part and connection are combined with the notion of component structure.
Components and subcomponent relations are quite different from classes and subclass relations (CLASS and SUBCLASS-OF). There is no property inheritence through subcomponent or connection relations.
With this vocabulary one may define hierarchical configurations of components. There are tools that commit to this ontology that can draw and analyze graphs of these hierarchies without any more information about the nature of the components and connections.
Components-With-Constraints Dme-Cml Mechanical-Components
Component Connection Subpart-Slot
Connected-Components Connects-Components Has-Subcomponent Has-Subpart-Slot Subcomponent-Of Subpart-Slot-Of
The following constants were used from included theories:
All constants that were mentioned were defined.