# Intégration de systèmes d'intelligence artificielle

L'intégration de systèmes d'intelligence artificielle est le processus qui vise à rendre interopérables des composant logiciels individuels, tels que des synthétiseurs vocaux, et d'autres composants, tels que des bases de savoir du sens commun, afin de constituer des systèmes I.A. plus grands, plus étendus et plus performants. Les principales méthodes proposées pour l'intégration incluent le routage des messages ou l'emploi de protocoles de communication que les composants logiciels utilisent pour s'échanger des informations, souvent via un middleware système tableau d'affichage.
La plupart des systèmes d'intelligence artificielle impliquent une sorte de technologies intégrées, par exemple, l'intégration des technologies de synthèse vocale avec celles de reconnaissance vocale. Cependant, ces dernières années, la discussion sur l'importance de l'intégration de système en tant que domaine à part entière s'accroît. Les partisans de cette approche sont des chercheurs tels que Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thórisson et Michael Arbib. Une raison de l'attention récente que l'intégration de l'I.A. suscite est qu'un certain nombre de systèmes d'I.A. (relativement) simples pour des domaines problématiques spécifiques sont déjà créés, tels que vision par ordinateur, synthèse vocale, etc., et que l'intégration de ce qui est déjà disponible est une approche plus logique pour une I.A. plus étendue que la construction de systèmes monolithiques à partir de zéro.

## Focus sur l'intégration

Le focus sur l'intégration de système, notamment en ce qui concerne les approches modulaires, découle du fait que la plupart des intelligences de grande envergure se composent d'une multitude de processus et/ou utilisent des entrées et sorties multimodales. Par exemple, une intelligence de type humanoïde doit de préférence être capable de parler grâce à la synthèse vocale, d'entendre grâce à la reconnaissance vocale, de comprendre grâce à un mécanisme logique (ou autre mécanisme non défini), etc. Afin de produire des logiciels d'intelligence artificielle d'une intelligence plus étendue, l'intégration de ces modalités est nécessaire.

## Défis et solutions

La collaboration est une partie intégrante du développement logiciel comme en témoigne la taille des entreprises de logiciels et celle de leurs départements logiciels. Parmi les outils facilitant la collaboration en développement logiciel figurent diverses procédures et normes que les développeurs suivent pour garantir la qualité, la fiabilité et la compatibilité de leurs logiciels avec ceux créés par d'autres, telles que les normes W3C pour le développement de pages web. Cependant, la collaboration dans les domaines de l'I.A. fait défaut, et l'on ne la voit pour la plupart qu'au sein des écoles, départements ou instituts de recherche réputés (et parfois pas même au sein d'eux). Cela présente aux praticiens de l'intégration de système d'I.A. un problème considérable et conduit souvent les chercheurs en I.A. à devoir « réinventer la roue » chaque fois qu'ils veulent qu'une fonctionnalité spécifique fonctionne avec leur logiciel. Ce qui est encore plus dommageable, c'est le syndrome du « not invented here », qui se manifeste par une forte réticence des chercheurs en I.A. à s'appuyer sur le travail des autres.
Le résultat de ceci est un grand ensemble « d'îles de solutions » : la recherche en I.A. produit de nombreux composants logiciels isolés et mécanismes qui traitent séparément diverses parties de l'intelligence. Pour donner quelques exemples :
* Synthèse vocale
** FreeTTS de CMU
* Reconnaissance vocale
** Sphinx de CMU
* Raisonnement logique
** OpenCyc de Cycorp
** Open Mind Common Sense Net du MIT
Avec la popularité croissante du mouvement du logiciel libre, une grande partie des logiciels créés, y compris les systèmes d'I.A., est disponible pour exploitation publique. La prochaine étape naturelle consiste à fusionner ces composants logiciels individuels en systèmes intelligents cohérents et de nature plus étendue. Comme une multitude de composants (qui servent souvent le même objectif) sont déjà créés par la communauté, la manière la plus accessible d'intégrer est de donner à chacun de ces composants un moyen facile de communiquer entre eux. Ce faisant, chaque composant devient à lui seul un module, qui peut ensuite être testé dans divers contextes et configurations de grandes architectures. Certaines difficultés et limitations de l'utilisation des logiciels d'I.A. résident dans les erreurs fatales incontrôlées. Par exemple, des erreurs graves et fatales se produisent dans des domaines très précis tels que l'oncologie humaine, comme dans un article publié dans la revue Oral Oncology Reports intitulé « When AI goes wrong: Fatal errors in oncological research reviewing assistance ». L'article signale une erreur grave dans l'intelligence artificielle basée sur GBT dans le domaine de la biophysique.
De nombreuses communautés en ligne pour les développeurs d'I.A. existent, où des tutoriels, exemples et forums visent à aider à la fois les débutants et les experts à construire des systèmes intelligents. Cependant, peu de communautés parviennent à établir une norme, ou un code de conduite populaire, permettant l'intégration aisée d'une vaste collection de systèmes divers.

## Méthodologies
### Méthodologie de conception constructiviste

La méthodologie de conception constructiviste (MCC, ou « I.A. constructiviste ») est une méthodologie formelle proposée en 2004, utilisée dans le développement de la robotique cognitive, des humanoïdes communicants et des systèmes d'I.A. étendus. La création de tels systèmes nécessite l'intégration d'un grand nombre de fonctionnalités qui doivent être soigneusement coordonnées pour obtenir un comportement de système cohérent. La MCC se fonde sur des étapes de conception itératives conduisant à la création d'un réseau de modules nommés interagissant, communiquant via des flux explicitement typés et des messages discrets. Le protocole de message OpenAIR (voir ci-dessous) s'inspire de la MCC et est fréquemment utilisé pour aider au développement de systèmes intelligents utilisant la MCC.

## Exemples

* ASIMO, le robot humanoïde de Honda, et QRIO, la version humanoïde de Sony.
* Cog, le projet de robot humanoïde du MIT sous la direction de Rodney Brooks.
* AIBO, le chien robot de Sony, intègre la vision, l'audition et les compétences motrices.
* TOPIO, le robot humanoïde de TOSY, peut jouer au ping-pong avec des humains.