Anne Nicolle pour STP
GREYC-ISLanD UMR CNRS 6072 & Pôle Modescos de la MRSH
Université de Caen -- CNRS
14032 Caen Cedex
|
Que n'ai-je un pinceau
Qui puisse peindre les fleurs du prunier Avec leur parfum (Shoha) |
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.
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,
|
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 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.
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.
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.
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.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.
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.
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).
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.
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.
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.
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.
- 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.
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.
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/