Prolégomènes à une théorie des processus interactifs de durée indéfinie


Anne Nicolle pour STP

GREYC-ISLanD UMR CNRS 6072 & Pôle Modescos de la MRSH

Université de Caen -- CNRS

14032 Caen Cedex

anne.nicolle@info.unicaen.fr


 
 
Que n'ai-je un pinceau
Qui puisse peindre les fleurs du prunier
Avec leur parfum

(Shoha)









1. Introduction

Jusqu'aux années 80, l'informatique s'est surtout développée pour calculer des fonctions en référence à une théorie du calcul. Ces fonctions s'exécutent grâce à des processus terminatifs et sans effets de bord. En parallèle, elle s'est développée aussi pour gérer les données des entreprises, en référence à une théorie de l'information. Elle a mis alors l'accent sur la constitution, l'utilisation et la mise à jour des données et des formulaires. Le paradigme objet, créé pour gérer les interfaces graphiques et les simulations, a permis de réunifier ces deux points de vue en considérant les types d'objets comme comportant à la fois une structure de données et des procédures de manipulation de ces données. Il réunifie le paradigme du calcul avec le paradigme des données et de leurs transformations, qui sont des effets de bord utiles des calculs. Il permet le développement des interfaces et le développement d'une approche de l'informatique centrée sur les usagers. Mais les objets ne résolvent pas de manière convaincante la modélisation de la dynamique des actions et des interactions qui sont faites par les machines car elles représentent les fonctions et les processus de la même manière, par des méthodes. C'est pourquoi la modélisation des processus, des agents, des objets actifs est un champ ouvert de recherche : « The dynamic semantics are described using natural language, although in a precise way so they can easily be understood. Currently, the dynamic semantics are not considered essential for the development of tools; however, this will probably change in the future. » [UML, 2001, p. 2-7]

Comme la programmation objet est née des exigences de la simulation de processus existants, parlons-en un peu. Les premières simulations informatiques des phénomènes physiques, biologiques et sociaux étaient très proches des modèles mathématiques et statistiques, cherchant à les implanter par des méthodes numériques d'approximation quand les systèmes d'équations n'avaient pas de solution analytique. Elles restaient donc dans le paradigme du calcul. Cette question de la modélisation mathématique des processus physiques, biologiques et sociaux a été discutée dans le dialogue entre Cornélius Castoriadis et Francisco Varela à France Culture retranscrit dans [Castoriadis]. La présente étude cherche à rendre compte du dépassement des difficultés de cette implantation numérique de la modélisation mathématique par une autre modélisation informatique, en terme d'actions et d'interactions. Elle est à la fois une description des phénomènes et une reproduction dynamique des processus par des moyens numériques. Commencée dans les années 60 avec Simula, elle s'est développée avec les systèmes multi-agents [Wooldridge, 2002]. Dans cette formalisation informatique par programmes, il s'agit de construire des processus numériques analogues aux processus naturels [Hofstadter, 88, p.513, 515]. Il faut que ces processus puissent changer de substance en conservant leur forme et leur dynamique. On peut les étudier d'une toute autre manière qu'en les mettant en équations. Les équations, du mouvement par exemple, peuvent jouer un rôle, mais il est subordonné.

Mais les processus informatiques n'ont pas toujours comme but la modélisation d'un processus existant. Ils permettent de créer de nouveaux outils pour écrire, classer, calculer, communiquer, s'amuser. Ces outils lancent des processus interactifs qui ne doivent s'arrêter qu'à la demande de l'usager.




2. Les processus interactifs de durée indéfinie

La plupart du temps, les ordinateurs mettent en route des processus interactifs de durée indéfinie qui communiquent entre eux et avec des êtres humains : systèmes d'exploitation des ordinateurs d'abord, mais aussi de nombreuses applications : traitements de texte, tableurs, gestionnaires de bases de données ou de mails, butineurs Web. Or les théories de l'informatique cherchent à rendre compte des processus terminatifs. La théorie du calcul, la cybernétique ou la théorie de l'information ne rendent compte que très partiellement des processus interactifs. L'objectif de cet article est de définir quels sont les nouveaux concepts nécessaires à cette théorie. J'ai déjà proposé une catégorisation de ces processus suivant leur comportement et montré comment une théorie des processus s'articule avec une théorie du calcul [Nicolle 03]. Les processus non terminatifs exécutent des fonctions, qui en sont des composants.

Un processus interactif de durée indéfinie1, ou PII, est une abstraction d'un processus concret du point de vue de son fonctionnement de processus et de ses interactions avec les autres processus. On distinguera trois étapes dans le fonctionnement des processus : la mise en route, la fin et le coeur du processus. Le coeur du processus fait souvent alterner des phases où le processus est actif et des phases ou le processus est endormi. On peut donc le représenter par le diagramme états-transitions de la figure 1. Il montre les états d'un processus et les événements, à l'initiative d'un usager ou plus généralement d'un autre processus, qui le font changer d'état.
 
 
 

Figure 1 : Les états d'un processus de durée indéfinie

