Globalement il s'agit de construire un modèle d'IA basé sur la théorie des systèmes évolutifs auto programmables et autonomes permettant d’organiser des connaissances procédurales.
L’enjeu principal est de pouvoir auto-administrer les connaissances, réaliser de la veille et de la prospective technologique. De façon sous-jacente, il y a une démarche philosophique forte: contribuer au partage de l’information, et lutter contre les courants de désinformation en "pointant du doigt" les incohérences.
Le but du jeu consiste à pouvoir automatiquement détecter les relations fonctionnelles clés structurant et liant des documents entre eux ; mais aussi pouvoir réaliser des croisements entre des documents.
Au départ, il y avait l'idée de disposer d'une interface graphique pour réaliser un système de représentation des connaissances dans lequel il serait possible de naviguer et de réaliser un maximum de choses à la souris. Car, comment proposer un moyen simples et efficace afin de parcourir une information fortement maillée et permettre une manipulation agréable des concepts ?
Un système a été proposé : élaboré suivant des notions « objet » il permettait de remonter facilement vers des typologies communes, (organiser une progression vers des niveaux d’abstraction plus élevés), et de « switcher » sur des thématiques rattachées.
Le modèle exploratoire qui n’a rien de spécialement inventif et peut-être imagé comme suit:
L’IHM permettant de cliquer sur tous les items et naviguer et de donner la perception du mouvement grâce aux animations. Le stockage des objets déjà parcourus est réalisé dans une pile qui n'apparait pas sur cet exemple.
Pourquoi une représentation « objet » ? En fait, il s’agissait de pouvoir « glisser-déposer » des bulles de connaissances et donc manipuler une ontologie dans son ensemble (attributs et méthodes). Chaque concept étant réduit à un objet manipulable pouvoir réaliser des opérations simples sur ces objets, par exemple : conjonction-sélection de l’information.
Le projet s’est ensuite rapidement étendu à l’analyse d’autres problèmes. Par exemple :
Il s’agissait de « cadrer » tout ce que j’étais susceptible de représenter ; mais plus encore, ce que le système était capable d’analyser de façon automatique. D’un problème de représentation des connaissances je suis passé à un problème d’analyse des connaissances, or les deux sont extrêmement reliés. C’est quelque chose que peu de gens ont à l’esprit (il me semble).
Comment prendre en compte la question de l’apprentissage dans un modèle relationnel classique? Pourquoi un réseau neuronal n'est-il constitué que d'un seul type de relation pondéré et un schéma relationnel "classique" de plusieurs types de relations? Comment passer de l'un à l'autre schéma?
1. La typologie classique des relations permettant de relier des objets entraîne une dichotomie trop importante, (héritage-composition-agrégation-association). Car comment ces relations pourraient-elles évoluer au cours du temps et changer de statut ? Comment passer d’un modèle « relationnel objet » à un modèle dont les relations sont de nature changeante ?
2. Comment tenir compte des contextes de traitement de l’information ? Ou autrement dit, comment faire en sorte que les processus de traitement s’adaptent au cours du temps ?
Pour (1) il s’agissait de trava iller sur la notion de la relation, et finalement se rapprocher d’une vision plus « universaliste », plus proche de celle des réseaux neuronaux (et finalement, peut être plus appauvrie). La relation peut évoluer au cours du temps dans sa nature, allant de la notion de la cohésion forte, (« héritage »), à celle d’une relation simple (« association »). Finalement, il est tout à fait compatible de parler d’une notion de « fonction de transfert » au niveau des noeuds, dont les propriétés sont modifiées par apprentissage et qui peuvent être mises en concordance avec les notions objet :
Pour (2) il s’agissait de multiplier les contextes d’analyse, et d’en proposer un pour chaque type de problématique. Typiquement, le mot « voiture » peut s’étudier dans différents contextes : son sens « sémantique », en tant que « nom commun », que « mot », etc. Dans chacun des cas, l’analyse est conduite par les contextes à laque lle l’information est rattachée et cela doit représenter autant de niveaux d’analyse avec leurs méthodologies propres. Par moment, je désigne ces contextes lorsqu’ils sont stables et identifiés dans le temps comme des ontologies. Pourtant, par rapport à une vision « classique » ces ontologies ne sont pas « figées » communiquent avec leur environnement et se modifient réflexivement. C’est pourquoi je parle souvent d’autopoïèses.
Voici un schéma que j’ai réalisé il y a quelque temps pour représenter l’organisation globale du système :
Cette vision est en réalité naïve à bien des égards :
Comment construire les mécanismes d’apprentissage des connaissances ? Il y a en effet une marge entre l’adaptation nécessitée par les mécanismes du vivants, qui doivent prendre en compte leur propre contraintes physiques/de développement, et l’adaptation/la réponse optimale qu’il doit être possible de fournir avec un système logique.
Chacun des sous-systèmes formant un réseau de connaissances, génère une réponse à un stimulus fournit par le flux d’informations en provenance de l’extérieur ; ils effectuent également des changements sur les flux qui les traverse. Potentiellement, leur réponse peutêtre donnée :
Dans tous les cas, il est nécessaire de faire en sorte qu’il y ait une adaptation continue, dans la mesure ou la nature de l’information externe est elle-même mouvante.
Il y a là (et à mon sens) un problème posé par certains systèmes complexes tels qu’ils sont modélisés aujourd’hui : il existe une séparation trop nette entre les procédures de traitement (coordination, régulation, finalisation) et les données elles-mêmes. (par ex, JL Lemoigne et la théorie du système général en 9 niveaux de complexité).
Tel que je propose de le réaliser, les éléments du système doivent être non seulement porteurs de l’information, mais également du moyen de traiter ladite information. Ce parti pris m’a semblé nécessaire, car il fallait être capable de reconfigurer en permanence la structure du réseau, sans que cela provoque une paralysie totale de l’activité. Finalement, c’est comme si l’on proposait de réaliser un système dont les briques ne seraient composées que d’ADN et non pas des ressources nécessaires pour traiter cet ADN ; ou de neurones muni des seul potentiels, sans les mécanismes de transfert de l’information (la « fonction de transfert », peut-être vue comme un opérateur).
Ainsi, l’information même la plus élémentaire doit être considéré comme un processus, c'est-à-dire une unité active, et ce afin de donner une plus grande résilience à l’ensemble.
Un autre intérêt de cette approche consiste à pouvoir faire en sorte que les opérateurs réalisent des opérations réflexives sur eux-mêmes. C'est-à-dire qu’ils soient capables de modifier dynamiquement les règles d’analyse dont ils sont les briques, et le système de représentation.
Il s’agit bien de « meta-programmation ».
Ma réflexion est ouverte sur ce point. L’expérience devrait permettre d’ajuster et trouver les actions qui permettent de résoudre la plupart des situations.
J’ai trouvé un document assez représentatif sur le type d’actions que cela pourrait être, (possiblement plus simples), et dans un framework de type « objet ». [Ken Barker], [Bruce Porter] et [Peter Clark]: « A Library of Generic Concepts for Composing Knowledge Bases »
Les axiomes de traitement découle nt de l’usage de ces actions et peuvent être enchaînées ; je reviendrais dessus plus loin.
Il me faut du temps pour coder ou déléguer les méthodes algorithmiques. A l’heure actuelle, j’ignore si le système fonctionnera. Il y aura donc un grand nombre d’ajustements à réaliser sur les hypothèses de travail. C’est une approche exploratoire.
Il semble prévisible qu’il y aura un souci majeur concernant le problème de l’optimisation des temps de calcul. Au vu de la quantité de données à traiter, il y a là un aspect qualitatif essentiel à résoudre. Dans le cas contraire, la quantité d’information capable d’être traitée par le système restera limitée (et bien que le système puisse être conçu pour supporter une architecture répartie). Une solution peut-être d’utiliser des logiques non-classiques capables de conjuguer avec des résultats autres que booléens, voire des « non-résultats » pour calculer les réponses de ces systèmes.
La simulation-test que je propose de réaliser consiste en une simple analyse syntaxique de texte et de faire en sorte que le système soit capable de mémoriser l’ensemble des constructions verbales. Le programme doit être codé dans le réseau de connaissances comme proposé précédemment, et les connaissances découvertes prises en charge par d’autres agents dans le réseau cognitif.
Ce n’est pas la tâche la plus complexe à réaliser, et ce dans la mesure, où je n’impose pas de contraintes sur la méthode d’analyse, que celle-ci est implémentée à priori dans le réseau. L’étape suivante consiste à ce que le réseau confirme ou infirme les hypothèses réalisées sur les connaissances et en fonction de techniques d’apprentissage classiques. Puis, la dernière étape, d’observer comment le système peut adapter son propre programme d’analyse pour améliorer le traitement de ces connaissances, et ainsi remonter aux logiques génératrices de « sens commun ». Comment opérer l’amorçage des opérateurs générateurs de « sens commun ». Il n’y a probablement pas une unique solution permettant d’arriver au résultat, comme dans tout les systèmes complexe.
Il semble important que ce système puisse s’adapter aux bases de connaissances existantes sans effort d’intégratio n conséquent. C'est-à-dire qu’il offre la possibilité de réaliser des connecteurs compatibles avec des technologies actuelles telles qu’UML, XML ou encore les BD relationnelles (bien sûr des restrictions s’imposeront en sortie du système Meta).
Ceci étant, il y a une négociation à faire au niveau de l’information contenue au niveau des éléments constitutifs du réseau que ce sont les noeuds. Aujourd’hui, je considère que la connaissance est stockée en tant qu’entité par un simple noeud du réseau. Cette information peut éventuellement être étiqueté par une chaîne de caractères (identifiant syntaxique simple), mais ce n’est pas forcément nécessaire.
Et, un ensemble complexe d’information, un holisme/concept, peut-être représenté par un unique noeud si nécessaire ; il « suffit » de conserver le contexte auquel il est relié.
L’approche EM et l’approche systémique sont tout à fait complémentaires. Il est possible de voir l'ethnométhodologie comme une théorie unitaire capable de résoudre les problèmes de représentations en théorie du chaos et de la complexité. Ainsi, lorsqu’on fait de l’ETM on s’intéresse aux mécanismes de la systémique, et vice-versa. Comme les deux interdisciplines ont progressé chacune de leur côté, j’ai été très intrigué de découvrir les apports de l’ETM à mon projet. Par exemple :
technologique,
Cette approche me permet de réinterpréter certains aspects, de faire naître des réflexions. Il était intéressant de se référer aux axiomes de l’ETM pour cette étude et de voir les liens avec la systémique. Par exemple:
Je ne fais pas le tour des axiomes de l’EM. Les relations que je propose sont ici approximatives. Il me semble que l’on peut faire une distinction entre des axiomes dont les propriétés sont implicites, (comme ceux précédemment évoqués) et ceux qui nécessitent d’être mis en oeuvre, comme l’indifférence, la conservation, l’évolution (par exemple). Concernant ces axiomes, j’ai du mal à réaliser comment ils pourraient être acquis autrement que par expérience.
Du KM, je me focalise en réalité sur des aspects très particuliers qui sont ceux du stockage et du traitement de l’information.
En essayant de faire le tour des différents systèmes de représentation et de traitement des connaissances, ce qui m’a le plus surpris c’est la diversité et l’hétérogénéïté des méthodes et des moyens mis en oeuvre. Que ce soit du plus bas niveau (algorithmique) au plus haut, (celui de la conception de modèles « universelles » ou de la R&D).
Une orientation du projet Meta-Connexions est de tenter de négocier avec les différents acquis pris dans différents domaines, essayer de réaliser des compromis compatibles, et quand ce n’est pas possible, réaliser pourquoi certains choix « analytiques » doivent être écartés.