FunctionalObject vs PhysicalObject

latest update: 2019-03-31    

Introduction

This topic explains the relation between an instance of ClassOfFunctionalObject and an instance of ClassOfPhysicalObject (here its subclass ClassOfInanimatePhysicalObject).

Discussion

The applicable Part 2 definitions are:

  • A ClassOfFunctionalObject is a ClassOfPhysicalObject that indicates the function or purpose of an object;
  • A ClassOfInanimatePhysicalObject is a  ClassOfPhysicalObject whose members are not living;
  • Specialization is a type of Relationship between two classes indicating the members of the subclass are members of the superclass; Specialization relationships are used to indicate a class is a subdivision of the membership of another class.

So anything that ClassOfInanimatePhysicalObject defines is that its members are not living, and informative as that may be it is not really enough.

If we want to tell what the function or purpose of the members of a particular ClassOfInanimatePhysicalObject is, we make that a subclass of one (sometimes more) particular instance(s) of ClassOfFunctionalObject. An example of inheritance from more than one superclass is the class PIPING BELLOWS UNIT

PIPING BELLOWS UNIT
id http://data.15926.org/rdl/RDS461699
rdfs:label PIPING BELLOWS UNIT
skos:definition A <PIPING BELLOWS UNIT> is a <BELLOWS UNIT> and a <COMPENSATOR> and a <PIPE EXPANSION ACCOMODATOR>
meta:valEffectiveDate 2006-06-15Z
rdf:type ClassOfInanimatePhysicalObject
rdfs:subClassOf BELLOWS UNIT
rdfs:subClassOf COMPENSATOR
rdfs:subClassOf PIPE EXPANSION ACCOMODATOR
Superclass for ARTICULATED BELLOWS UNIT
Superclass for AXIAL PIPING BELLOWS UNIT

that is a subclass of two instances of ClassOfFunctionalObject: COMPENSATOR and PIPE EXPANSION ACCOMODATOR.

As the third definition states, members of that PIPING BELLOWS UNIT also are members of COMPENSATOR and PIPE EXPANSION ACCOMODATOR. Note that the definition doesn't repeat the inherited definitions of the three superclasses.

Example:

The RDL definition of PUMP is: A <PUMP> is a <FunctionalObject> that has a capability of <PUMPING> if accompanied by, here excluded, all the necessary parts and subsystems. In case these parts and subsystems are included refer to it as PUMP SYSTEM.

By inheritance, a CENTRIFUGAL PUMP and all its subclasses and subsubclasses have the capability of pumping.

The few attributes of PUMP are inherited by CENTRIFUGAL PUMP, and the attributes of CENTRIFUGAL PUMP are again inherited by shown AXIAL FLOW PUMP and RADIAL FLOW PUMP (and other subclasses), etc. So all subclasses have the capability of pumping.

Further specialization of the function

We now can define a further specialization of PUMP, say "PUMP with particular QH curve", and make the statement that that specialization applies to "my AXIAL FLOW PUMP class", as defined on its Technical Specification:

Such specializations of a ClassOfFunctionalObject can take several forms of representation, such as:

  • a "Black Box" - this is most often used for equipment specifications as a block of "Process Conditions" with minimum-normal-maximum values;
  • a mathmatical equation or set of equations;
  • a definition in natural language;
  • Boolean logic;
  • etc