On peut donner comme exemple les Applets [Java] dont la création, l'initialisation, la terminaison et le passage de l'état actif à l'état endormi dépendent de l'état de la page HTML où elles sont affichées et pas du début ou de la fin d'un calcul interne. Elles sont dans l'état actif tant que la page qui les contient est au premier plan. Elles peuvent recevoir des événements et les applets d'une même page HTML peuvent communiquer. L'état actif des PII va être décomposé en un diagramme états-transitions spécifique à chaque processus. Ce qu'on va chercher à formaliser, c'est ce qui relève de l'identité et de la différence entre des processus dans leur état actif, quelles que soient les conditions dans lesquelles ils démarrent et dans lesquelles ils s'arrêtent. Leurs propriétés fonctionnelles et interactionnelles vont permettre de définir des classes de PII. On pourra alors raisonner sur ces classes et avoir des résultats généraux.


2.1. Caractéristiques des PII

Un processus interactif de durée indéfinie est par nature spatio-temporel et événementiel : il capte et lance des événements dans le temps et l'espace. En tant que processus concrets implantés dans un processeur, les PII ont un début et une fin. Ils mobilisent des substances et de l'énergie qui leur donnent leur existence. Ils sont dans le temps. Les PII sont en interaction avec des usagers et avec des processus physiques, biologiques, industriels. Ils sont dynamiques et en prise sur le temps présent. Ils font des actions physiques (ouvrir une vanne) ou signifiantes (poser une question). Ils modifient le monde socio-technique humain en instrumentant ses communications. Au contraire, les équations et les fonctions sont indépendantes du temps et de l'espace concret, qu'elles représentent par des variables.

Les PII ont une certaine indépendance vis-à-vis des processeurs et du logiciel. Ils ne s'arrêtent jamais par eux-mêmes, sauf en erreur. Ceux qui contrôlent les systèmes bancaires ou les centrales nucléaires ne s'arrêtent jamais.

- Ils ne s'arrêtent pas pour changer de version du logiciel, ils migrent sur la nouvelle version sans interruption.

- Ils ne s'arrêtent pas quand on change les machines qui les font tourner. Ils passent sur la nouvelle machine qui les reprend en charge dans l'état où ils sont.


2.2. Forme et substance

Pour modéliser un phénomène, il faut une indépendance de ce phénomène à ses causes substancielles naturelles, qui permet d'en faire un analogue dans une autre substance 2. Cette étude ne concerne pas la substance des processus, mais seulement leur forme, leur dynamique et leurs interactions. Elle montre comment on peut obtenir des analogues des processus en changeant leur substance. Toutes les propriétés liées à la substance sont perdues mais pas les autres. Les processus vivants ont une substance biologique et les processus informatiques une substance numérique. Faire une statue d'un être vivant change la substance biologique en substance inerte, conserve la forme mais pas la dynamique. Enregistrer un film change la substance, conserve la forme et la dynamique, mais cette dynamique est figée, elle ne peut qu'être rejouée et n'est plus sensible aux interactions. Faire un analogue machine d'un processus vivant permet de conserver sa forme, sa dynamique et ses possibilités d'interaction.

La matière n'est pas numérisable en tant que telle, mais la forme l'est, elle peut être transformée en signal. C'est pour cela qu'une trace de pas dessinée sur un papier ou sur un écran est toujours une trace de pas, parce que c'est sa forme qui compte. On ne peut pas fumer la pipe dessinée par Magritte, mais c'est bien une pipe, quoi qu'il écrive parfois en dessous du dessin, car la langue utilise le même mot pour désigner l'objet et sa forme. On ne peut pas dessiner une odeur ou un goût parce que c'est une trace indétachable de son support, un effet de la substance et pas de la forme.

Le signal produit par des ondes visuelles et sonores est numérisable puisque sa numérisation permet de le reproduire avec des appareils spécialisés. La numérisation conserve la forme du signal, qui permet de reproduire sa dynamique.

Les flux et les traces produits par les processus sont seulement vus en tant que signaux numérisables. Comme on fait une théorie des processus et pas des processeurs, leur substance est indifférente. C'est un point de vue différent du point de vue que la mécanique des fluides adopte sur les flux, en les décrivant par des systèmes d'équations différentielles. Ils sont étudiés ici dans leurs rapports aux processus.

Les exemples de PII qui seront donnés seront des exemples de processus concrets qui mobilisent des substances, de l'énergie et du temps, mais seuls leur structure et leur comportement sont concernés par cette étude. Par exemple, la goutte d'eau qui tombe d'un robinet qui fuit fait "toc, toc, toc…" (processus sonore), l'enfant qui enfile des perles fait un collier (processus matériel), l'homme qui marche sur le sable laisse des traces de pas (processus sémiotique pour celui qui cherche à le suivre) : ces trois exemples de processus concrets correspondent au même processus abstrait de répétition d'une action élémentaire.


2.3. Processus et systèmes Éudier les processus interactifs suppose l'existence d'un système de processus en interaction dans un environnement. Certains de ces processus peuvent être des processus matériels ou des processus biologiques. Ils seront considérés par les processus informatiques en tant qu'ils sont instance d'une classe de processus au sens décrit ici. Font partie de l'environnement l'espace où se trouvent les processus et dans lequel ils peuvent déposer des traces et les paramètres que certains processus peuvent capter comme la pression ou la température. Le comportement d'un système de processus n'est pas une composition des comportements des processus qui en font partie, il émerge de leurs interactions. Il faut donc définir simultanément ce qu'on appelle processus interactif et ce qu'on appelle système de processus.
 

Figure 2 : diagramme UML des relations entre Objet, Processus,
Flux et Système

