Functional processes and functional roles

Скачать 46.35 Kb.
НазваниеFunctional processes and functional roles
Размер46.35 Kb.


Ant™nio Carlos da Rocha Costa

JosŽ Mauro Volkmer de Castilho

Dalc’dio Moraes Cl‡udio

Instituto de Inform‡tica - UFRGS

Caixa Postal 1501 - 90.001 Porto Alegre, RS - BRASIL

Anonymous ftp: host directory pub/inf.ufrgs/ia

Email: {rocha,castilho,dalcidio}


This paper introduces an approach to the representation of functional processes and functional roles in societies of computing agents using a general notion of path expression. A sample base language for specifying societies of computing agents is introduced, following the proposed approach. To illustrate the approach, a prototypical producer-consumer society is separatedly specified in its structural, behavioural and functional aspects, through the base language. The need for explicit and independent representation of functional notions in system design and specification is discussed in the Introduction.

1. Introduction

1.1 The need for functional notions

The practice has established that descriptions of computer systems should include details of both the system's structural and behavioural characteristics. In biology, psychology and sociology, however (see, for instance, (Piaget,1967) and (Beckner,1967)), it has been traditional to consider a third type of information, namely, functional information. In fact, to some authors, the functional aspects of systems should be seen as their main organizational aspects.

In this paper we report initial results concerning the search for methods to give comprehensive and integrated representations of complex dynamic systems, i.e., representations accounting for a system's structural, behavioural and functional aspects, as well as their mutual interactions (see (Costa,1991) for the background of our proposal). The initial result we present is a way to give a process-based representation to the notions of functional process and functional role, on the basis of a classical means for representing process interactions, namely, the path expressions of the COSY approach to concurrent systems (Lauer et al., 1979).

To frame our notion of complex dynamic system, we use that of a society of autonomous computing agents (see, for instance, the Communicating Knowledge Systems (CKS) model (Sernadas et al.,1987), which is a systems model for describing societies of computing agents that interact exchanging both knowledge and data).

We illustrate the flexibility of our approach to the functional structuring of systems by considering a prototypical producer-consumer society (a usual kind of subsystem in systems containing cooperating components) where we show that structural, behavioural and functional descriptions can be given in independent and complementary ways.

In future work, we will give further arguments that our approach to the representation of functional notions is handy in the functional structuring of societies of computing agents. At present, we base our believe in this statement mainly in the approach satisfying some general semantical requirements we consider important:

1) the possibility of direct specification of functional processes independently of the specification of the individual behaviours of agents participating in those processes, so that some functional picture of the society can be given even before any agent has been specified;

2) the possibility of preserving the individual histories of the agents' behaviours in the semantic models of the descriptions, so that responsibility for the execution of actions can be clearly established;

3) the treatment of functional processes on equal footing as individual behaviours in the semantic models. This requires the independent representation of functional processes and individual processes indicated in point (1) above. We think that the possibility of equal footing treatment is a crucial point to a subject we want to consider in the near future, namely, the run-time functional modification of systems, envolving operations such as changing roles of components, dynamically creating new functions or reestructuring functional interactions.

1.2 Functional processes and functional roles in general

In defining the word functional, as it may be applied to actions and interactions of agents, we follow loosely and in a simplified way (Castelfranchi & Conte, no printing date).

Concerning motivation, we say that an action, or interaction, is:

- accidental: if it happens by chance;

- intentional: if it is due to a decision of an agent;

- functional: if it is due to the design activity of a (possibly virtual) system's designer that planned it in order that an important function in the society be performed.

Concerning results, we say that they are:

- accidental: if the results are represented in nobody's mind;

- finalistic: if the results were represented in some of their agents' minds;

- functional: if the results were represented in the (virtual) mind of the (virtual) system's designer.

We also take from that paper the central idea of the present work: we assume as given in the society an abstract level of social roles in a par with the level of concret agents, and we state that functional interactions should be conceived at that abstract level of social roles, and not at the level of concrete agents, because they should be carried out in a way which must be independent of the particularities of the agents that perform them. Then, we state that functional interactions should be conceived as being performed to carry out a function that is important for the persistence of the society as a whole.

Moreover, functional interactions should be seen as occurring among a pre-determined set of functional roles, so that they are not allowed to be decided and negotiated freely by concrete agents, unless we are considering changes in the functional structure of the society, which we do no do in this paper. So, we define a functional role as a social role supporting a functional interaction.

1.3 Functional processes in societies of computing agents

In a sense, everything that is or happens in a society of computing agents is, or should be, functional (at least while computing agents are not endowed with free will, nor accidental events are allowed in the society), for the society as a whole is to be functional to its users. Thus, when we talk of functionality of roles and processes in societies of computing agents, it is assumed we are talking of a lower level functionality, submitted to and supporting the higher-level one that serves the users in certain ways. In a word, the functions we deal with, in a society of computing agents, are all primary means to that end.

