Issue 296: About Function

Starting Date: 
Working Group: 

During the 34th joined meeting of CIDOC CRM and 27th FRBR CIDOC CRM Harmonization meeting and during the presentation of CRMBA, comments were made about the use of  B4 Empty Morphological Building Section and B1 Built Work . Then we decided a discussion group to be formed for elaborating a text about function. Achille, Paola, Carlo, MDa, GB, CEO are the members of this group.

Posted by George Bruseker  on 22/2/2016

Dear all,

In relation to the issue of B6 Function in CRMba, as presented in the last CRM SIG, a discussion was had trying to understand the proper way to model the function construct. As modelled under CRMba it is a subclass of temporal entity.

I would say no conclusion was arrived at with regards to how to model function but, in heavy synopsis, the following points were made.


In the BBT thesaurus, we have defined “function” as an activity type:
This term classifies activities that are structural parts of a relatively stable complex system of permanent and self-contained procedures that repeat themselves within this system and thus contribute to its preservation. Although functions are part of a wider system, each function is completely distinct from the rest. As structural parts of a complex system, functions are actions that play a certain role within a system and aim at a specific goal, which they must accomplish. In this respect it is not possible that the purpose which a certain function has to achieve is different from that for which the function is performed. In other words, the purpose of a function is one of its identity criteria. Consequently, the notion of the function univocally relates the actions performed and the target achieved by these actions in such a way that, if some other target is achieved due to external factors, we speak of a different function or activity.

I’d argue that also the function of a built structure is a universal. I’d not talk about the function of a whole building in general, I regard this as use: the type of activity the building was used for. In specific cases, such as a fortress, it may have a “defensive” function.

I’d argue temporality is in any case a question of phases of use, i.e. the agency is at people,
or phases of the built structure. In that sense, function does not have a temporality (which would make it a particular), but is categorical.

I’d expect built structures have functions in the sense of affordances or in the sense of prevention.

George Bruseker

If we model function as Activity Type (categorical knowledge) then it is presumably just a subclass of type. Therefore we can simply appeal to existing relations for documenting this aspect of the built work.

THING P101 – had as general use E55 Type
THING P103 -  was intended for E55 Type [SubType = Function Type]

In the CRMba construct then, "B6 Function BP12 is function of  B2 Morphological Building Section”, the BP12 could be a subclass relation of P103 where B6 would be a subclass of E55 Type and fall within its specified range. i.e. “B2 P103 was intended for B6 Function (statics, affordance, protection, decoration”

Use, could follow a similar parallel.

Maria Daskalaki & Martin

Point out we still really haven’t defined and understood ‘function’ more specifically.


I think the key is first to understand two patterns:

A) To what system/continued state/repeated situation is a function term relative to? Can/ do we need to model that?

B) How to model the event pattern, in which a feature becomes "functional" as an instrumental constituent.

C) How to model the event pattern, which is prevented by a feature.

Before that, all modelling is "poetry" ;-) . Do not expect the term "function" to survive the analysis! Otherwise so many
researchers would have come up with a reasonable distinction. It must be something polysemic. I think literature
talks about at least 4 senses, but I think the problem is classical: taking a relationship for an entity, which obsures

Maria Daskalaki:

I did a little research on the notion of function during the weekend and I would like to share with you some thoughts concerning this notion:

 The original meaning of function is not restricted to the results, or to one purpose among a variety of purposes that could be accomplished by the performance of certain actions, or could be attributed to certain things.

 it is the whole of relations between entities caught up in a technical network of the totality. It is a complex aspect of networks of persons and objects and not a property of things taken by themselves.

     Intuitively I would say that one of the criteria that differentiates function from use is that function as whole can not have multiple applications i.e. purposes that can be served. The function is neither a matter of choice that a subject or a group of subjects  may take, neither a certain purpose among others, that is activated in a certain time-span, but is inherent in the articulated totality which performs a function.. That is the reason why we state in the related definition from the BBT that “the notion of the function univocally relates the actions performed and the target achieved by these actions in such a way that, if some other target is achieved due to external factors, we speak of a different function or activity”.


Be careful not to confuse universals with particulars. "function" is a categorical term. "using something" pertains to a particular.
We should compare "kind of use" whith "function".  Be cautious not to discuss prototypical properties of a concept. I am not sure, if making an exclusive distinction between "use" and "function" is helpful. I'd rather see a different focus of contextual relation than a substantial difference, tool versus achievement or so. We should also distinguish "use for" from "use as"….

my concerns persist that a term like "function" does not have one core with common logical properties. Requiring such can mislead...;-)


posted by George 20/7/2016

Dear all,

I will go out on a limb here and say the following:

Issue 296 Function, is philosophically interesting. What _is_ a function? It is also incredibly broad and abstract and possibly impossible to solve definitively.

The practical issue of how to model function, however, comes from Paola's work on building archaeology and a desire to capture an assessment of the functionality of parts of a building on the part of a researcher in building archaeology.

This version of the problem seems solvable. While we have had a lot of conversation about the function issue, the outcome has been that it is probably a polysemic term that hides a number of different but probably related concepts. A list of potential function types arise from our conversations such as:

Enable, prevent, protect, social function, structural function

Question: don’t we go around in circles without actual data? Paola’s Phd isolates four different subtypes of function which are relevant in BA domain and are presumably elicited from her reading of the data structures, standards and literature relative to building conservation and protection in Europe.

Through our conversations, we have identified that describing the Function class as a sub class of E2 Temporal Activity is not a good modelling decision. Functions are somehow types. They are the ongoing goal towards which some thing as part of some system was created to achieve.

Beyond this, without having actual data from actual information systems filled with reasoning on functions, aren’t we just imposing ideas?

Therefore, I ask, wouldn’t a safe modelling position be to declare Function as a sub class of E55 Type (as we seem to have agreed) and then give 4 more specific functions under this (Statics, Affordance, Protection, Decoration) and have a relation between the B2 Morphological Building Section which has semantics of ‘has function’ with four subclassed relations that relate the specific function relations? Then if such data structure got populated we could have a debate grounded on evidence? In the meantime if these sub function types turn out to be incorrect and someone were using CRMba, it would not matter as whatever was recorded under the false function type could always be moved up to the general function type declared?