Un système de processus comporte au moins 3 processus. Pour l'instant, il est arbitraire de mettre trois comme borne inférieure, mais on peut donner quelques arguments en faveur de cette limite.
1) Quand on utilise un ordinateur, il y a toujours au moins trois processus en jeu : l'usager, le logiciel d'application et le système d'exploitation.
2) Il y a trois personnes aux pronoms personnels sujets (je, tu/vous, il/elle).
3) On peut observer qu'en dessous de trois personnes, certains comportements sociaux sont impossibles, par exemple le rôle d'observateur dans un dialogue n'est pris par un des interlocuteurs qu'à partir des trilogues [Jacquet].

Les systèmes de processus imposent des contraintes aux processus qui en font partie. Le graphe des interactions des processus d'un système de processus est connexe. Dans un système de processus, le temps n'est pas partagé a priori. Chaque processus d'un système peut manifester un point de vue différent sur ce qui se passe et peut être dans un temps et un monde propre différents des autres, bien qu'ils s'influencent par leurs interactions.

Il y a trois points de vue à prendre en compte pour l'étude d'un processus relativement à un système de processus 3 :

    Le point de vue du processus sur lui-même ou point de vue interne ;

    Le point de vue des autres processus ou point de vue externe, limité par les événements qu'ils captent en provenance du processus étudié ;

    Le point de vue d'un observateur universel, qui ne fait aucune action, mais qui peut observer tous les événements qui se produisent. L'observateur universel est par exemple l'usager d'un système de simulation, pendant le temps où il observe la simulation sans intervenir sur son déroulement. Par contre, l'usager d'un traitement de texte est un processus interagissant avec le processus logiciel : il prend des décisions et crée des événements sans lesquels il ne se passe rien.

Au contraire de la cybernétique, je n'étudie pas les systèmes comme des boîtes noires, mais à partir du comportement de leurs composants et des relations entre les composants. Les entités mises en jeu dans cette étude sont caractérisées par leurs différences et par leurs relations.


2.4. Modélisation UML des processus La notion de classe active est présente en UML : « isActive Specifies whether an Object of the Class maintains its own thread of control. If true, then an Object has its own thread of control and runs concurrently with other active Objects. Such a class is informally called an active class. If false, then Operations run in the address space and under the control of the active Object that controls the caller. Such a class is informally called a passive class. » Les classes actives sont celles qui définissent des processus. Leur diagramme d'états est celui de la figure 1.

UML définit les notions de traits comportementaux (behaviorial structures) dont certains sont des opérations, mais on y trouve aussi les signaux, les stimulus, les actions, les séquences ordonnées d'actions… Mais les processus ne sont pas décrits comme processus, ils sont décrits à travers des graphes d'activité. Dans la version 4 de septembre 2001, pour la première fois, comportements et interactions sont décrits. Dans la version 5 de mars 2003, les diagrammes d'activité ont été beaucoup développés par rapport aux versions précédentes.


2.5. Les processus ont différents aspects : - Un aspect relationnel : la structure. Un processus est caractérisé par les actions qu'il fait, par les événements qu'il capte, par les flux et les traces qu'il capte ou qu'il produit. Actions et événements sont ponctuels et sont des points de vue différents sur le même phénomène par le processus qui le produit et par celui qui le capte. Des flux et des traces peuvent être associés aux actions d'un processus. Ils ont des propriétés continues comme l'intensité, la couleur, la fréquence sonore, et la durée.

- Un aspect comportemental : la forme.

La forme d'un processus définit les relations statiques et temporelles entre les actions, les flux et les événements qui le caractérisent. Elle détermine ou contraint l'action faite par le processus à chaque instant en fonction de la ou des actions précédentes, des événements reçus, et de l'état interne. Sans la forme, il n'y a ni actions possibles, ni possibilité que des événements soient captés. Ses invariants signent l'identité du processus à travers ses manifestations. La dynamique d'un processus gère son fonctionnement et son rapport au temps, à lui-même et au contexte, dans les conditions prévues par la forme, lorsque le processus est mis en route par les causes qui le gouvernent. Elle gère la temporalité concrète du processus et les décisions d'action en dépendent.

- Un aspect clôture opérationnelle :

la distinction privé/public ou interne/externe est pertinente pour les processus. Les processus évolués peuvent avoir une mémoire plus ou moins développée des événements passés. Ils peuvent avoir des buts qu'ils cherchent à remplir et qui orientent leurs actions. C'est leur domaine privé, dont ils peuvent présenter certains éléments via une membrane ou une interface. L'apparence des processus révèle partiellement leur état interne et les manifestations révèlent partiellement leur forme aux autres processus. L'apparence d'un processus est analogue à une trace. Les actions d'un processus peuvent être des actions internes ou des actions ayant des manifestations externes. Une action interne va modifier l'état ou la mémoire du processus. Il n'est pas exclu qu'elle modifie aussi la structure ou la forme, mais dans des conditions prévues par la forme, c'est à dire en respectant les invariants. C'est le dilemme de l'apprentissage, qui doit permettre l'évolution sans altérer l'identité. Une action externe peut être ponctuelle, elle crée alors un événement. Elle peut aussi déposer une trace ou être associée à un flux. Elle peut modifier l'apparence du processus. Toutes les manifestations externes peuvent être des événements pour d'autres processus ou pour le processus lui-même. Les actions internes ne peuvent être des événements que pour le processus concerné.

En programmation objet, la classe définit la structure et la clôture, seuls les objets actifs ont un comportement : méthode main des classes exécutables en Java, méthode start des applets, méthode run des threads. Mais la distinction entre fonctions et processus n'est pas assumée puisque les deux sont des méthodes.