2. The functional use of path expressions

The COSY (COncurrent SYstem) notation (Lauer et al., 1979) is one of the earliest notations for specifying and proving concurrent systems. Its central notion is that of "path expression", a means for directly specifying interactions among processes that share common resources in operating systems. It was conceived as an evolutionary step for operating systems structured with high-level concepts as, e.g., Hoare«s monitors (Hoare,1974).

In the present paper we show how a COSY-like approach to structuring systems, where we can explicitly specify some kinds of social processes (namely, the functional processes), through path expressions, satisfy the above indicated requirements for functional representations of societies of computing agents. In this section we consider, in a generic way, path expressions and their use in the representation of functional notions.

2.1 Path expressions

A path expression is a formal expression of the way some set of processes are allowed to interact. Originally (Campbell and Habermann,1974), path expressions were used to specify safe ways of using shared resources, each path expression indicating for some resource the allowed sequences of operations that competing processes could execute on that resource. More generally (Lauer et al., 1979), a path expression can be seen as an ordering restriction on the sets of interactive actions that interacting and communicating processes may perform (this is what is done in formal analysis of path expressions, see for instance (Shields, 1979)).

Formally, path expressions were originally defined as regular expressions. In this paper we assume a general notion of path expression, that is, we leave out the restriction that path expressions are regular expressions and consider that any formal specification imposing an ordering on interactive actions of parallel processes is a path expression. Also, we lift the requirement that path expressions refer to some shared resource and think of them as mere descriptions of interactions. We do this just to create an initial flexible scenary for our work, and having in view that this paper has no aim of stating proved properties of the ideas we present.

2.2 Social processes and path expressions

The path expression approach to the interaction of processes (Campbell&Habermann,1974) pioneered the direct and explicit treatment of interactions that was taken over by more recent algebraic approaches to concurrency in the vein of CSP (Hoare,1985) and CCS (Milner,1980).

Contrary to these theories, however, and very germane to our problem of modelling societies of computing agents, the path expression approach to process interaction allowed for two important features in the semantic models of interacting processes indicated in the Introduction, namely, both keeping the identity and individuality of each process all along its functioning, and treating interactions on equal footing as individual processes.

In fact, in the refered algebraic theories the second point is achieved: individual processes and their interactions are semantically treated as processes of the same nature. The first point, however, is not achieved: they do not allow for the preservation of the identities and individuality of processes during their functioning.

Also, due to the observational approach to concurrency taken by those theories, and the way they define synchronized actions, it happens that in actions jointly executed by two or more processes, it is not possible, in principle, to distinguish between the different processes' contributions to each action, so responsibility for action execution can't be defined.

Moreover, any set of processes is immediatly reduced, at the semantic model of the system, to a single process as soon as it happens that their behaviours are the same. For instance, although the following definition

P = a.R

Q = b.R

defines two different processes, P and Q, these processes are immediately identified as soon as each has perfomed its initial action (a and b, respectively).

In modelling societies of computing agents, it is important to be able to preserve explicitly the identity and individuality of agents even when it is known that they participate always in the same processes and in the same way, for agents are structural entities and not behavioural ones, so that their identities should not be blurred just because their behaviours become identical. In other words, in modelling societies of computing agents, it is important to take an approach were behavioural descriptions of the society do not dismiss the structural ones. Thus, the COSY approach seems to be the more adequate to our purpose.

2.3 Functional processes and path expressions

We propose that functional processes in societies of computing agents should be supported by the general concept of path expression. This seems an adequate solution to the problem of modelling the functional aspect of those societies, for:

i) functional processes can be explicitly specified in a way that is independent of the specification of the interacting agents themselves, as is shown in the following section;

ii) the approach is compatible with semantical models (e.g., the vector firing sequences of (Shields,1979)) where the individual histories of the behaviours of the agents are preserved, and the histories of the interactions themselves are treated on equal footing as those of individual behaviours;

iii) as it is also shown in the following section, it allows for a suitable balance among functional, behavioural and structural descriptions in the modelling of societies of computing agents.

Moreover, the first two points allow for the operating systems underlying societies of computing agents to operate in similar ways, at the meta-level, both on individual processes and on interactions.

3. On languages for programming societies of computing agents

3.1 General considerations

We think that languages for societies of computing agents should present a well balanced combination of constructs for expressing functional, behavioural and structural features of the societies. In particular, they should allow for:

i) purely functional descriptions of the societies: by this we mean that it should be possible to depict a society solely in terms of its functional processes, with no reference to the agents possibly involved in them;

