Abstract
In both applied ontology and engineering, functionality is a well-researched topic, since it is through teleological causal reasoning that domain experts build mental models of engineering systems, giving birth to functions. These mental models are important throughout the whole lifecycle of any product, being used from the design phase up to diagnosis activities. Though a vast amount of work to model functions has already been carried out, the literature has not settled on a shared and well-defined approach due to the variety of concepts involved and the modeling tasks that functional descriptions should satisfy. The work in this paper posits the basis and makes some crucial steps towards a rich ontological description of functions and related concepts, such as behaviour, capability, and capacity. A conceptual analysis of such notions is carried out using the top-level ontology DOLCE as a framework, and the ensuing logical theory is formally described in first-order logic and OWL, showing how ontological concepts can model major aspects of engineering products in applications. In particular, it is shown how functions can be distinguished from the implementation methods to realize them, how one can differentiate between capabilities and capacities of a product, and how these are related to engineering functions.
Introduction
Functionality is a concept that has interested engineers as well as philosophers and applied ontologists. It is used whenever engineers and scientists discuss the need for and the goals of systems, both natural and artificial. For example, engineers commonly use functions in order to design [78] and diagnose devices [57], while philosophers discuss the nature of functions themselves [20].
Despite the high amount of attention given to this topic, many problems remain open [3] and even the terminology can be quite confusing: function and closely related terms such as capability, capacity and behaviour have been used with many different meanings [11,23]. Moreover, the study of functional decomposition, that is, the division of functions into sub-functions, is often addressed in the literature as a means to guide the conceptualisation, design, and maintenance of products, but is rarely formalized. By and large, functional decomposition consists in associating the product’s main function with a combination of sub-functions with the assumption that realizing these (in a certain order and with suitable coordination) is equivalent to realize the main function. This decomposition simplifies both the design process and the implementation of the functional requirements into a concrete physical system. Of course, functional decomposition is not limited to the design of engineering systems. In fact, during the teleological analysis of a system, artificial or natural, domain experts speak about functions of both the system and its parts. Therefore, one is always confronted with the problem of how functions of components contribute to functions of the system they compose, so that functional decomposition is ubiquitous. Functions are often distinguished from their realization (or manifestation). Since in engineering there exist standard ways to realize functions,1
For example, the use of gearboxes made in a certain way in order to increase or reduce angular velocity, and a brushless electric motor as a way to convert electric energy to torque.
If the method has just been introduced and has not yet reached a consolidated status in practice, we still call it an engineering method. In fact, the term engineering method refers primarily to technological principles and theories on which an implementation relies.
This paper focuses on these notions and their relationships from an ontological and an engineering viewpoints. It builds on previous research, especially on modeling engineering processes and resources, see [9,11,83,85], and on function definition and functional characterization [4,6,25,71], and aims to discuss what functionality and related concepts are in a formal way. The formal languages used in the paper are first-order logic [91], adopted for the general discussion of concepts and their relationships, and OWL [102] for the use case. To give a clear ontological grounding for our formalisation, we use the top-level ontology
The interested reader can find a complete and in-depth presentation of
The objective of our work is to answer the following research questions (RQ) which are motivated by the works cited above and the literature review in Section 2:
How can the wide range of meanings carried by the term ‘function’ be ontologically differentiated and explained? How can the functional decomposition of a system be explained and formalized? What are capabilities and capacities, how do they relate to functionality, and what is the difference between them (if any)?
By answering these RQs, we aim to clarify and formalize within a unified framework the core functional concepts in engineering, namely, function, behaviour, capability, and capacity. In particular, we discuss the relation among functions as entities independent of any implementation, which we call ontological functions, functions that depend on the teleological analysis of a given system, that is, functions contextualized to a system, that we call systemic functions (from [71]), and functions as entities related to an execution method, which we call engineering functions. Finally, ontological functions will be leveraged to propose a general distinction between capabilities and capacities of engineering artifacts, in this way we provide the necessary elements for functional attribution, i.e., to establish which device can realize a certain function.
The structure of the paper is as follows. A review of the literature about functionality that is particularly relevant for this work is presented in Section 2. Section 3 describes key concepts of
Due to strong practical interests, a vast literature about functionality has been developed within engineering. We limit ourselves to a brief review. The reader interested in a more in depth analysis can refer to other works like [23] in engineering and [3] in applied ontology.
Fundamental contributions on functionality in engineering are, for example, the work of De Kleer [21,22], which outlines foundational principles such as the locality of functions (functions of a component should refer only to neighboring entities) and the ‘no function in structure’ principle (structural models should not contain teleological information); and the work of Pahl and Beitz [78], which describes functions as black-box transformations applied to input flows, divides functions based on the property of the flow acted upon (e.g., quantity, type, position, etc.), and discusses function decomposition (that is, how to achieve a given function through a structure of adequate sub-functions).
In [78] Pahl and Beitz explain also how designers can start from a generic function and proceed to develop products that can realize it via solutions based on different physical principles. They cite many design catalogues, which list and classify solutions along different criteria, see, e.g., [82]. In the context of design catalogues, functions and solutions exist along the same abstract-concrete axis, and differ by the ‘degree of embodiment’. Thereby, the most abstract functions, called ‘generally valid functions’, are the most useful criteria to classify solutions in a product-independent way.
The definition of function as (intended) action on flows is the most common in the engineering. For example, Chandrasekaran et al. [16] speak of ‘intended input-output relations’. Many vocabularies were developed with the aim to standardize the terminology of such actions. The proposed vocabularies range from Keuneke’s short four terms list (toMake, toMaintain, toPrevent, and toControl) [42], to larger vocabularies built using complex algorithms, like in the work of Kitamura and colleagues [49]. A common example is Stone and Wood’s Functional Basis [37,94], which gives terms for actions and flows on a three-levels taxonomy described in natural language. The literature about the use of such vocabularies has not settled yet and, currently, different lines of research are being pursued, such as behavioural simulation of a system from the functional model [56] or formal description and automatic construction of the functional model itself [30,55].
It is generally recognized that functionality depends on the purpose of an agent, leading to discuss notions like the designer’s intent or the ‘design rationale’ [16,46]. Thus, functions are not objective, at least not completely. Then, it is natural to wonder what in a function is fully objective. Behaviour, intended as what a device does, as determined by physical laws, is usually the answer.
The term behaviour is also used broadly without an universally shared definition. This generates ambiguities and some authors tried to classify the multiple uses of this term in engineering literature. For instance, Kitamura et al. [46] determine four types of device behaviour,5
They explicitly exclude static behaviours such as supporting, though.
The entities on which a device acts are called operands.
The link between behaviour and function generally reflects the duality between objectivity and intentionality: some authors state that behaviour is what a device does, whilst function is what a device is for [22], others focus on describing behaviour as a sequence of state changes and functions as abstractions of behaviours with a goal in mind [96]. Sasajima et al. state that function is made from behaviour plus additional teleological information called ‘functional topping’ [87,88]. Specifically, the functional topping allows, among other things, distinguishing the different functions that a device can execute (e.g. an electrical resistor could be devised for either heating the environment or for dropping the input voltage, and the functional topping in these two cases is different7
More precisely, when the resistor is used for heating, the functional topping tags as ‘Focus’ the heat flow exiting the output port, when the resistor is used for dropping the voltage, it is the electric energy output of the resistor that is tagged ‘Focus’.
As we have seen, numerous modelling frameworks have been developed in order to deal with functional and behavioural representation of engineering systems (e.g., Umeda et al.’s FBS [96], Sasajima et al.’s FBRL [87], Sembugamoorthy and Chandrasekaran’s FR [89], Goel et al.’s SBF [31], Qian and Gero’s FBS [80]), and they differ on many aspects. Still, oversimplifying, one can isolate commonalities: all of them tend to see the structure of a device as a set of parts (components) together with their attributes and the relations between them. Then, typically, they say that a behaviour is a sequence of states of the components. The definition of function is more complex but, again roughly speaking, a function is used as a label for a subset of behaviours. Finally, they mostly recognize a dependence of functions on behaviours, and of behaviours on the structure. There are, of course, key differences. For example, (functional) behaviour in Chandrasekaran’s FR scheme refers to a causal process while behaviour in Gero’s FBS representation pertains to the properties of a structural component. Or the fact that Gero and Chandrasekaran explicitly allow for decomposition of functions into behaviours, while in Sasajima’s approach a decomposition of functions into behaviours is forbidden and functions decompose only into other functions.
Among the previous frameworks, we find particularly interesting the development of FBRL. This is because, while for engineers functions usually are either already-assigned functional requirements (things that a product must be able to do) or are not distinguished by implementation methods, the authors of FBRL started, in our opinion, to study functions as entities by themselves. For example, at least from [44], they studied relations between functions themselves (called ‘meta-functions’), and analyzed the properties of functions, building complex taxonomies of functional concepts. This is important for our work, since it is one clear example of what we call ontological functions, while the engineering functions are the ones that, as in Pahl and Beitz’s work, exist only to be implemented by some method in an application context.
Most of the frameworks used for modelling functions come from the engineering community and tend not to be grounded in, nor aligned with, ontological theories. The presence of explicit connections between these framework and ontological theories would be quite beneficial, especially because of the large number of such engineering systems and of the importance of clarifying the use of the terminology. Moreover, engineers often do not make use of formal languages such as first-order logic or OWL,8
There is, of course, also the fact that OWL was first published in 2004, while many works of functional modelling are older.
There are exceptions, e.g. Kitamura et al. [43] and Yang et al. [103] showcase an implementation of an industrially deployed version of FBRL, called SOFAST, and an OWL and SWRL formalisation of the Functional Basis, respectively.
Despite the utility of an ontological analysis of these topics, the attempts carried out until now are limited. A few research works have formalized part of the FR system [4], started a formalisation of the Functional Basis vocabulary (and the conceptualisation it is based on) with the upper ontology
An ontological category similar to
Still, no shared reference ontology of functions exists, and top-level ontologies do not explore theories of functions as understood in engineering. For example,
Note that even if processes exist as a category also in
BFO 2020:
In truth, despite the relatively small space that functions occupy in these upper-level ontologies, their authors have been discussing functionality at length in various research papers. For example, some of the
The view of
Coming to “f is a disposition & f exists in virtue of its bearer’s physical make-up & this physical make-up is something that this bearer possesses because it came into being, either through evolution (in the case of natural biological entities) or through intentional design (in the case of artifacts), in order to realize processes of a certain sort.”
As we have seen, the meaning of function is ambiguous even within the ontology community. Moreover, it is generally not considered a top-level concept, and thus it is marginally covered by top-level ontologies. Unfortunately, to our knowledge, the ontology community has not produced a shared middle or domain-level ontology dealing with functions.13
An initial taxonomy of an ontology of functions in this sense, which is resumed and extended in this paper, was proposed by Borgo et al. in [11] and [6].
Given the current situation, an ontological analysis clarifying the domain of functionality would be quite useful. This paper aims to provide an initial step in the direction of developing a systemic ontological treatment of functionality, focusing in particular on the engineering domain. It might be true that the ambiguity of function terminology is both necessary and rational for engineers [98]. Still, we maintain that formalisation is needed for interoperability and to show differences between the possible approaches. Moreover, it is useful, if not necessary, to develop applications that rely on functional reasoning.
In conclusion of this section, we briefly mention other engineering concepts whose ontological status is quite complex: capabilities, capacities, and affordances. Capacities and, especially, capabilities are used in resource modelling [39,41,85,86,92]. In addition, terminological problems are present also for these two concepts, which are rarely formalized [11,84]. When distinguished, capabilities and capacities are separated along a qualitative-quantitative axis, for example ISO 15531-31 [39] states that ‘Capacity is strictly a quantitative concept’ while ‘Capability is essentially a functional and qualitative concept’, and exemplify capacity with product throughput and define capability as ‘the quality of being able to perform a given activity’. The same standard advises against reducing capacities as characteristics of capabilities and forbids the opposite (in contradiction to [92], where a ‘Capacity is a Capability expressed in terms of amount of production’). In addition, the concept of capability is sometimes used interchangeably with functionality: for example, the standard VDI 2860 [97] lists a vocabulary of actions that machines can execute when manipulating products (e.g. ‘guide’, ‘rotate’, etc.) and calls them ‘functions’. At the same time, this very standard is quoted in the literature with the aim of establishing standard-based capability taxonomies [53,54]. In any case, in this paper we will try to formalize, in a preliminary way, some intuitions that transpire from the literature on resource modelling, such as the asymmetry between capacities and capabilities, the close link (but not identity) between capabilities and functionality, qualitative vs quantitative aspects, and the idea of capabilities as qualities of being able to do something.
The notion of affordance is another source of conceptual confusion: affordances were originally introduced by [29], and popularized in engineering design by Maier and Fadel in a series of works ([61,62], among others) as a paradigm-shift from a function-based design, towards an interaction-based design, characterized by the focus on all the possible ways a user can interact with a product, included those unintended by the designer and not strictly relevant for the product function. Briefly, affordances are “what it [the environment] offers the animal, what it provides or furnishes, either for good or ill” [29]. That is, they are potential behaviours that the environment, or a part thereof, allows an agent to do. In engineering, they are often defined as the set of all the behaviours that an artifact enables a user to do [12], but this is far from being a universally shared definition. The original example of Gibson was that a flat surface affords footing to an animal, while other examples could be a pool full of water, which affords a person to swim, or a briefcase, which, affords a person to be grabbed; so that one could say that ‘swimmability’ and ‘grabbability’ are affordances of the pool and the briefcase, respectively. Unsurprisingly, an unsettled debate exists in the disciplines that make use of the concept of affordances, about their meaning [12], up to the point that some authors called for their abandonment [73]. In this paper, we do not carry out an ontological analysis of affordances (see [76] for an approach compatible with ours). We mention them as an important engineering concept that is related to functions [12] and, at the end of Section 4, we point out a few similarities affordances share with capabilities.
As stated in the introduction, we will use
We agree with Jansen and Röhl [40,81] on the external grounding of functions and the relation of functions with malfunctions. Therefore, we cannot use ontologies, such as
In this section we introduce the fragment of the
See Fig. 1 for a complete taxonomy.

We introduce a further distinction, not present in
Note that the terms ‘relational’ and ‘extrinsic’ come from different research areas and are sometimes used with different meanings.
Of course, one needs other entities to measure the tensile strength value, but note that this dependence is relative to establishing the value. The tensile strength exists independently of how one may measure it.
In the previous examples, it seems that relational qualities are those qualities that depend, in some way, on an entity different (we say external, see (d2)) from their bearer. Unfortunately, the exact meaning of this dependence relation changes between the different examples. In particular, in the case of capacities the dependence is ‘potential’, for a device can have the capacity to process a product, even when the product is not actually present. In contrast, in the case of relative distance the dependence is ‘actual’, for a physical object is at any time at a certain distance from another.It follows that the characterisation of relational qualities is a complex matter that goes beyond the scope of this paper.17
The interested reader can find a proposal on relational and intrinsic qualities in [24].
Turning now to perdurants (
Ordinary physical objects such as cars, trees, rocks, etc. are fully present at every time in which they exist.
More precisely, instances of a cumulative type perdurant.
Coming to roles, they were not covered in
“a role is a concept”
“a concept is a non-agentive social object”
“x is external to y if and only if x is neither a quality of y, nor y of x, nor x is one of y’s constituents (at any time), nor x and y have parts in common20 Substrata, parts, and qualities may not cover all possibilities especially if a different top-level ontology were used.
In this paper, the fact that roles are founded is particularly important, thus, we give the following formalisation, where
“x existentially depends on y if and only if x exists at some time and at any time when x exists so does y”21
The existential quantifier is a technicality: without it an entity that is never present would depend on all entities. Similarly, existential quantifiers are introduced in axioms having a similar structure to this one.
“x is founded on y if and only if x existentially depends on y and y is external to x”
“the concept x is instantiation-founded on the concept y if and only if, whenever z is a given entity that plays as x, there is also an external entity w that is an instance of y”
“if x is a role, then there is a y on which it is instantiation-founded”
We also need to capture a different kind of founding relation, that we call definition-founding (
Finally, since roles, as well as concepts, can be seen as reified classes, there exists a specialisation relation between roles, which we write as
“A concept x specializes a concept y if and only if all instances of x are also instances of y”
For example, the role of the Italian Prime Minister specializes the role of Prime Minister. This notion of specialisation is admittedly weak. One would like to add a modal characterisation: definition (d6) should hold in all possible worlds. This problem applies to other definitions we introduce in this paper and is not ontological but related to the limitations of first-order logic. Without discussing logical technicalities, in this paper we will make use of these characterisations assuming that, in suitable systems, e.g. first-order modal logic, a suitable formula is substituted.
In this section we propose a framework to characterize how behaviour and function of engineering artifacts can be understood to make sense of the distinctions used by engineers in different areas, from engineering design to manufacturing and maintenance, from process planning and product planning to early system design planning. Within the following section, we will expand this view to capability and capacity.
In the literature, many terms are used to refer to engineering systems and devices such as part, component, tool, machine, (technical) artifact, functional object etc. We use technical artifact22
See [8] for a more in-depth discussion of technical artifacts.
“a technical artifact is a physical object”
“x is constantly part of y if and only if whenever x exists, it is part of y”
“if x is part of y at time t, then x and y are both present at time t”
Engineers create an artifact to realize a certain interaction between the artifact itself and elements of the environment. The behaviour of an artifact is the way in which that artifact participates in that interaction (e.g. ‘[the car] rattled when it hit the curve’ [17]). In
Here we discuss a few key ontological properties to distinguish possible definitions of behaviour. There are, in fact, at least four axes along which different meanings of behaviour can vary in the literature. First, there is what we call the occurrence-property dichotomy:
behaviour can be something that happens in time and in which the behaving entity participates, in this case it is typically referred to as a transition between states or just as (staying in) a state. Examples are provided by Goel [32], Chandrasekaran [17], Umeda [96], and
behaviour can be a quality, that is, something inhering into the behaving entity. Examples are provided by Borgo et al. [4], see also Vermaas or Gero and colleagues which talk of attributes or dispositions [27,101].
Then, there is the token-type distinction: behaviour can be a class or a concept, as for Mizoguchi in [70]. Alternatively, it can be an instance of something, or an entity relative to a specific event, as for Chandrasekaran and Josephson in [17], and for Borgo et al. in [4], respectively.
Additionally, there is the external-internal axis, that is, the behaviour of an artifact may refer only to characteristics of the artifact itself, or it may need to refer to external entities. For example, ‘the electric switch can alternate between open and closed states’ is an internal behavioural description, as it refers only to transitions between states of the artifact. In contrast, ‘the current passing through an open switch is zero, if the applied voltage stays within operating conditions’ is an external description, since, the current and the voltage are not intrinsic elements of the artifact. Some authors explicitly use behaviour with the internal meaning, e.g. Zhao et al. in [104], others with the external one, as Kitamura et al. in [47].
Finally, there is the modal axis, since behaviours can be either expected (i.e. as envisioned by engineers) or actual (i.e. what actually happens), as implied by Gero in [28] with respect to design activity (though one could use the same duality when talking of, e.g., malfunctioning). This axis includes, arguably, talks of causal laws or relations, since those could be conceptualized as changes of a system under some kind of modality, that is, changes that necessarily happen when some condition is met. We do not argue in favor of conceptualizing causal laws in this way, but, in any case, one must also take this use of behaviour into account, since it is encountered often.
In this paper, we take an engineering behaviour to be a
Note that the term ‘processual role’ refers to general perdurants, it is not limited to
All devices’ engineering behaviours that can be described as operations on operands have engineering behaviours as described above. Such behaviours, whose class we characterize with predicate
“if x is a doer in y at time t then x is a technical artifact or an agent, y is a behaviour, and x participates in y (in the
“if x is a flow in y at time t then y is a behaviour, and x participates in y during that time”
“x is a behaviour only if there are at least a doer and a flow that participate in x”
From (a9) it follows that behaviours are perdurants. Additionally, we assume that behaviours can be combined to give causal explanations of complex perdurants (e.g. the beam was cut, therefore it fell to the floor), and formalize this with a binary relation called causal contribution,24
This relation among perdurants is inspired by the one introduced in
We do not axiomatize the causal contribution relation further as it has a much broader scope than the focus of this paper but see [10] for an initial proposal.25
Note that Borgo and Mizoguchi constrain the relation of causal contribution so that its domain and range are processes. In [71], the authors argue that the same relation can also apply to a process and a state, with the convention that, whenever that happens, it holds between the first process and the process of achieving the state. Here, we take a broader view and set the domain and range to be the category of perdurants.
The role-based approach combined with the causal contribution relation allows us to model behaviour from the point of view of the participating device (a9). Admittedly, it also introduces some limitations. For instance, the case of an artificial agent changing its own setting exemplifies a function where doer and flow coincide, a case ruled out by (a9) (such a function is called ‘change over’ in [6]). A full analysis of the relationships between the two approaches to behaviour (relational quality vs. perdurants with roles) has not been carried out. We highlight once more that they are mutually compatible within
Having conceptualized behaviours as a role-based view of perdurants, we spend a few words about the notion of state of an engineering system. In
Finally, engineers typically know how to characterize a state a system should be in, therefore we assume that, given a technical artifact, some ‘types’ of states are selected as desired, and call them goals. Note that, typically, one selects the conditions that a state has to satisfy, that is, selects a concept and not a state-instance, since the latter would have a specific time extension. Hence, we have that
“a goal is a concept that classifies stative perdurants only”
Thus, goals may correspond to expressions ‘the temperature at the port B of the heat exchanger is between 80 and 110 Celsius degrees’ and ‘the buzzer is clapping with a frequency of at least 10 kHz’, which are expressions for state classifiers.
Systemic functions In this paragraph we exploit the concepts introduced in the previous sections and propose a preliminary formalisation of ontological functions as roles. Precisely, we start by defining systemic functions. In doing that, we are mainly inspired by the definition presented in [71] (cfr. also Cummings’ definition in [20]), from which we also take the concept name. Such a definition is based on the so-called systemic view of devices, that is, on the idea that devices are complex aggregates of components, whose interaction with the rest of the system contribute to generate the activity of the whole system. In this context, a function is seen as the contribution of an individual component’s activity to the activity of the system as a whole, and teleological aspects are introduced through goals imposed on the system. Note that our notion of behaviour (a perdurant with roles) is different than the one in [71] and presents a nice feature: with our approach it is very simple to decompose (and to recompose) the system’s behaviour into components’ behaviours as the latter are simply parts of the first (provided one correctly identifies the suitable roles).
“x is a systemic function of y if and only if x is a role and there exist a system z and a goal g for z such that x classifies only behaviours which have y as doer and part of z, and that causally contribute to achieve g”26
This means that the term ‘systemic’ in ‘systemic function’ refers to the dependence of such role-concept to a system, and does not imply that the player artifact is a system itself. For example, if a wood table is held together by screws, each screw has a systemic function in the table-system: it connects one of the table-legs to (a side of) the table-top, even though none of the screws is a system.
Of course, there are many different function conceptualisations in the literature and each is relevant from one engineering perspective or another. We propose to start from Definition (d8) because, differently from the others, it is ontologically clear and helps to clarify the assumptions on which other meanings rely.
Note that, observing Definitions (d8) and (d9), it is natural to assume that systemic functions are definition-founded on systems, a fact that we introduce with the following axiom:
“each systemic function is definition-founded on some system”
Ontological functions In engineering practice, one may speak about functions independently of any system, for instance in an early system design phase. For example, if one wants to address the problem of finding the set of devices that have the capability of realizing a needed transformation, the devices cannot be a priori associated with a certain system, since there is no system yet. Indeed, the system is a variable input of the problem. Therefore, to solve this problem, a more general concept of function is needed, see, e.g., [6]. We call such functions ontological functions as they are relative only to the upper ontology one is using. The idea is that these functions distinguish very general transformations without addressing how such a transformations may occur or to which entities they apply. The informal intuition of ontological functions is that they are classified primarily according to the ontological difference(s) they enforce between the input and the output states. In this sense, they are independent of systemic functions.
For instance, assume we want to model a walking activity as the realization of a moving function. Walking may be considered a simple action but is very complex to model since it is a highly coordinated, continuous and dynamic process. One might decide to simplify its modeling by “restricting” the walking model to some aspects, such as the variation of the distance of the feet from the floor, the trajectory of the body’s center of mass, the changing contact forces between the feet and the floor, those developing into the leg joints, and so on (cf. [33]). It turns out that there are many aspects that one may focus on. Which should one use?
Assuming that an upper ontology is fixed (

A non exhaustive taxonomy of the logical formulas describing changes between states, classified depending on what predicates differ between the initial and final states.

An example of how a taxonomy of ontological functions could be organized. The rounded white rectangles contain the ontological functions-categories (classes of perdurants with identified doer and flow roles). The gray circles are functional concepts used to specialize ontological functions as in (d13), and refer to Fig. 2. The rectangles with sharp corners list alternative terms used in the literature to label that functional concept: H, P&B, and O refers to [37,78], and [87], respectively. (Notice that terms may occur in the literature also with different meanings than in this figure.) The same perdurant may be classified by more than one functional concept. ‘Amount of Energy’ is listed only for the sake of example, it is not part of DOLCE.
Note that an ontological category can be involved in a transition in different ways. For example, an instance of said category could be eliminated, meaning that the instance was present in the state before the transition but not after, or an instance could be created, meaning that the instance was not present before a transition but exists after. Another possibility is that there is a change of a relation of the ontology, e.g., in the initial state there were two individuals that were, say, one part of the other, while in the final state they are not. More complex changes can be described, depending on the difference between the initial and final structure of the ontology. We have reported some of these cases in Fig. 2, which is not exhaustive, while in Fig. 3 these cases combine with the aforementioned ontological categories to produce different ontological functions. Note also that in most cases the same event may be classified by several ontological functions. For instance, an event of cutting by a device, say a knife, is also a squeezing event, i.e., a compression (a change of the shape quality of the initial object) and a moving event (a change of the device location relatively to the object’s location). Clearly, most of these distinctions are similar to those obtained via the ontological analysis of events [33]. Finally, the functional terminology used in this paragraph is inspired by engineering literature which, as we have seen earlier, is not homogeneous. For instance, the reclassification (i.e., a change such that an instance changes type) of energy or matter is in other places called ‘convert’ [37,87] or ‘change’ [78] or ‘transform’ [47], while the change of value of a spatial location quality is called ‘channel’ [37,78], and so on.
Functional terms that are linked to domain-level terms (e.g., ‘vaporize’, ‘moisten’, ‘heat’) are not captured at the lever of ontological functions and require a domain or middle-level ontology containing corresponding concepts (e.g., vapour, humidity, temperature) in order to expand the construction we have just described up to that level of ontological distinctions. The ontological nature of some concepts, like ‘energy’, is unclear [67] despite being a fundamental concept in engineering and physics. Nonetheless, given an ontology containing a conceptualisation of energy, it is possible to introduce a corresponding ontological function, which might be different in another ontology with a different conceptualisation of energy. For instance, one could conceptualize energy as a quality, as done in [5]. This is the case, arguably, when one speaks about the energy of something, e.g, of a battery. In this case, in our ontology there would be a, say, energy content quality-type, which gives rise to a corresponding convert energy ontological function. Another possibility is to conceptualize energy as an endurant, which can reside into entities, change its location, and change type (e.g., heat energy, kinetic energy, etc.). In that case, the convert energy ontological function would be a reclassification-type transformation.
Formalizing ontological functions, like formalizing events, might be difficult. One would benefit from the introduction in the ontology of a general relation ‘change of …in event …’. An ontological function, as understood in this paper, is essentially an event classifier which looks at what changes (or remains stable) in the event. This suggests defining specific functions by comparing, for instance, initial and final states. For example, a connect function could be introduced as follows:
“A connect function is a classifier of events that are transitions between a starting state (
In the previous formula we used the predicate
Another example, to define a convert function (here Φ and Ψ are types belonging to the set
“A convert function is a classifier of events that are transitions between a starting state (
Notice that in the previous definition we have quantified over the set of all non-rigid classes of an ontology (
The type of all ontological functions that involve some change in quality values (cf. qualitative events in [33]) could be defined as follows:
“A change of quality-value function is a classifier of events that are transitions between a starting state (
One can further specialize this latter notion. If the quality in formula (d12) is spatial location, the ontological function will be of type channel. If the quality in (d12) takes values in an ordered space (e.g., temperature, humidity, etc.) then the ontological function is of type vary, possibly specialized into increase and decrease types, see [37,78]. Some functions, such as store and support, hint at the absence of change: for instance, a battery stores energy very well if it does not lose its charge over time, while a load-bearing wall supports the roof only if the roof does not fall. Therefore, functional concepts like store and support could be defined by modifying formula (d12) to impose that the initial and final values of the quality are the same (perhaps including some tolerance).
At this point we make three observations:
By construction, ontological functions cannot be fine grained. On the one hand, they are limited to the language of the upper ontology. On the other hand, they do not consider at what happens between the initial and final states. Take, for example, a temperature-controlled oven. The controller unit of the oven makes it so that the temperature in the oven stays, up to some tolerance, at a target value. The controller could achieve this by switching off the heat when the temperature is above the target value, and by switching on when the temperature is below the target. The temperature value oscillates around the target value, and such a process cannot be deduced by only observing the differences between the initial and final states. Therefore, events that maintain a stable temperature vs. events in which it oscillates cannot be distinguished by ontological function unless one enriches the function definitions by allowing further conditions to constrain the temperature value during the event (e.g., via variation patterns, see [33]). This is in line with our view of ontological functions but recall that one should consider only conditions that are expressible within the language of the ontology.
Events can be very complex and participated by many relevant entities (e.g., walking from a biomechanical point of view). This, together with the fact that we admit also ontological functions defined by the absence of some type of change (e.g., support), makes so that many events would be classified by a combination of ontological functions (as observed earlier while discussing the cutting example). This is not unexpected, and, in fact, reflects the flexibility of teleological thinking. Take, for example, a load-bearing wall. One could say that its function is to support the weight of the roof, but it may also transmit the load to the floor, or even stop the wind from entering the house, or divide the space inside the house into smaller rooms, and so on. To recognize what aspect is the most relevant in a given context is a task for the engineer or technician, which, using a contextual viewpoint, determine what aspects to focus on and thus the target function. This is the reason for using the term ‘function’ (in combination with ‘ontological’) to characterize these classifiers. Events, by their nature, are open to different interpretations.
Lastly, we argue in favour of the flexibility of ontological functions. In the previous paragraphs, we have mainly used functional terms taken from the Functional Basis [37] or from the influential view of [78]. Such vocabularies are indeed capable of expressing a vast quantity, if not the totality, of functions used within engineering domains, but they may not do so in the most natural way. For example, suppose that one is working with tooling machines that cut holes, slots, grooves, etc. in the workpieces. Then, using the Functional Basis one is reduced to using just the term remove to talk about the functions realizing such features in the workpiece. Instead, if one uses a domain ontology that contains concepts such as hole, slot, groove, etc., then one can build corresponding functional terms, say make hole, make slot, to groove, etc., defined analogously to the previous formulas. Such terms may be more natural than just using ‘removing’, and may even differ significantly from ‘removing’, depending on their precise formalisation. Another example: in the Functional Basis vocabulary, the term ‘stop’ means ‘to cease the transfer of a flow’, for instance ‘A reflective coating on a window stops the transmission of UV radiation through a window’ [37]. But what if perdurants are important in our domain and we want to say that something stops a process (e.g., “The addition of a respiratory inhibitor stops the absorption of amino acids”, not that “stops the amino acid-material-flow from moving”, but that it “stops the absorption”, where absorption is an important element of the domain? We could derive useful functional terms, from an appropriate domain ontology managing concepts of domain processes.
Up to this point we have defined some types of ontological functions, but not the concept of ontological function itself. A possibility is to find an exhaustive list of types of ontological functions and then define ontological function as the disjunction of all those types, for instance:
“A concept is a ontological function if and only if it classifies exactly those events consisting in a transition such that the changes (or the absence thereof) between the initial and final states (or across the whole transition) is characterized in terms of a formula expressed in the language of an upper ontology.”
This can be done by providing an exhaustive list of ontological functions made available by an upper ontology. Another possibility is to look for an intrinsic definition of ontological functions that informally could be as follows:
Since “a formula expressed in the language of an upper ontology” is not something that can be written in a natural way using first-order logic, we cannot give an intrinsic first-logical definition of ontological functions. (A similar argument could be applied to extend the notion of ontological functions to functions in the language of reference ontologies.)
Link between systemic functions and ontological functions Returning to the relation between systemic functions and ontological functions, we observe that the former correspond to system-dependent functional descriptions, while the latter corresponds to system-independent functional descriptions. Since ontological functions are more general than systemic functions, they can be used to classify them:
“any ontological function x is specialized by some systemic function y and, beside ontological functions, classifies systemic functions only.”
For example, take a tooling machine as a system, e.g., a lathe, and assume that it makes use of two electrical motors: one for rotating the spindle and the other for moving the spindle horizontally. Both electrical motors perform the same ontological function of ‘converting’ (electrical energy into mechanical energy), but they also perform two different systemic functions specializing the ontological function in the context of the lathe: ‘converting (electrical energy into mechanical energy) to rotate the spindle’, and ‘converting (electrical energy into mechanical energy) to translate the spindle’, respectively. The intuition is that we can group systemic functions together through common characteristics, along the lines of definitions (d10) to (d12), abstracting from specific systems or from their occurrences in different parts of the same system.

The scheme of a hydraulic system, taken from [60].
Finally, notice that the two types of functions introduced in this paragraph cover at least two different ideas of functions used by engineers. First, there are ‘general’ functions that engineers use when they need to, say, describe information about or collect information from different systems. For example, Collins [19], when collecting and analyzing failure experience data, speaks of ‘elemental mechanical functions’, which are application-independent characterisations of ‘basic’ functions. Analogously, Pahl et Beitz [78] speak of ‘generally valid functions’, and propose them as references for cataloguing design knowledge about function implementation. These types of functions can be approximated via ontological functions. In contrast, a second meaning used by engineers is system-dependent. In general, when engineers focus on a single system, they use different concepts to speak about the system components. The terminology is varied, but typical terms are ‘serial number’, that is the identifier of a component-instance, ‘component code’, i.e. the component or assembly-type identifier, and ‘functional location’ or ‘tag’, which are identifiers that consider also the position of a component within a system. For example, Fig. 4 schematises a hydraulic system containing four solenoid valves, whose tags are EPF1 to EPF4. These tags cannot refer to the valve-type, since the four valves could have the same type, nor they can refer to the valve-instances, since schema are generally used to represent different system-instances. In our terminology, we could say that tags identify roles that components play in a system. Necessarily, these roles are of functional nature, for each component in an engineering system has a role in the system function. Thus, tags or, at least, the teleological content they carry, could be formalized by systemic functions.
An important feature of functions in engineering is the possibility to decompose them into sub-functions. This also allows to refine the granularity of the system description. In this paragraph, we show how such decomposition relation can be used in order to formalize the difference between ontological functions and engineering functions that we described earlier.
First, observe that such decomposition cannot be reduced to a partial order relation between functions. That is, if we represent the functional decomposition of a function, say Functions exist at a teleological level, therefore, any decomposition of functions must take into account the decomposition of the underlying objective substrata, that is, of the underlying behaviours and objects. The sub-functions of a function must ‘organize’27 We borrow the term from Vermaas and Garbacz [99], in there the interested reader can find a discussion about mereology in functional decomposition, especially with respect to the Functional Basis methodology.
The same function can be decomposed in more ways, therefore the decomposition relation is of type many-to-many.
Not all combinations of sub-functions are possible, due to physical and technical constraints. Moreover, among all possible combinations, engineers recognize typical ones and use them systematically.
That is, a style where functional models can be graphically represented as directed graphs with flows as edges and function as nodes. The composition, then, can be in series, between nodes that share an edge (canceling that edge), or in parallel, between nodes that do not share edges.
The counterexamples shown are based on some additional assumptions. Precisely that, first, if a function-token is part of another function-token, then the same holds for the corresponding types; and, second, that flow loops are possible.
Inspired by the work of Kitamura et al. on ‘ways of functional achievement’ [43,45], we consider engineering methods as non-agentive social objects representing the knowledge that engineers share about ways of implementing functions through functional decomposition:
“main-functions and sub-functions are roles founded on some engineering method” “Each method, say
“for any engineering method of functional decomposition, say
Formally, such non-agentive social objects can be understood as reifications of functional decomposition relations. Precisely, we introduce roles
Additionally, we assume that methods are always contexts for a main-function and for a certain number of sub-functions (axiom (a16)∗ is actually a meta-axiom, for this reason we mark it with a ∗-symbol).
Note that, given a finite set of methods, the previous axiom can be substituted with a finite set of axioms in FOL. The following condition constrains the decomposition relationship and is expressed via an axiom schema (here n is an integer):
Since the main-function and the n sub-functions roles of a given method are univocally determined, we can represent them with functional symbols. In particular, we will write
“
The advantage of this approach is manyfold: it makes possible to organize the method-types within sumbsumption taxonomies, for example, ‘spot welding’ is a specialisation of the method ‘welding’, which itself is an implementation method of the function ‘to join’; and to describe the properties of the methods, for instance the working principle, say Kirchhoff’s law for a ‘voltage divider’ method. Additionally, it makes possible to introduce properties of functional decomposition. For example, if one wishes to express that all functions are decomposable, she can state:
“engineering functions and main-functions coincide”
Instead, if one wishes to state that a function, say
Moreover, this approach allows us to give a formal definition of engineering function and, thereby, to discuss the ontological difference between capacities and capabilities. In fact, we define engineering functions to be main functions
so that engineering functions are roles that systemic functions, which are defined in (d9), can play in the context of a functional decomposition. For instance, in the lathe example discussed above, it could be that the systemic functions of the two motors are both implemented through the method of, say, ‘three-phase electric motor’, and, therefore, play the role of engineering functions. In this case, the functional decomposition entailed by the method includes sub-functions roles for, say, ‘supply electrical energy’ (one per each phase), ‘drive the motor’, and ‘output mechanical energy’.
In this section, we discuss capabilities and capacities, two notions that we briefly introduced at the end of Section 2. In particular, we will make use of the concept of ontological function to distinguish capabilities from capacities. That is, we ground the distinction on an ontological argument moving beyond views like ISO 15531-31 [39], which proposes the association of capacities with a quantitative viewpoint and capabilities with a qualitative viewpoint only on the basis of practical arguments.
Recall that the characteristics of a technical artifact are part of its physical make-up and determine how the artifact interacts with its environment. For example, an individual pump is built in such a way that it is able to pump water with a certain flow rate. Following the quality theory of
As seen in Section 3, individual qualities in
Whenever a capability is based on some other quality of a technical artifact, that is, when each realisation of the capability depends on some other quality, we say that it is founded on that quality (or qualities). As before, we formalize this through the relation
Another example: electronic components such as resistors, transistors, etc., are accompanied by a datasheet that reports technical properties of the devices. Typical properties are, for example, the failure rate and the maximum temperature, current, or voltage that the component can reliably operate with in standard conditions. In our terminology, all the aforementioned properties are capacities: these properties are manifested only when the component is inserted into a working electrical circuit;31
As mentioned earlier in the paper, a clear-cut example is the voltage, which, since it is a potential, needs a fixed reference point in order to be measured.
Capacities themselves are founded on some intrinsic physical qualities of the bearing object. For example, the maximum operating current will depend on the geometric and electrical properties of the conductor metal, such as its diameter and its resistivity. Similarly, the flow rate of the water tap depends on its diameter. Given these observations, we characterize capacities as follows:
“A capacity is a relational quality and is founded on some intrinsic quality, which is carried by the same bearer.”
“the bearer of a quality is the entity that has (inheres) the quality”
“Each capacity founds a capability.”
“Capacities are precisely those relational qualities that are founded on some intrinsic quality (of the same bearer), and which found some capability (of the same bearer), such that every time that the capability takes a range-value (u), the capacity takes a value (v) which is part of u.”
In (a18), the
Axioms (a18) and (a19) do not fully define what a capacity is. They only give some constraints. Modelling the relation between capacities and capabilities remains complicated and requires further investigations. Yet, a promising way to tackle the problem is to define a capacity as a ‘parameter’ of the capabilities it founds, that is, as a quality such that its values are always related to the conceptual space of the corresponding capability:
Briefly put, the formula above views capacities as the parameters of capabilities allowing to ontologically support practical approaches like, e.g., that of ISO 15531-31 [39].
From another perspective, capabilities are inextricably intertwined to functional aspects. To be able to do something is, arguably, a modal concept calling for possible events in which that something is actually done. Possible events are already part of the
“An object x carries an individual capability of pumping if and only if there is a possible perdurant during which x realizes some pumping process”
Since the introduced capabilities are specifically dependent on their bearers, and each capability of a certain kind is unique to its bearer, we treat them as individual qualities.32
An alternative is to model them as disposition, see for instance [86], and [63] for a broader introduction to dispositions.
“x is a capability if and only if it is a relational quality definition-founded on some ontological function”
“A capability is founded on some capacity”
The characterization of capacities and capabilities via (a18), (a20), and (d18) has the advantage of explaining:
the close link between functions and capabilities (capabilities are definition-founded on ontological functions); the asymmetry between capacities and capabilities (capabilities are founded on capacities, but not vice-versa).
The quantitative-qualitative difference between capacities and capabilities anticipated at the end of Section 2 is only partially clarified by this approach. For instance, while a flow-rate capability takes as values positive real numbers with, say, m3/s as unit of measure, the value space of the corresponding pumping capability is quite more complex and difficult to describe.
One reason for the difficulty in defining capacities and capabilities is the relational and potential nature (in our interpretation) of these concepts: they are relational, and we have attempted to capture it with relational qualities, since they need the relation between their bearer and its environment to make sense; and they are potential, in the sense that they are strictly related to events that may occur, but need not to actually happen. Functions are, arguably, similar to capabilities in this aspect, and this may partially explain the terminological and conceptual complexity that these concepts bring. Of course, these concepts are not the only ones to be both puzzling and commonly used in engineering: affordances are another well-known example. As mentioned at the end of the literature review, engineering affordances are often defined as “interaction between artifact and user in which properties of the artifact offer a potential use to the user” [62], but this is not an universally shared definition, and conceptual confusion persists in the disciplines (not only engineering) that make use of this concept. We do not attempt to carry out an ontological analysis of affordances, but we do make two brief observations:
first, the reasons for the confusion around the concept of affordance may be, at least partially, the same for the concepts analyzed in this paper. They strongly depend on relations between entities, and they are potential concepts, as opposed to actual. Second, one could attempt to reduce affordances to capabilities using, for example, the following informal equivalence: “An engineering artifact affords a user (or another artifact) to do something if and only if the system made by the artifact, the user (or the second artifact), and their relation has the capability to do that something”
From this point of view, our analysis of capabilities would carry at least some insight into affordances.
Finally, in Fig. 5 we give a schema that shows the main relations and concepts used in our theory of engineering functions.

Main concepts and relations in the presented ontology. For simplicity and clarity, the picture refers to the OWL model and many relations and concepts have been suppressed. In addition, an instantiation of the schema for the case of a voltage divider is given. The dotted instance-of arrow is inferrable, since the related systemic function is main-function-of some engineering method (cfr. (D24)).
We conclude this section with another example to show how the concepts we have introduced above concur to provide an integrated description of a functional scenario. Suppose that a company handling swimming pools must empty some of its pools for maintenance. This imposes a goal, say ‘the pools are empty’, that must be carried out through some device able to realize a ‘to move’ (ontological) function, specialized to a systemic function in the context of the swimming pool system. Such a function can be realized by artifacts that have a corresponding capability. In this case, the function would probably be implemented through some fluid-emptying-method, that is, through the knowledge of the way that a recipient can be emptied, and its fluid content disposed of, by pressurizing the fluid and guiding it through a path. Now, the ‘pressurize’ sub-function (which refers to the goal of ‘having a big enough pressure gradient’) could be implemented through a pumping-method, that is, referring to engineering knowledge about pumps. Then, a pump (more generally an artifact with pumping capability) could be selected for being the ‘doer’ of the necessary ‘transform electrical energy into pressure’ sub-sub-function. In this context, we could say that the pump has been selected because of its pumping-capability and that the pumping-method describes, at least, a flow rate capacity, which founds the pumping-capability, and its interaction to the other properties and entities involved in the pumping process.
Reduction to OWL ontology
To facilitate the deployment of our theory in applications, we present an OWL version of the first-order logic formalization. This is standard practice, for at least the following reasons: first, OWL is decidable, while first-order logic is not, so that reasoning tasks will terminate in finite time.33
Though the complexity might be exponential in general.
Unfortunately, the computational properties of OWL come with a tradeoff with respect to its expressibility, therefore, one has to simplify the first-order theory. The original theory remains essential as it constrains the intended meanings of the OWL concepts and provides the ‘official reading’ of the theory, it also helps to conceptually understand how the overall model is supposed to work.
The first-order theory developed in the previous sections can be converted to OWL language as is, except for the expressions where ternary relations are used, as well as those that necessarily need at least three arguments to be formulated. For example, the definition of systemic-function-of (d8), the instantiation-founding definition (d5), and the engineering method schema (d15) cannot be expressed in OWL. In these cases we have to weaken the axioms. For instance, in OWL we replace the definition of systemic functions with
where
Additionally, all the ternary temporalized relations used in the first-order version, such as
“x is constantly classified by y if and only if x is classified by y whenever x exists”
“y is a constant temporary quale of the quality x if and only if y is a temporary quale of y whenever x exists”
“x constantly participates-as-doer to y if and only if x participates-as-doer to y for the whole of y duration”
One could also state that the non-temporalized relation holds if and only if the temporalized relation holds true at some time adopting the following meta-rule:
There are other possibilities. The choice of one over the others must be planned carefully depending on the application concerns, since this kind of changes affects the intended models of the OWL ontology. For example, (d21) excludes participation-as-doer in, say, a chemical process only for its first part, while (ex6) allows it, but in OWL this difference is lost. Additionally, the removal of the temporal argument reduces the flexibility of the ensuing ontology. For example, one cannot track (at least not directly) dynamic aspects of roles, e.g. a component that carries out a function at a time and then it changes its function. Nor one can express that, say, there is a chemical process which is driven by two different catalysts during its first and second parts.
Finally, as a further simplifying assumption, we define two binary relations that we will use as shortcuts to implement and simplify the definition schema (d15) and to redefine (d16):
“
“
“Engineering functions are exactly the individuals that are main-function-of some engineering method”
Note that in (d24) the individuals must necessarily be systemic functions due to (d22).
Even though the
Available at
The ontology developed in this paper is a hand-crafted prototype that discusses middle and high-level concepts. Therefore, some common approaches to evaluation cannot be employed, as, for example, there is no “gold standard” [90], or set of formal ontologies that one could use to compare common ontology metrics (such as those extracted by OntoMetrics36
OntoClean OntoClean does not identify any issue in our taxonomy, that is, none of the meta-level rules that OntoClean methodology enforces are violated. In fact, this is almost trivial to check: since we are extending
Ontology Pitfall Scanner The OWL ontology was evaluated with the Ontology Pitfall Scanner (OOPS!) [79], which searches for common design errors from a list of 41 items. Among the pitfalls not related to imported ontologies, the scanner found some minor stylistic issues37
Some inverse object-properties are not declared explicitly, and the naming convention differs between object-properties and classes.
Research questions and competency questions Our ontology answers the research questions listed in the introduction. In particular:
Additionally, since the formal ontology answers these research questions, it is also able to answer related competency questions, which can be of interest in applications, such as the following:
Given an (ontological) function, which artifacts have the capability of satisfying it?
How can the given ontological function be implemented?
What are the capacities that a given capability is founded on?
Which parameters explain the performance of the some component in a given system? (If interpreted as ‘what are the capacities of the capabilities of the component that are relevant in executing its function?’)
Which is the functional decomposition of a given system?
Which is the function of the given tag and what is its purpose?
The OWL ontology, after being populated, can be used to answer the competency questions (CQ1)–(CQ6) by means of SPARQL queries. For example, these are implementations of (CQ1):
of (CQ4):
and of (CQ5), provided that the functional decomposition of a system is interpreted as the list of all systemic functions of the given system involved in a method, with their role (main-function or sub-function) and underlying component:
The remaining competency questions can be implemented in a similar way (see also Fig. 6 for (CQ3), which is taken from the Protegé ontology editor – Fig. 7 shows another view of how the ontology appears in Protegé).

An implementation of (CQ3) in Protegé.
The fact that our ontology can answer all these questions shows its expressivity and coverage. In the following paragraphs we explain how these characteristics could be used in application scenarios.

A view of the ontology taxonomy in Protegé.
Innovative design (and other things) A good portion of the literature on functional modelling argues that functional modelling can be used to improve engineering design. For instance, the basic argument of the approach of Pahl and [78] is as follows: designers should start from the customer’s requirements, translate them into high-level functions, then decompose those functions into less abstract ones, until arriving at a point where finding a solution that realizes the functions is easy. This methodology, is argued, facilitates engineers to quickly develop high-quality designs and enhances their creativity by decoupling the goals of the design from the ways they are achieved.
This argument is not wrong, but, in actual practice, one rarely starts from a blank slate. Designers are typically constrained by the need to reuse pre-existing solutions, for a company may have developed a legacy that is difficult to depart from, possibly because the company would not be able to (profitably) reroute its know-how and resources towards innovative lines of products, or other reasons. Therefore, designers usually have to devise marginal improvements or corrections in pre-existing solutions, and these activities seem at odds with the aforementioned methodology. Additionally, the described methodology is design-oriented and does not seem relevant to other activities, such as troubleshooting or reverse engineering, despite functional reasoning being clearly relevant in all of them.
One important reason for carrying out ontological analysis is to bridge all such activities and cases, by producing an explicit representation (the ontology) of the shared conceptualisation of the relevant stakeholders, which can be used by all of them. We argue that our ontology is useful for the blank-slate innovation scenario (for, e.g., competency questions (CQ1) and (CQ3) showcase the possibility of linking capabilities to functions, which is important since it allows engineers to find whether they already have available components that can satisfy a given functional requirement), as well as many other scenarios, some of which we describe briefly in the following.
Incremental innovation In a company, innovation may happen mainly through incremental changes in pre-existing products. Therefore, product types will have a version history. Using our ontology, one could describe the relevant improvements, allowing their digitalisation in a semantically meaningful way. For instance, a new version may introduce new capabilities, or it may have the same capabilities as the former version, but it could realize them better due to different capacities. Storing such information could be more helpful to engineers than just storing structural information (like the bill of material) of the different versions in the enterprise management system.
Knowledge transfer An engineer or technician could have recently been employed by a manufacturing company. In that case, he or she is (hopefully) trained to learn about the company’s products and their functioning. Still, a good part of the knowledge the company possesses, especially functional knowledge, is implicit. Therefore, the trainee will learn about it only through experience or through his/her background knowledge of the domain. This may be a slow process, and some knowledge could be lost. Building a knowledge base modelling functional knowledge (necessarily together with other types of information, e.g. geometrical from CAD models, etc.) could facilitate training since it would relieve the trainee from having to infer the functionality of components from their structure, as well as the (functional) role of components within their systems.
Troubleshooting When a technician troubleshoots a product he often makes use of functional reasoning (e.g., “the volume of the speakers is constantly louder than it should be. It may be that there is something wrong with the amplifier circuit, since it is that component that has the function of controlling the volume”). Sometimes, a technician may lack sufficient knowledge about the functional structure of a product to carry out such reasoning fruitfully (say, it is an external contractor with limited knowledge of the company which manufactures the product). In those cases, a clear representation of the product functional structure, if accessible to the technician, may solve the issue. For example, a query answering (CQ4) may be useful in this case.
Formal requirements Requirements are an essential part of engineering design, which engineers have to write, share, maintain, and implement. The ensuing work and documentation can be daunting, especially in large progects. Therefore, attempts have been made to standardize [1], trace [74], and automatize [38] requirement pipelines using ontologies. Some approaches discuss how requirements should be written, so that their quality, shareability, and even automatic verification against a design model can be assured (e.g., [18,58]). In the latter case, requirements are usually interpreted as assertions (constraints) about an engineering artifact that can be expressed (at least some of them can) in a formal language. The fact that the requirement refers to something that should be, and not to something that is, means that requirements are modal concepts, though this can be left implicit in formal representations. For example, a requirement translated directly from a client’s request, could be that the product, say a table, “must weight as little as possible”, then engineers could precise this in different ways, e.g., by stating
Therefore, if one also designs products using the same formal language, the products can be checked against the set of constraints, to verify that those are satisfied by the products.
One difficulty of this approach is that some requirements are more difficult to express than others. Requirements such as (ex7) are easy to express, as they refer to physical properties of the products (they are sometimes called “physical requirements” [58]). On the other hand, requirements linked to product performance or functions are more difficult to express. For example, in [58], the requirements “The artifact [desk spot lamp] should be able to illuminate more than half a square meter of room”, “The base [of the desk spot lamp] should provide support to the artifact”, and “the short arm must have a hole […]” are formalized as follows:
Therefore, predicates “
For example, in
The point is that being able to express requirements that mention capabilities or functions is difficult, and an ontology describing such concepts would make things easier. For example, using our theory we would write requirements (ex9) and (ex10) as, respectively (in the following we have introduced a subclass of capabilities,
“Every desk spot lamp has a capability to illuminate, founded on an illumination-area-capacity greater than 0.5”
“Every lamp base has a (systemic) function of (ontological-function-)type provide support”
Notice that (ex11) and (ex12) can be readily rewritten in OWL, so that they can be part of an OWL knowledge base containing all the requirements that can be expressed in a similar way. Then, if engineers build during design a model of the product, using the same language, they just need to import the model into the knowledge base with the requirements: the product model satisfies the requirements if and only if the ensuing ontology is consistent (similarly one can find if the requirements are inconsistent or if there are duplicates). In an actual application the user may never write complex formulas such as (ex11) and (ex12), unless user-friendly templates are made available as done in [18].
An analogous procedure is the one that the READI project [51,77] aims to implement. In their case, the requirement are expressed in SCD (Scope Condition Demand) form. This means that they are assertions of the form
where S, C, and D are OWL classes, for example (the example is taken from [77]), “Equipment with a transport dry weight above 1000 kg shall be weighed by the manufacturer and a weight certificate shall be issued” is written in such a form, if S, C, and D are interpreted as the classes ‘Equipment’, ‘things with transport dry weight above 1000 kg’, ‘things that have a weight certificate’, respectively. Again, it is difficult to express functions- and performance-related requirements in the format of (ex13) if one lacks an appropriate reference ontology.
The work presented in this paper contributes to the ontological understanding and modeling of fundamental concepts used in engineering, especially functionality. In particular, we have shown how one can give ontologically-grounded definitions of capability, capacity, behaviour, and function using first-order logic. Moreover, we have shown how one can use an ontology and the notion of functional decomposition to distinguish between ontological, systemic, and engineering functions, and how ontological functions can be used to explain the difference between capabilities and capacities. Finally, we partially translated our first-order theory in OWL, showcasing a preliminary serialisation of our theory in a computer-friendly formal language.
Our approach builds on a series of previous works, especially on the study of functionality carried out by engineers and researchers, in particular [71,78,87]; the study of resources in manufacturing, in the applied ontology literature as well as some standards [11,39,84]; and the top-level ontology
We evaluated the quality of our implementation by assessing the clarity, expressive capability, and flexibility of our ontology with respect to some research questions, some competency questions, and some application scenarios. The relevance of our work is highlighted by the ability to answer a series of questions, from (RQ1)–(RQ3) to (CQ1)–(CQ6), showing that the ontology could be able to support applications in most engineering scenarios where functional reasoning is required.
This paper has set the vision and the core elements of our theory, yet many things require further work and testing to achieve a level of detail and coverage suitable for real applications. For example, linking the notions of behaviour to the modelling equations that engineers use to simulate a system is a topic that has not been addressed and requires additional research. Similarly, we need to analyze more in-depth how an ontological approach based on our theory can help to make uniform the description of application scenarios, starting from those touched upon in the paper.
Footnotes
Acknowledgements
The authors acknowledge support by the European project OntoCommons (GA 958371,
). Francesco Compagno is funded by the company Adige Spa. The authors wish to thank Riichiro Mizoguchi for the precious time spent discussing his work as well as the topics of function definition and engineering function modelling.
