The role of functional objects

latest update: 2016-10-24    

Introduction

ISO 15926-2 states, in 5.2.8.1 , that:

NOTE 2 Specifications or descriptions of useful objects are often intersections of several arrangement classes, allowing both shape and material aspects to be constrained. In this part of ISO 15926, such intersections are members of:

  • class_of_arranged_individual,
  • class_of_feature,
  • class_of_inanimate_physical_object,
  • class_of_organization,
  • class_of_activity,
  • class_of_organism, or
  • class_of_information_object.

Note that ClassOfFunctionalObject is not in above list, meaning that this class may not be declared as "useful object" such as in the context of a facility. This means that it must always be in combination with a class in the above list.

Discussion

ISO 15926-2 states for class_of_functional_object, in 5.2.8.7 , that:

A class_of_functional_object is a class_of_arranged_individual that indicates the function or purpose of an object.

EXAMPLE Pump, valve, and car are examples of class_of_functional_object. Particular models of pump, valve, car, etc are instances of class_of_inanimate_physical_object that are specializations of these instances of class_of_functional_object.

This means that the instance of ClassOfInanimatePhysicalObject RDS327239, that is called PUMP, is an intersection of:

  • the instance of ClassOfInanimatePhysicalObject and
  • the instance of ClassOfFunctionalObject called PUMPING FUNCTION.

Note that in contradiction with above example in 5.2.8.7 the name PUMP has been given to the instance of ClassOfInanimatePhysicalObject rather than to an instance of ClassOfFunctionalObject. That is understandable and intuitive, but it means that the latter shall have a name that is different, i.e. PUMPING FUNCTION .

The rationale is simple: ClassOfInanimatePhysicalObject is a class of physical objects that are not alive, full stop. To make it a pump you have to make it a specialization of the instance of ClassOfFunctionalObject called PUMP FUNCTION. That specialization is inherited by all subclasses of PUMP. See also here.

Specializations of core instances of ClassOfFunctionalObject are possible, but require caution. Assume the instance of ClassOfFunctionalObject WHEEL FUNCTION. A specialization could be RIGHT FRONT WHEEL FUNCTION (of a car). In its context that could be a useful subclass. But a specialization of PUMPING FUNCTION to BOILER FEEDWATER PUMPING FUNCTION causes an unmanageable functional universe in parallel with the physical universe.

Functional modeling

Functional modeling, such as process design, control systems design, etc., is not only a matter of functional objects but also of activity modeling, where instances of ClassOfFunctionalObject and of ClassOfStream, participate.