ii) purely structural descriptions of the society: by this we mean that it should be possible to depict a society solely in terms of its elements, both active elements (agents) and passive elements (passive resources share by the agents), and their mutual interconnections (naming structure and access rights);

iii) purely behavioural descriptions of the societies: by this we mean that it should be possible to depict a society solely in terms of its agents and passive resources, and the description of their behaviours;

iv) any mixture of the above kinds of descriptions.

3.2 A sample base language

To illustrate the above mentioned kinds of descriptions and the special role played by functional descriptions among them, we present here a base language for programming societies of computing agents. Since the important things are the kinds of descriptions, and not the base language itself, we give no formal definition, and we present the language only through examples.

We have chosen a prototypical society as a "guinea-pig": a simple society of a producer and a consumer.

3.2.1 The producer-consumer society: informal presentation

The producer-consumer society is a prototypical simple society. It is constituted by two agents, the producer and the consumer. They realize the main function of the society, namely, that of a cycle of prodution and consumption of units of a determinate product. The producer produces units of a product, delivers them through a buffer resource to the consumer, which picks them up from the buffer and consumes them.

The behaviour of the producer may be figured out as a perpetual cycle of producing and delivering product units, and the behaviour of the consumer as one of picking them up and consuming. Buffer size (i.e., the number of allowed product units in the buffer) may be any finite one, but in the examples we consider a unitary buffer, thus constraining production and consumption to one unit at a time. In the following subsections we formalize the different aspects of the producer-consumer society through a suitable base language.

3.2.2 Purely structural description of the producer-consumer society

society: producer-consumer;

agent: producer;

uses: buffer;

agent: consumer;

uses: buffer;

commonresource: buffer


3.2.3 Purely behavioural description of the producer-consumer society

society: producer-consumer;

agent: producer;

performs: cycle {produce;deliver};

agent :consumer;

performs: cycle {pick-up;consume};

commonresource: buffer;

performs: cycle {deliver;pick-up}


3.2.4 Purely functional description of the producer-consumer society

society: producer-consumer;

functionalprocess: cycle {produce; consume}


3.2.5 Full description of the producer-consumer society

society producer-consumer;

functionalprocess: cycle {produce;consume};

agent: producer;

uses: buffer;

performs: cycle {produce;deliver};

agent: consumer;

uses: buffer;

performs: cycle {pick-up;consume};

commonresource: buffer;

performs: cycle {deliver;pick-up}


3.2.6 Comments on the descriptions and the base language

The first thing to note is that sec. 3.2.4 presents a perfectly understandable functional description of the society (it is one were there is a function realized by a cycle of production and consumption) even though there is no indication of which and how (and how many) are the agents and common resources available in the society.

Secondly, it is to be noted that the structural description in sec. 3.2.2 gives a fully independent structural view of the society, with no indication of what happens in it (and how), but with enough information to understand that there are two agents and that both should be allowed to name and access the single existing common resource.

Thirdly, it should be clear that the behavioural description in sec. 3.2.3 is the usual one when one writes programs in procedural languages. It should be clear also that it implies the information contained in both the previous description (the functional and the structural one), but that the desentangling of this implication is not always easy, so the need of the other two. Moreover, the behavioural description is not implied by the other two, since it is just one of the possible behavioural structures compatible with them.

A particular point to be noted is the way the notion of path expression was used. In sec. 3.2.4, a path expression was used to model the notion of functional process as a truly existing process in the society. In sec. 3.2.3, a path expression was used to describe the (passive) behaviour of the buffer, i.e., to pose a restriction on the ways the buffer may be used by the agents. This latter use is precisely the original way path expressions were proposed and used.

The main differences between the two uses are: i) functional processes may be thought of as concrete processes in the society; ii) behavioural descriptions of passive elements are better thought of as restrictions on their handling; iii) behavioural descriptions of passive elements are local descriptions, as they refer to actions happening on (or centered on) a single element of the society, while functional processes have a global flavour, as they refer to distinct active elements (possibly spatially distributed).

4. Extending the base language with functional roles

Roles of agents in functional processes can be introduced as formal constructs in the base language. Extending the base language with roles allows us also to give more refined functional descriptions of the agents, since then they can be directly associated to the roles they play in functional processes (thus fully justifying the use of the word functional concerning these processes, according to the definition we have given of the word functional). In the case of the producer-consumer society, we can write, for instance:

society producer-consumer;

functionalprocess prod-cons;

role PRODUCER = actions: {produce};

script: cycle{produce}

role CONSUMER = actions: {consume};

script: cycle{consume};

cycle {produce; consume}

endfunctional process;

agent producer;

plays PRODUCER in prod-cons;

agent consumer;

plays CONSUMER in prod-cons