3. Définitions et notations


3.1. Actions et événements, deux notions duales Ce qui est action et ce qui est événement dépend du point de vue où on l'observe. Par exemple, la goutte d'eau qui fait « toc, toc, toc… » peut être vue :

- comme une action du processus qui la crée (le robinet branché sur un système de distribution d'eau)

- comme un événement pour le processus qui la voit ou l'entend

La suite des gouttes d'eau peut être vue par certains processus :

- comme un flux de matière ayant un poids, un volume, une couleur, qui laisse une trace dans l'environnement (flaque, ruisseau)

- comme un flux sonore qui peut être mémorisé.

Les événements qui ne sont pas captés au moment où ils sont émis sont perdus, sauf si le receveur les conserve dans un tampon, il les considère alors comme appartenant à un flux. Les flux ont une durée de vie interne au processus qui les a reçus, limitée à quelques items alors que les traces sont conservées par l'environnement et sont donc publiques. Elles ont une permanence plus grande, non bornée, même si elles finissent par disparaître.


3.2. Ponctuel et duratif On distinguera action et activité par leur durée : une action est ponctuelle et une activité est durative, c'est à dire qu'elle a une certaine permanence temporelle. On distinguera entre événements et traces par leur durée : un événement est ponctuel et une trace est durative.


3.3. Discret et continu On distingue les phénomènes discrets des phénomènes continus par le fait qu'on peut les compter mais pas les mesurer [Nicolle, 03]. Une action, un événement sont de nature discrète, mais des valeurs continues peuvent leur être associées. On appellera qualités d'un événement les valeurs d'un type continu qui peuvent lui être associées comme la couleur, l'intensité, la fréquence. Un événement élémentaire est un événement sans qualités.


3.4. Le temps des processus Le but de cette étude est de définir et de caractériser les processus interactifs infinis ou PII. À la différence des fonctions, dont le calcul se déroule dans le temps d'un observateur, mais qui n'ont pas de temps propre, ces processus sont dans un rapport effectif au temps. Pour les processus comme pour les fonctions, le temps est une ressource. Le calcul d'une fonction peut être refait à l'identique car le temps où le calcul se fait ne change pas ce calcul, seul le temps de calcul compte. Au contraire, le temps des processus est un temps « qui compte », un temps où des événements ont lieu. Un processus qui capte des événements est dans le temps physique car il ne peut capter qu'un événement à la fois et les événements non captés sont perdus [Nicolle, 04]. Le moment où ils produisent leurs sorties est signifiant, ainsi que celui où ils captent leurs entrées. Ce temps n'est pas seulement un temps compté, comme pour les fonctions. Il n'est pas non plus un temps représenté, comme dans les équations en physique.

Certains processus ont un temps propre rythmé par une ou des pulsations : temps nécessaire pour réaliser une action élémentaire, temps de capture d'un événement par exemple. On les appellera des processus pulsés. La pulsation provient de la substance qui réalise le processus :

- les êtres vivants ont des pulsations qui leur sont propres comme la respiration ou les battements du coeur,

- les artefacts mécaniques ont une pulsation qui provient des fonctionnements cycliques (moteur, balancier d'horloge, ressort) de la machine,

- les artefacts informatiques ont une pulsation donnée par le cycle de base ou les tops d'horloge du processeur.

La pulsation du processus permet la transformation de la forme du processus en dynamique ayant un temps propre. Les processus pulsés avec lesquels un processus est en interaction vont pouvoir prédire l'arrivée d'événements rythmés par comparaison avec leur temps propre.

Le temps propre est premier par rapport à un temps universel. Le temps partagé va intervenir comme conséquence des interactions, pour permettre les synchronisations. La théorie doit donc rendre compte de l'apparition du temps commun aux processus à travers leurs interactions. En effet, le temps universel est construit socialement. Il peut être acquis par des processus informatiques comme résultat des interactions homme-machine ou machines-machines via un réseau (l'horloge des ordinateurs se règle en principe sur une horloge de référence quand on accède au réseau). Un processus qui n'a pas de pulsation propre peut avoir un rapport au temps social et le découper en unités minimales du point de vue de ses actions. On appellera aussi pulsation cette unité minimale de temps qui, pour les processus informatiques est l'analogue des pulsations des processus vivants.




4. Classement des processus
On appellera processus élémentaire un processus qui ne fait que des actions élémentaires, observables comme des événements élémentaires, des tops sans qualités (ex. une horloge). La forme des processus élémentaires est une fonction, ou un couple de fonctions qui s'exécute à chaque fois qu'une action est faite pour choisir la suivante (déplacement d'une aiguille ou des deux aiguilles de l'horloge). On appellera processus à objets des processus dont les événements sont associés à des valeurs non nécessairement discrètes (force, intensité, couleur…). Les processus interactifs à objets peuvent capter et produire des flux d'objets qualifiables, des traces persistantes ayant des attributs observables et avoir une apparence observable variable. Ces processus ont des entrées-sorties au sens propre, ils récupèrent des valeurs dans l'environnement et pas seulement des tops et ils produisent des flux d'objets. La forme des processus non élémentaires ne se ramène pas à un couple de fonctions car elle fait des effets de bord (cf. §5.).

On peut aussi classer les processus en fonction de leurs causes. Aristote distinguait quatre types de causes : causes substantielle, efficiente, formelle et finale [Aristote].

- Les causes substantielles sont liées aux propriétés des substances qui réalisent le processus, comme nous cherchons à caractériser les processus analogues bien qu'ils aient des substances différentes, les causes substantielles ne sont pas pertinentes pour ce type de classement.

- Les causes efficientes sont des forces qui mettent en route et entretiennent le processus. Les causes efficientes des processus physique sont les forces, celles de processus biologiques sont la vie. Il n'y a pas d'équivalent des causes efficientes en modélisation mathématique, mais en informatique, la cause efficiente est l'exécution par le processeur : le lancement d'un programme par l'usager et sa prise en charge par l'ordonnanceur du système.

- Les causes formelles sont les équations du mouvement, les formules ou les instructions d'un programme.

- Les causes finales sont les buts vers quoi tend le processus par construction : toucher une cible, calculer une fonction, distraire l'usager pour un jeu.

Soit P [F, {a1, a2,... aN}, {e1, e2,... eM}] un processus dont la forme est F, pouvant faire N actions différentes a1… aN et captant M événements différents. Le temps noté dans les fonctions suivantes est le temps relatif au processus lui-même, c'est à dire que c'est la pulsation du processus qui détermine le passage de tn à tn+1. On note At l'action réalisée au temps t et Et l'événement capté. La forme du processus détermine l'action exécutée à chaque instant, en fonction des actions et événements passés, de l'état du processus et de ses buts. On peut caractériser les processus actifs par la manière dont ils choisissent l'action qu'ils font à chaque instant. Pour le faire on reprend les distinctions d'Aristote sur les différentes sortes de causes. Les processus peuvent décider d'agir en fonction de causes formelles (leur fonction de calcul), de causes efficientes (les actions et événements antérieurs) et de causes finales (un principe de viabilité, des buts, des objectifs). Si toutes les actions sont possibles à tout moment et sont choisies aléatoirement, le processus obéit seulement à une cause formelle qui est le tirage aléatoire. Si le processus décide de ses actions en fonction des événements qu'il a captés et des actions qu'il a faites précédemment de manière univoque, il obéit à des causes formelle (la fonction) et efficiente (les actions et événements passés). On appellera agents les processus dont la fonction de transition entre le temps t et le temps t+1 renvoie plusieurs résultats. Elle contraint les actions possibles au temps t+1, mais n'en décide pas. La décision effective d'action dépend d'une deuxième fonction, la fonction de choix, qui peut être aléatoire ou dépendre d'une cause finale. La cause finale est un principe de viabilité, un but ou des objectifs hiérarchisés. Elle est implantée par une méthode de choix indépendante de la fonction de transition : méthode heuristique, oracle. Un observateur peut prédire ce qui est possible ou impossible de faire à chaque instant à cause des contraintes, il ne peut pas prédire ce qui sera effectivement fait car les raisons internes évoluent au fur et à mesure qu'on s'approche du but, ou qu'on s'éloigne des conditions de viabilité.

Le tableau ci-dessous récapitule le classement interne des processus en fonction des causes qui gouvernent leurs actions.


 
Type de processus
Causes
aléatoire
Formelle
déterministe
Formelle et efficiente
agent
Formelle, efficiente et finale

Les processus informatiques sont tous conçus pour répondre à des causes finales, mais la plupart du temps, les causes finales ne restent pas explicites car le programmeur les transforme en causes formelles. Les agents sont des processus pour lesquels les causes finales restent explicites, mais la planification est un moyen pour les agents de transformer contextuellement leurs causes finales en causes formelles. La planification ne fonctionne bien que dans des environnement suffisamment connus et suffisamment prédictibles. Les causes finales doivent diriger le comportement des agents pour qu'ils puissent évoluer à partir de leur expérience.




5. Les processus à objets4
Les processus interactifs à objets peuvent capter et produire des événements ou des flux avec des qualités (épaisseur, force, couleur, intensité, signature…) et pas seulement des tops. Ils peuvent laisser des traces persistantes et avoir une apparence variable qui signale tout ou partie de leur état interne. Ces processus ont des capteurs pour récupérer des objets dans l'environnement et des effecteurs pour produire des flux d'objets.



5.1. Environnement, espace, apparence
On appelle environnement d'un processus les autres processus avec lesquels ce processus peut interagir et l'espace comme lieu de transmission des événements et des flux et comme lieu d'inscription des traces. Les champs de forces (vent, gravitation, force électromagnétique…) n'entrent dans le domaine de cette étude que s'il existe un processus couplé avec un capteur qui transforme les forces en flux de données. La disposition physique des processus dans l'espace et leur mouvement n'est pas prise en compte non plus. La section 8 montrera les relations entre cette étude et celle des robots situés dans un espace physique. Par contre, les ordinateurs sont dans un « espace » via le réseau qui les relie entre eux, par lequel ils reçoivent les flux et « observent » les traces et qui leur attribue des adresses. L'espace du réseau en tant que repère est donc assimilable à un système d'adresses permettant l'interaction entre les processus dans la même machine ou dans des machines différentes. L'espace en tant que support de mémoire permettant des inscriptions, peut être implanté par des fichiers ou des bases de données. Ces mémoires peuvent être privées ou publiques. Elles sont assimilables à un ruban externe, dans le vocabulaire des machines de Turing (MT) ou à un blackboard à une ou plusieurs dimensions dans le vocabulaire de l'IA, ou à une base de données. Lorsque les mémoires sont partagées, plusieurs processus peuvent écrire et effacer des données et les principes des MT deviennent inapplicables. La question des noms est liée au partage d'un langage, donc conventionnelle, alors que la question des adresses est une question de localisation intrinsèque à un repérage. Mais bien sûr, pour que les adresses soient partagées, elles doivent être nommées, et leur nom est conventionnel.

Comme exemple d'apparence, on peut donner la position du corps et les mimiques des êtres vivants, les vêtements et le maquillage des humains, les interfaces graphiques sur les écrans des ordinateurs. Dans le contexte des réseaux, l'apparence d'un processus est ce qui est observable d'un processus par les autres processus. Ce peut-être un enregistrement d'identification dans une BD partagée, ou être associé aux événements transmis, comme signature par exemple.




5.2. Flux et traces
Comme exemple de flux, on peut donner la lumière, le bruit, la parole ou la musique. Les flux sont volatils, ils ne peuvent persister au delà d'un court instant. Comme exemple de traces, on peut donner les traces de pas, l'écriture, les partitions musicales ou les dessins.

Les flux peuvent être des flux de matière (odeurs, rivières), des ondes (son, lumière), des flux d'objets (voitures sur une route, gens dans une foule). Ils peuvent être discrets ou continus. Les flux continus peuvent être étudiés en positionnant une fenêtre qui les discrétise. Les flux discrets peuvent être tamponnés, un nombre fini d'éléments du flux est alors mémorisé tant que les suivants ne les remplacent pas.

Les flux peuvent laisser ou non des traces. Une trace externe est produite par un flux ou par un mouvement, elle nécessite une matière pour se réaliser, mais c'est quelquefois sa forme qui la caractérise. La disparition progressive des traces pour des raisons physiques (évaporation, usure…) n'est donc pas non plus prise en compte. Si on veut la prendre en compte, on considère la trace comme un processus dont on observe l'apparence variable.

Les processus à flux ou à trace produisent, captent et mémorisent des objets dont la granularité et les attributs doivent être étudiés. Les flux, les traces et la mémoire sont composés d'objets ou sont décomposés en objets qui font valeur pour les processus.




5.3. Les valeurs
Les processus à flux ou à traces peuvent manipuler des objets. Comme on veut proposer une théorie plus utilisable que la théorie des MT pour les raisonnements des informaticiens sur leurs programmes, il est important que les objets ne soient pas ramenés à une suite de codes binaires, ce qui est un grain d'analyse trop fin. On ne veut pas non plus ramener les valeurs à leurs propriétés physiques, puisqu'il s'agit d'une théorie des processus. Les valeurs au sens d'un processus abstrait sont des valeurs numérisables. On fait donc l'hypothèse que le bon niveau de description est le niveau des « objets » au sens de la programmation par objets, et l'on cherche donc dans le même mouvement à faire une théorie des objets, dans leurs relations aux processus. Les objets ont une valeur pour les processus qui n'est pas réductible à leur codage, c'est ce qu'il faut expliquer pour éviter l'assimilation du signifiant et du signifié des signes, qui amène l'indécidabilité des systèmes formels quand ils rabattent le sens d'une expression sur son écriture, comme dans les démonstrations de Gödel 5.

Pour produire, capter et traiter les valeurs autres que binaires, on supposera qu'un processus est équipé d'un mécanisme cognitif qui lui permet de reconnaître, de produire et de traiter par des opérations certains types d'objets. Si un processus produit dans l'environnement un objet d'un certain type, par exemple un cube bleu, un autre processus peut reconnaître cette forme et cette couleur s'il est équipé pour cela. Sinon, il ne perçoit pas ces valeurs, ou il les perçoit autrement. Un objet est donc vu abstraitement comme un couple (codage binaire, codage binaire) qui est vu par certains processus comme un objet, c'est-à-dire comme un couple (type, valeur) signifiant pour lui. La théorie des processus interactifs non élémentaires nécessite donc une théorie des objets qui circulent entre les processus.

Le mécanisme cognitif fait partie de la forme du processus. On va chercher à le caractériser comme structure algébrique et comme dynamique. Pour les processus informatiques, la structure algébrique est un système de types (classes, interfaces, objets primitifs). La description de la dynamique en tant que dynamique informatique n'est pas réductible à un système d'équations dont le temps est une variable. En effet, poser les équations qui régissent un mouvement ne suffit pas toujours à en rendre compte si le système d'équations n'est pas soluble, ce qui est presque toujours le cas (Problème des trois corps en astronomie).




5.4. Structure des flux et des traces
Les flux peuvent être discrets ou continus. Du point de vue des processus, la saisie d'un flux continu est une action qui discrétise le flux relativement à l'appareil cognitif et à la pulsation du processus. Un flux est donc composé d'objets qui arrivent l'un après l'autre, soit par nature, soit parce qu'on les observe à travers une fenêtre. Lorsqu'un flux est continu, la continuité du flux doit être reconstruite par les processus, elle n'est pas saisie d'emblée. Lorsqu'un processus produit un flux, il peut être continu, car le mouvement est continu, contrairement à la perception.

Les traces sont produites par des flux, mais ne gardent pas toujours la mémoire de l'ordre dans lequel chaque élément de la trace a été produit. On peut les lire dans tous les sens. Certains flux diffusent dans toutes les directions (son, lumière, odeur), d'autres sont linéaires, (ou plutôt quasi-linéaires puisqu'ils peuvent avoir une section). Les traces peuvent se placer dans l'espace correspondant à l'environnement en fonction de la structure de l'espace et de la structure du flux ou du mouvement qui les créent. Un trait sur le sol est une trace linéaire, un dessin une trace à deux dimensions, une sculpture ou une maison, une trace à trois dimensions. Nous emploierons quelquefois flux comme hyperonyme de flux et de traces quand il n'y a pas de raison pour les distinguer.

Les traces sont une forme de mémoire externe pour les processus. Nous ne savons que très indirectement comment est organisée la mémoire des processus vivants. La mémoire des processus artefactuels est construite et donc son organisation est explicite. Pour faire une théorie des processus, on peut considérer l'espace des traces et l'espace mémoire des processus comme ayant une même organisation : même structure et même fonctionnement. Il faut le voir au départ comme un espace topologique et pas comme un espace cartésien pour éviter de présupposer la mesure.




5.5. La mémoire comme espace topologique
La mémoire des processus élémentaires peut être discrète. Par contre, la mémoire des processus à traces ou à flux doit pouvoir mémoriser et se remémorer des valeurs rencontrées dans les traces ou les flux. La mémoire peut être vue comme un environnement interne, ce qui permet la réflexivité.

Les flux d'objets topologiques linéaires discrets peuvent être définis par les relations de voisinage avant BV et de voisinage après AV. Ces relations sont inverses l'une de l'autre.

" x, y x BV y => y AV x

On définit aussi les relations obtenues par clôture transitive B (précède) et A (suit). Ces relations sont inverses l'une de l'autre.

x B y si x BV y ou $ z | x BV z et z B y

x A y si x AV y ou $ z | x A z et z AV y

Un flux est continu si "x, "y x A y ou y A x.

On note C(x) l'ensemble des éléments du flux qui précèdent ou suivent x :

C(x) = { y | x A y U x B y }

On peut définir la contiguïté de deux éléments de traces : x V y si les deux éléments se touchent. Cette relation est réflexive et symétrique. Par clôture transitive, on définit la continuité d'une trace : C(x) = { y | x V y }

Il serait intéressant de définir topologiquement la notion de direction sans faire intervenir la mesure.




5.6. Le temps comme structure algébrique
La question du temps ne se pose pas pour les processus élémentaires sans mémoire, ou à registres, puisqu'ils ne produisent ni ne captent de traces. Ils sont toujours dans le présent. Par contre, l'existence d'une mémoire interne ou externe amène à poser la question du temps. Il ne s'agit au départ ni de la durée, ni du calendrier, mais d'un temps ayant une structure algébrique qui permet de poser que deux événements sont l'un avant l'autre ou qu'ils sont concomitants [Schwer]. Un processus qui n'a pas de cause finale ne peut pas appréhender le futur. Seuls les événements passés peuvent être positionnés les uns par rapport aux autres. Les agents à mémoire sont donc les seuls processus ayant une notion du temps comme passé, présent et futur.



6. L'interaction
La théorie des processus interactifs prend en compte trois entités structurelles : les objets, qui contiennent des fonctions et des données, les processus, qui créent, utilisent et détruisent des objets, et les systèmes, qui peuvent aussi être vus comme des processus. Avec la notion d'objets actifs, les processus peuvent être vus comme de objets, suivant le diagramme de la figure 2.

On appelle acte une action d'un processus P qui est un événement pour au moins un autre processus Q et on la note A(P, {Q1, Q2,…QN}). Par extension, une action de P non captée par un autre processus sera considérée comme un acte vide. Ne rien faire n'est pas un acte vide si un processus attend une réaction d'un processeur, comme dans un dialogue, ou dans un jeu comme les échecs, le go ou le bridge où les temps de réflexion sont interprétés. La notion d'acte est une notion interactionnelle et contextuelle, qui caractérise un système effectif de processus.




6.1. Mise en phase
Pour passer du paradigme de la communication de l'information au paradigme du transfert, il faut observer les phénomènes de « mise en phase » très courants dans la nature et mettre en place des mécanismes qui les simulent dans nos rapports avec les machines. C'est la mise en phase réussie qui signale que la communication a lieu du fait de la résonance que ce fait produit chez les partenaires. La résonance n'est pas observée, elle est ressentie parce qu'on y participe.

Exemples :

- Mécanismes physiques de pendules, de ressorts, de tourbillons

- Applaudir et plus généralement prendre un même rythme (possibilité de chanter en choeur ou de jouer dans un orchestre)

- Rire ou bâiller

- Prendre la même attitude (Ghost Dog et le chien dans le film de Jim Jarmusch)

- Pointer le regard sur un même endroit

On peut observer aussi ce phénomène au niveau logique quand quelqu'un explique un raisonnement à une autre personne qui suit son raisonnement en le reconstruisant mentalement. Il y a une part d'apprentissage dans la capacité de raisonnement et une part de disposition naturelle. Ce n'est pas purement conventionnel comme les règles des institutions sociales.

Comme la mise en phase est d'abord un phénomène physique, il n'y a pas d'objection ontologique à le mettre en place entre humains et machines. On sait réaliser des mises en phases pour des artefacts mécaniques (pendules, ressorts) mais je pense que la question n'a jamais été posée pour des processus informatiques.




6.2. Formes primitives d'interaction
Il y a trois formes primitives d'interaction 6  : la synchronisation d'actes (applaudir, marcher au pas, chanter en choeur), l'action à tour de rôle (jeux de mains, jeu d'échecs, joutes oratoires), l'attention conjointe sur un tiers (pointage, reconnaissance du chef…). On observe des cadences alternées dans de nombreux jeux d'enfants :

- Se lancer une balle et la rattraper

- Se cacher et se chercher

On les trouve dans des jeux comme les échecs, le go et dans les jeux de cartes, ce sont des alternances de plus de deux. La mise en place de cadences alternées précède le dialogue langagier et s'y retrouve :

A : Bonjour,

B : bonjour !7 (ouverture d'un dialogue possible)

Ou

B : bonjour ¡ (refus poli)

A : Au revoir ! (proposition de fermeture)

B : Au revoir ¡ (acceptation de la fermeture)

L'action à tour de rôle est facile à gérer pour les processus artefactuels avec des événements. La synchronisation d'action ne doit pas présupposer un temps partagé puisque c'est la synchronisation d'action qui va permettre son émergence. Il doit y avoir mise en phase des processus. Le pointage dans la même direction ne doit pas présupposer le nommage consensuel, puisque c'est le pointage qui en est la source. L'association d'une verbalisation à une action partagée permet la naissance du langage (cf. Steels et Kaplan). Supposer le langage, ou un langage d'interaction provenant d'une norme, pour l'étude des processus est une hypothèse qui ne permettrait pas de comprendre la constitution du langage à partir d'autres formes d'interaction. Le DHM doit prendre appui sur ces formes d'interaction primitives dont il faut trouver un analogue pour les PII.




7. Conclusion

La théorie des processus est basée sur la topologie pour la mémoire, sur l'algèbre pour le temps, pour la reconnaissance et la manipulation des objets, qui sont typés, sur les fonctions pour le calcul des décisions d'action. Toutes ces notions mathématiques sont réutilisables.

Par contre, ce dont il faut faire la théorie, ce sont les comportements évolutifs des processus dans l'interaction : comment ils construisent des conventions partagées, comment ils évoluent au cours du temps.

Pour faire une théorie des processus, nous avons montré qu'il est souhaitable de ne pas supposer que le temps est partagé, de ne pas supposer que les processus communiquent par un système de signes conventionnel et de ne pas supposer l'existence d'une mesure partagée. Par contre, comme on suppose que les processus ont un système cognitif leur permettant de reconnaître certains objets, il faut supposer qu'il y a des espèces de processus, ayant même système cognitif (par exemple, ils sont créés par la même classe, qui définit leur structure algébrique et leur comportement).

La nouveauté de l'informatique par rapport aux mathématiques pour formaliser les processus, c'est la possibilité de faire exécuter les programmes, et donc de créer des dynamiques formelles, et pas seulement des formules. La condition de cette modélisation dynamique est la réhabilitation de la notion de cause, qui permet de passer d'un modèle descriptif à un modèle causal. L'implantation permettra de vérifier que les causes mises à jour produisent bien un analogue formel des phénomènes étudiés.




8. Références

Aristote, Physique, II, 3.

Cornélius Castoriadis, Francisco Varela, entretien retranscrit dans Dialogue, éditions de l'aube, 1999, pp 59-82.

Boris Cyrulnik, La naissance du sens, Hachette, 1995.

Louis Hjelmslev, Prolégomènes à une théorie du langage, 1966, traduction française 1971, Éditions de Minuit, Paris.

Douglas Hofstadter, Ma Thémagie, Interéditions, Paris, 1988 pour l'édition française.

Anne Nicolle, « Le continu, le discontinu et le discret en informatique », Espace-Temps, Les cahiers, N°82-83 pp. 97,109 Association Espace-Temps, Paris, 2003

Anne Nicolle, « Temps et processus », Journées de Rochebrune Le temps dans les systèmes complexes naturels et artificiels, Megève, France, ENST 2004 S 001, p. 229, 239, 2004

Sylviane R. Schwer, « Formalizing Calendars with the Category of Ordinals, » Applied Intelligence 17, 275-295, 2002, Kluwer Academic Publishers. The Netherlands.

Michael Wooldridge, An Introduction to MultiAgent Systems, 2002 by John Wiley & Sons

[UML] http://www.uml.org/ OMG-Unified Modeling Language, v1.4 2001

[JAVA] http://java.sun.com/




1 Il serait plus classique de parler de processus infinis, mais le terme de durée indéfinie est plus précis puisque tout processus informatique finit par s'arrêter soit par lui même, soit en erreur ou par une action « Quitter » de l'usager, soit parce qu'il est remplacé par un processus plus performant.





2 Un « modèle réduit » peut utiliser la même substance en changeant l'échelle, mais la modélisation qui nous intéresse ici est la modélisation par des descriptions, des dessins, des formules, des composants logiciels.





3 La notion de système de processus sera définie plus loin. Pour l'instant, on parle de système de processus par analogie avec les systèmes multi-agents.





4 Le terme objets est utilisé ici dans son sens informatique et pas pour désigner des objets manufacturés. On pourrait lui préférer le terme « valeurs », mais le terme objet est plus neutre. Un objet a à la fois une identité, un type et des qualités qui font sa valeur pour un processus.





5 Je ne traite pas cette question en détail ici car elle nécessiterait un long développement qui sort du cadre de cet article. Je compte y revenir prochainement à partir des travaux de Hjelmslev et de Hofstadter.





6 Boris Cyrulnik, La naissance du sens, Hachette, 1995.





7 ! note une prosodie montante, ¡ une prosodie descendante.