Note that the assignment of roles to agents constrains, but not defines, their behaviours since these may encompass more actions and interactions then those given in the roles (for instance, producer and consumer access the buffer which is an operation not contained in PRODUCER and CONSUMER).

6. General comments and Conclusion

We have shown how functional processes, conceived as interactions among roles, and not directly among agents, can be modelled in societies of computing agents through a general notion of path expression. We have shown how roles themselves can be defined on the basis of the notion of parallel communicating processes.

The development of specification languages directed toward the clear distinction between structure, behaviour and functionality has been a continued effort in Artificial Intelligence (see, for instance, (Bobrow,1984)). What makes the proposal made here singular is precisely the conception of functional processes as concrete processes in the system, treated on equal footing as the private processes of the systems components, and the idea that functions performed by components should be defined on the basis of their roles in functional processes.

On the basis of the presented sample base language, other features important to the description of interactions among agents could be adjointed, specially aspects of agents such as goals, plans, beliefs, etc. Features like these are surely central to the control of the actions of agents participating in general interactions and even to the structuring of the interactions themselves.

In the case of functional interactions, however, it seems that they are only of secondary importance, since the structure of a functional interaction is designed by the (virtual) system's designer and does not arise from the systems functioning, unless in situations where we have a developing functional structure, which is not what we have considered here (see (Costa,1991) for this issue).

Further work exploring the sample base in both an experimental way (through the modelling of a variety of systems) and in a theoretical way (through the formalization of functional concepts) should put the suggestions presented here to proof.


This paper was sketched during a stay by ACRC at INESC/IST, Lisboa, Portugal, in February 1992, under financial support of CNPq/RHAE, proc. 40.1406/91. He thanks Dr. Helder Coelho for the discussions on multi-agent interactions and for comments that clarified many aspects of the paper.


1. BECKNER,M. Functional explanations in Biology, and Functionalism in Sociology. In: Edwards,P.(ed.) The Encyclopedia of Philosophy. New York, MacMillan&Free, 1967.

2. BOBROW,D. (ed.) Special volume on Qualitative Reasoning about Physical Systems. Artificial Intelligence, 24(1-3), Dec. 1984.

3. CAMPBELL,R.H. & HABERMANN,A.N. The specification of process synchronization by path expressions. In: Gelenbe,E. & Kaiser,C. (eds.) Operating systems, Rocquencourt, 1974. Springer-Verlag, 1974. p.89-102.

4. CASTELFRANCHI,C. & CONTE,R. Emergent functionality among intelligent systems: cooperation within and without minds. SBSP Project, Instituto di Psicologia - CNR, Rome, Italy. (no printing date). 10 pages.

5. COSTA,A.C.R. A fundamenta‹o da Inteligncia Artificial. P™rto Alegre, CPGCC/UFRGS, 1991. (Proposta de tese de doutoramento).

6. HOARE,C.A.R. Monitors - an operating system structuring concept. CACM,17(10):549- 547,1974.

7. HOARE,C.A.R. Communicating sequential processes. Prentice-Hall, 1985.

8. LAUER,P.; TORRIGIANI,R. & SHIELDS,M. COSY - a system specification language based on paths and processes. Acta Informatica, 12:109-158, 1979.

9. MILNER,R. Calculus of communicating systems. Springer-Verlag, 1980. (LNCS 80).

10. PIAGET,J. Biologie et connaissance. Paris, Gallimard, 1967. (We have used the brazilian translation: Piaget, J. Biologia e conhecimento. Petr—polis, Vozes, 1973).

11. SERNADAS,C.; COELHO,H. & GASPAR,G. Communicating knowledge systems - big talk among small systems. Applied Artificial Intelligence, 1:233-260, 1:315-335, 1987.

12. SHIELDS,M.W. Adequate path expressions. In: Khan,G. (ed.) Semantics of concurrent computation. Evian, France, 1979. Springer-Verlag, 1979. (LNCS 70). p. 249-265.


Functional processes and functional roles iconFunctional decomposition results in the artificial separation of functions and the data which they process, and in constraining the designer to “think” like the computer that organizes and processes the executable map file. •

Functional processes and functional roles iconRelevant Functional Areas: 2

Functional processes and functional roles iconFrom science to functional applications

Functional processes and functional roles iconFrom Algae to a Functional Food

Functional processes and functional roles iconFunctional Neuroanatomy of the Retina

Functional processes and functional roles icon2000 Wheater's functional histology

Functional processes and functional roles icon3 Functional and differential labelling of bacteria 17

Functional processes and functional roles iconFunctional Approach towards Approximation Problem

Functional processes and functional roles iconFunctional Genomics of the Interactions of Tomato and

Functional processes and functional roles iconL. – Functional characterisation of the rice genome

Разместите кнопку на своём сайте:

База данных защищена авторским правом © 2014
обратиться к администрации
Главная страница