Pierre-Yves Aimon
Laurent Fallet
Laurent Morretton
Yvon Benoist
Version : 2.3.fr.1.0
| Historique des versions | ||
|---|---|---|
| Version 2.3.fr.1.0 | 2006-10-01 | LF |
| Mise à jour de la traduction française | ||
| Version 1.9.fr.1.0 | 2004-01-15 | LM, LF, PYM |
| Première traduction française | ||
| Version originale | 2006-08-21 | JE |
| Version 2.3. Consulter la section "Quoi de neuf" pour les révisions antérieures. | ||
Résumé
Ce guide contient principalement des informations et des liens relatifs à diverses applications, bibliothèques, etc. sur l'IA qui fonctionnent sur la plate-forme GNU/Linux. Tout ceci est libre dans le cadre d'un usage personnel (ou davantage). La page la plus à jour de ce document se trouve à l'adresse http://zhar.net/gnu-linux/howto/
Table des matières
Le système d'exploitation GNU/Linux a évolué depuis ses origines de système pirate jusqu'à devenir un système UNIX complet, capable de rivaliser avec n'importe quel UNIX commercial. Il est maintenant une base peu onéreuse pour la construction de bonnes stations de travail. Il s'est libéré de ses problèmes de compatibilité matérielle en ayant été porté sur des stations DEC Alpha, Sparcs, Power PC et bien d'autres. Son potentiel de croissance rapide ainsi que son support réseau le rend idéal pour le partage du temps de travail entre plusieurs ordinateurs. En tant que station de travail, il permet toutes sortes de recherches et de développements, y compris les travaux sur l'intelligence artificielle et la vie artificielle.
Le but de ce HOW-TO est de fournir une base permettant de trouver différents logiciels, bibliothèques de code, et tout ce qui peut aider à démarrer (et trouver les ressources) dans le monde de l'intelligence artificielle, de la vie artificielle, etc. Tout cela dans l'optique GNU/Linux.
v2.4 (en développement) — Nouvelles entrées : Eprover, Player et Robodeb. J'ai divisé la section Agents en deux sous-sections, à savoir Agents Logiciels et Simulateurs et Robotique. Je crains d'être allé un peu vite quand à la répartition, mais c'est une amélioration. MIA trouvé! Cellular, le système d'automate programmable cellulaire.
v2.3 — Nouvelles entrées : Yamp, pygene, Push, ANNEvolve, dgpf, Golly, IBAL, 3APL, OSCAR, and RobocodeNG. Mise à jour des entrées Yale, Joone, Drone, Biome, ECLiPSe, Xtoys, GECO, Creatures Docking Station et d'autres. J'ai également renommé la section MIA en Manquants et Inactifs qui regroupe maintenant les liens morts ou erronés pour lesquels je ne trouve de remplacement et les projets qui ne sont plus actifs.
v2.2 — Quelques liens cassés ont été réparés et quelques nouvelles entrées ont du être déplacées dans la section MIA (manquante). J'ai également supprimé une entrée dupliquée. Nouvelles entrées : MASON, spyse, AntWars, OpenSteer, Pyro, Robocode, Trend and Open BEAGLE.
v2.1 — Nouvelles entrées : NLTK, NEURObjects, KANREN, Neural Networks at your Fingertips, SimWorld, SimAgent, Fuzzy sets for Ada, maxent, Evo, breve and AJA
v2.0 — Un vérificateur de liens m'a permis de supprimer les liens erronés ou de les remplacer. Voir la liste des entrées supprimées dans la section MIA (me contacter si vous connaissez le nouveau lien). Nouvelles entrées : Yale, DIET Agents, JASA, Jason, Noble Ape, Maude, ECLiPSe, lush, and pygp
v1.9 — Ajout d'une nouvelle entrée (Bond) et réparation du lien donné plus bas, qui pointe vers la liste dynamique.
v1.8 — Nettoyage de liens erronés, recherche de nouveaux liens lorsque cela était possible et suppression de ceux qui semblent avoir disparus. Quelques nouvelles entrées ajoutées également : Torch, Aleph, AI Kernel, OpenCyc, HTK, FFLL, JCK, Joone, scnANNlib, GAUL, Cougaar, and RoboTournament
v1.7 — 9 autres nouvelles entrées ajoutées, une série de liens réparés, quelques éléments enlevés qui ont disparus du net. Nouvelles entrées : SPASS, CNNs, JCASim, Genetic, CAGE, AgentFarms, MATREM, OAA, et UTCS Neural Nets Research Group Software
v1.6 — Ajout de 9 nouvelles entrées, deux liens réparés et un élément redondant enlevé.
v1.5 — 26 nouvelles entrées, ainsi que deux ou trois réparations de liens.
v1.4 — 10 mises à jour effectuées et réparation de liens en rapport avec LISP.
v1.3 — Pour rattraper le retard, j'ai ajouté plus de 30 nouvelles entrées aujourd'hui et je l'ai soumis au LDP.
Pas d'enregistrements sur les versions précédentes :(
Tous les programmes devraient être disponibles sur Internet (ftp ou http). Les liens vers ces ressources sont fournis dans la description de chaque logiciel. Il y a également une pléthore de logiciels non traités dans ces pages (qui sont généralement indépendants de la plate-forme), situés sur une des ressources listées dans la section lien du site principal (donné plus haut).
Si vous trouvez des erreurs, que vous êtes au courant des mises à jour de l'un des outils décrit plus loin, ou que vous rencontrez des problèmes pour compiler l'une des applications, écrivez-moi à jae@zhar.net et je verrai ce que je peux faire.
Si vous connaissez des applications sur l'IA/VA, des bibliothèques de classe, etc, envoyez-moi un email au sujet de celles-ci. Mentionnez votre nom, l'adresse ftp ou http où l'on peut trouver ces applications, ainsi qu'un bref résumé/commentaire sur le logiciel (ces informations devraient me rendre les choses beaucoup plus faciles... mais ne vous sentez pas obligés de le faire ;) ).
Je sais que garder cette liste à jour et l'augmenter demande pas mal de travail. Alors s'il vous plait, soyez patient (j'ai aussi d'autres projets en cours). J'espère que vous trouverez ce document utile.
Copyright (c) 1996-2006 John A. Eikenberry
LICENCE
Ce document peut être reproduit et distribué entièrement ou en partie, sur n'importe quel média, qu'il soit physique ou électronique, à condition que cette licence apparaisse sur la reproduction. La redistribution commerciale est autorisée et encouragée. Un préavis de 30 jours, par courriel à l'auteur, de la redistribution serait appréciée, afin de donner à l'auteur le temps de fournir des documents à jour.
A. CONDITIONS REQUISES POUR LES MODIFICATIONS
Tout document modifié, y compris les traductions, anthologies, ou documents partiels, doit se conformer aux conditions suivantes :
Ces versions doivent être identifiées comme étant des versions modifiées
Le nom de la personne réalisant ces modifications doit être indiqué.
Il est nécessaire de mentionner le nom de l'auteur original.
L'emplacement du document original non modifié doit être indiqué.
Le ou les noms des auteurs ne doivent pas êtres utilisés pour revendiquer ou impliquer leur approbation du document qui résulte de ces modifications sans l'accord de l'auteur original.
De plus, il est recommandé (mais pas obligatoire) de respecter ces consignes :
Les modifications, y compris les suppressions, doivent êtres signalées.
L'auteur doit être prévenu de toute modification avant la redistribution par courriel, si une adresse électronique est fournie dans le document.
Une exception cependant : les anthologies de documents LDP peuvent n'inclure qu'une copie des termes de cette licence de manière visible, à l'intérieur du recueil, et peut remplacer les autres copies de cette licence par une référence à la seule copie de la licence, sans considérer le document comme "modifié" pour le besoin de cette section.
Le simple regroupement de documents LDP avec d'autres documents ou programmes sur le même médium ne doit pas impliquer que la licence porte également sur ces autres travaux.
Toute traduction, document dérivé, ou document modifié qui incorporerait ce document n'est pas soumis à des termes de licence plus restrictifs que ceux là, à l'exception du fait que vous pouvez demander aux distributeurs de mettre à disposition le document en question sous le format source.
L'IA traditionnelle se fonde sur tout ce qui tourne autour de la logique, des systèmes de règles, de la linguistique, et du concept de rationalité. Ses racines sont les langages de programmation comme Lisp et Prolog. Les systèmes experts sont les plus grands exemples de réussite de ce paradigme. Un système expert consiste en une base de connaissances détaillée et un système complexe de règles pour l'utiliser. De tels systèmes ont été utilisés comme support de diagnostiques médicaux et systèmes de vérification de solvabilité.
Ce sont des bibliothèques de classes ou code à utiliser lorsque vous programmez dans le domaine de l'intelligence artificielle. Elles ne sont pas destinées à devenir des applications à part entière, mais plutôt comme des outils afin de créer vos propres applications.
Site web : www.cliki.net/ACL2
ACL2 (A Computational Logic for Applicative Common Lisp) permet de démonter les théorèmes pour des applications industrielles. C'est à la fois de la logique mathématique et un système d'outils pour construire des preuves dans la logique. ACL2 marche avec GCL (GNU Common Lisp).
Site Web : aikernel.sourceforge.net
Site Web Sourceforge : sourceforge.net/projects/aikernel
AI Kernel (noyau d'IA) est un moteur d'intelligence artificielle réutilisable qui utilise le traitement du langage naturel et un modèle Activateur/Contexte afin de permettre le multi-tâche entre les cellules installées.
Site Web : www.bell-labs.com/topic/books/ooai-book/
En gros, cette bibliothèque offre au programmeur une série d'algorithmes de recherche qui peuvent être utilisés pour résoudre toutes sortes de problèmes différents. L'idée est que lorsqu'il développe un logiciel de résolution de problème, le programmeur devrait pouvoir se concentrer sur la représentation du problème à résoudre, sans avoir à se soucier de l'implémentation du moteur de recherche qui serait précisément utilisé pour mener la recherche. Cette idée a été appliquée grâce à l'implémentation d'une série de classes de recherche qui peuvent être incorporées dans d'autres logiciels à travers des spécifications de dérivation ou d'héritage du C++. Les algorithmes de recherche suivants ont été mis en œuvre :
Recherche en profondeur (deep-first) dans un arbre ou un graphe.
Recherche horizontale (breadth-first) dans un arbre ou un graphe.
Recherche par coûts uniformes dans un arbre ou un graphe.
Recherche du meilleur en priorité (best-first).
Recherche bidirectionnelle en profondeur (bidirectional depth-first) dans un arbre ou un graphe.
Recherche bidirectionnelle horizontale (bidirectional breadth-first) dans un arbre ou un graphe.
Recherche ET/OU en profondeur dans un arbre.
Recherche ET/OU horizontale dans un arbre.
Il existe un livre qui correspond à cette bibliothèque, "Object-Oriented Artificial Instelligence, Using C++".
Ce document fournit des informations de référence sur "A Learning Engine for Proposing Hypotheses" (Aleph : un moteur d'apprentissage pour proposer des hypothèses). Aleph est système de programmation par logique inductive (Inductive Logic Programming, ILP). La fonction d'Aleph est celle de prototype pour explorer des idées. Aleph est un algorithme ILP mis en œuvre en Prolog par le Dr Ashwin Srinivasav au laboratoire informatique de l'université d'Oxford, et a été écrit spécifiquement pour la compilation avec le compilateur Prolog YAP.
Site Web : *fait partie de l'archive CLOCC clocc.sourceforge.net
La fondation CIL (les échecs en Lisp) est une implémentation "Common Lisp" de toutes les fonctions principales nécessaires au développement d'applications sur les jeux d'échecs. Le but principal du projet CIL est d'amener les chercheurs en IA intéressés par l'emploi de Lisp à travailler sur le domaine des échecs.
Site Web : starship.python.net/crew/gandalf/DNET/AI/
C'est une bibliothèque pour le langage de programmation Python qui fournit une interface orientée objet à l'outil système expert CLIPS. Il inclut une interface pour COOL (CLIPS Object Oriented Langage : Langage orienté objet CLIPS) qui permet de :
Examiner, étudier les classes COOL
Créer et manipuler des instances COOL
Manipuler les gestionnaires de messages COOL
Manipuler les modules
Site Web : ffll.sourceforge.net
La bibliothèque gratuite de logique floue (FFLL : Free Fuzzy Logic Library) est une bibliothèque de classe et une API libres de logique floue qui est optimisée pour des applications dont la rapidité est importante, comme les jeux vidéos. FFLL est capable de charger des fichiers conformes au standard IEC 61131-7.
Site Web : http://www.dmitry-kazakov.de/ada/fuzzy.htm
Freshmeat : http://freshmeat.net/projects/fuzzy/
Les ensembles flous pour Ada (Fuzzy sets for Ada) est une librairie fournissant des implémentations de facteurs de confiance pour les opérateurs NOT, AND, OR, XOR, + et *, les ensembles flous classiques avec les opérations sur la théorie des ensembles, les opérations sur la théorie des possibles, les opérations sur les ensembles intuitifs, la logique floue basée sur la théorie des possibles et les ensembles flous intuitifs ; les nombres flous, à la fois entier et à virgule flottante avec leurs opérations arithmétiques classiques, les variables linguistiques et les ensembles de variables linguistiques avec les opérations les concernant. Les entrées/sorties à base de chaînes de caractères sont supportées.
Site Web : htk.eng.cam.ac.uk
La boîte à outils du modèle de Markov masqué (HTK : Hidden Markov Model ToolKit) est une boîte à outils portable pour créer et manipuler des modèles de Markov masqué. HTK consiste en une série de modules de bibliothèques et d'outils disponibles sous la forme de sources en C. Ces outils founissent des solutions sophistiquées pour l'analyse vocale, la formation HMM, les tests et l'analyse de résultats. L'application supporte les HMM en utilisant à la fois les fonctions gaussiennes sur les mélanges à densité constante et les distributions discrètes et peut être utilisée pour créer des systèmes HMM complexes. Le logiciel HTK contient une grande quantité d'informations et d'exemples.
JCK est une nouvelle bibliothèque pour la programmation et la recherche par contraintes pour Java.
JCK est constitué de trois composants :
- JCHR : Java Constraint Handling Rules (règles de manipulation de contraintes Java). Langage de haut niveau pour écrire des résolveurs de contraintes.
- JASE : Java Abstract Search Engine (moteur de recherche abstrait Java). Moteur de recherche générique pour JCHR afin de résoudre les problèmes de contraintes.
- VisualCHR : outil interactif pour visualiser les calculs JCHR.
Les sources et la documentation sont disponibles à partir du lien ci-dessus.
Site Web : http://kanren.sourceforge.net
KANREN est un système de programmation par logique déclarative avec des relations de premier ordre, inclus dans un sous-ensemble fonctionnel pur de Scheme. Le système est constitué de sémantiques de la théorie des ensembles, de relations vraies, de relations de premier ordre, de variables logiques à portée lexicale, de stratégies en profondeur (deep-first) et itératif en profondeur (iterative deepening). Le système atteint de hautes expressivités et performances sans élimination.
Site Web : www.cs.utoronto.ca/~neto/research/lk/
LK est une implémentation de l'heuristique de Lin-Kernighan pour le problème du commercial démarcheur et pour le problème de la correspondance parfaite de pondération minimum. Il est spécialement adapté aux figures géométriques en 2D, et a été appliqué dans certains exemples jusqu'à un million de villes. Il comprend aussi des générateurs d'exemples et des scripts Perl pour manipuler les exemples TSPLIB.
Cette implémentation introduit la "compensation groupée efficace", une technique algorithmique expérimentale dont le but est de rendre l'heuristique de Lin-Kernighan plus robuste dans le cas de données groupées.
Version Python / C++ : homepages.inf.ed.ac.uk/s0450736/maxent_toolkit.html
Version Java : maxent.sourceforge.net
La boîte à outils entropie maximum fournit un ensemble d'outils et une librairie pour construire des modèles d'entropie maximum (maxent) en Python ou C++. Il contient des modèles d'entropie maximum conditionnels, une estimation des paramètres GIS et L-BFGS, un lissage Gaussien, une API C++, un module d'extension Python, un utilitaire en ligne de commande et une bonne documentation. Une version Java est également disponible.
Site Web : www-2.cs.cmu.edu/~music/nyquist/
Le projet de musique informatisée (Computer Music Project) au CMU développe la technologie de la musique informatisée, et de la performance interactive pour améliorer l'expérience et la créativité musicale de l'homme. Cet effort interdisciplinaire puise dans la théorie de la musique, dans les sciences cognitives, l'intelligence artificielle, l'apprentissage des machines, l'interaction homme-machine, les systèmes temps réelles, les graphismes et animations informatiques, le multimédia, les langages de programmation, le traitement du signal. Un exemple paradigmatique de ces efforts interdisciplinaires est la création de la performance interactive qui lie l'improvisation musicale de l'homme aux agents informatiques intelligents en temps réel.
Site Web : www.opencyc.org
Site Web alternatif : sourceforge.net/projects/opencyc/
OpenCyc est la version libre de Cyc, la plus grande et la plus complète des bases de connaissance générale ainsi que le plus grand moteur de raisonnement de sens communs. Une ontologie basée sur 6000 concepts en relation avec 60000 affirmations.
Site FTP : ftp://ftp.csh.rit.edu/pub/members/retrev/
C'est un simple module python pour la logique floue. Le fichier est 'fuz.tar.gz' dans ce répertoire. L'auteur ambitionne également d'écrire un algorithme de génétique simple de même qu'une bibliothèque sur les réseaux neuronaux. Regarder le fichier '00_index' dans ce répertoire pour obtenir des informations sur la version.
Site Web : www.cis.upenn.edu/~screamer-tools/home.html
La version la plus récente fait partie de CLOCC : clocc.sourceforge.net
Screamer est une extension de Common Lisp qui ajoute un support pour la programmation non déterministe. Screamer comprend deux niveaux. Le niveau non déterministe basique ajoute un support pour la journalisation et les effets de coté irréalisables. En plus de cet aspect non deterministe, Screamer fournit un langage complet de programmation sous contraintes dans lequel on peut formuler et résoudre un mélange de systèmes sous contraintes numériques ou symboliques. Ensembles, ces deux niveaux étendent Common Lisp avec pratiquement toutes les fonctionnalités de Prolog et des languages de programmation logiques sous contraintes comme CHiP ou CLP(R). En outre, Screamer est complètement compatible avec Common Lisp. Les programmes de Screamer peuvent coexister et interopérer avec d'autres extensions de Common Lisp comme CLOS, CLIM et Iterate.
Site Web : spass.mpi-sb.mpg.de
SPASS : Démontreur de théorèmes automatisé pour des logiques de premier ordre avec égalité.
Si vous êtes intéressés par les démonstrations de théorèmes de logique du premier ordre, l'analyse formelle de programmes, systèmes, protocoles, les approches formelles de projets sur l'IA, les procédures de décisions, la démonstration de théorèmes à logique modale, SPASS peut vous offrir les bonnes fonctionnalités.
Site Web : www.signiform.com/tt/htm/tt.htm
ThoughtTreasure est un projet pour créer une base de données de règles de sens communs à utiliser dans n'importe quelle application. Il consiste en une base de donnnées d'un peu plus de 100 000 règles et d'une API C pour l'intégrer dans vos applications. Les emballeurs Python, Perl, Java et TCL sont déjà disponibles.
Site Web : www.torch.ch
Torch est une bibliothèque d'apprentissage écrit en C++. Son but est de fournir l'état de l'art des meilleurs algorithmes. Il est, et sera toujours en développement.
Plusieurs méthodes basées sur les gradients, y compris des perceptions de niveau multiple, fonctions sur des bases radiales et un mélange de compétences. Plusieurs petits modules (modules linéaires, modules Tanh, modules SoftMax, ...) peuvent être reliés ensembles.
Machine de vecteur de support, pour la classification et la regression.
Distributions logicielles, comprenant Kmeans, des modèles de mélanges Gaussiens, des modèles de Markov Masqués, des classificateurs de Baye, et des classes pour la reconnaissance vocale avec entrainement incorporé.
Modèles ensemblistes tels que Bagging et Adaboost.
Modèles non paramétriques comme les k plus proches voisins, la regression de Parzen et l'estimateur de densité de Parzen.
Torch est une bibliothèque libre dont les auteurs encouragent tout le monde à développer de nouveaux logiciels qui seront inclus dans les versions futures sur le site officiel.
Voici plusieurs applications, kits logiciels, etc. ayant pour but la recherche dans le domaine de l'intelligence artificielle. Leur facilité d'utilisation peut varier, dans la mesure où ils ont été conçus pour satisfaire des intérêts de recherche particuliers, plus que comme un logiciel commercial sorti de l'étagère.
Site web : www.ingber.com/#ASA-CODE
Site FTP : ftp.ingber.com
ASA (Adaptive Simulated Annealing : Recuit simulé adaptatif) est un puissant algorithme en code C d'optimisation globale particulièrement pratique pour les systèmes non linéaires et/ou stochastiques.
ASA est développé pour trouver statistiquement le meilleur ajustement global d'une fonction coût non linéaire et non convexe sur un espace de dimension D. Cet algorithme permet un schéma de refroidissement du recuit pour une température T exponentiellement décroissante dans le temps recuit k, T=T_0 exp(-c k^1/D). L'introduction du renouvellement de recuit permet également une adaptation aux changements de sensibilités dans un espace paramétrique multi-dimensionnel. Cet schéma de refroidissement de recuit est plus rapide que le recuit de Cauchy rapide, où T = T_0/k, et encore plus rapide que le recuit de Boltzmann, où T = T_0/ln k.
Site FTP : ftp.gmd.de/gmd/ai-research/Software/Babylon/
BABYLON est un environnement modulaire, configurable et hybride pour le développement de systèmes experts. Ses caractéristiques comprennent les objets, les règles avec chaînage avant et arrière, la logique (Prolog) et les contraintes. BABYLON est codé et incorporé en Common Lisp.
Site web : www.iu.hio.no/cfengine/
Cfengine, ou "moteur de configuration" est un langage de très haut niveau pour la construction de systèmes experts qui administrent et configurent de grands réseaux informatiques. Cfengine utilise l'idée de classes et une forme primitive d'intelligence pour définir et automatiser la configuration de grands systèmes de façon la plus économique possible. Cfengine est conçu pour être une part des systèmes immunisés informatiques.
Site web : ????? (Quelqu'un sait-il encore où trouver le site ?)
Le système CLEARS est un environnement graphique interactif pour les sémantiques de calcul. L'outil permet l'exploration et la comparaison de différents formalismes sémantiques ainsi que de leur interaction avec la syntaxe. Cela permet à l'utilisateur d'obtenir une idée de l'étendue des possibilités en matière de construction sémantique, ainsi qu'où se trouve la convergence réelle entre les théories.
Site web : www.ghg.net/clips/CLIPS.html
CLIPS est un outil productif de système expert de développement et de livraison qui fournit un environnement complet pour la construction de systèmes experts basés sur des règles ou des objets.
CLIPS fournit un outil cohésif pour la gestion d'une grande variété de connaissances compatible avec trois différents paradigmes de programmation : basé règles, orienté objet et procédural. La programmation basée sur les règles permet de représenter les connaissances comme des heuristiques, ou règles empiriques, qui spécifient une série d'actions à entreprendre pour une situation donnée. La programmation orientée objet permet à des sytèmes complexes d'être modelés comme composants modulaires (qui peuvent être facilement réutilisés pour modeler d'autres systèmes ou pour créer de nouveaux composants). Les capacités de programmation procédurale fournies par CLIPS sont similaires à celles trouvées dans les langages comme le C, le Pascal, l'Ada et le Lisp.
Site web : http://www.eprover.org/
Site web : http://www4.informatik.tu-muenchen.de/~schulz/WORK/eprover.html
:TODO:
Site web : rhaug.de/fool/
Site FTP : ftp.informatik.uni-oldenburg.de/pub/fool
FOOL signifie organisateur flou Oldenburg [Fuzzy Organizer OLdenburg]. C'est le résultat d'un projet de l'Université d'Oldenburg. FOOL est une interface utilisateur graphique pour développer les règles de base floues. FOOL va vous aider à inventer et maintenir une base de données qui spécifie le comportement d'un contrôleur flou ou quelque chose de similaire.
FOX est un petit mais puissant moteur flou qui lit la base de données, lit des valeurs d'entrée et calcule la nouvelle valeur de contrôle.
Site web : www.cs.bgu.ac.il/research/projects/surge/index.htm
Site FTP : ftp.cs.bgu.ac.il/pub/fuf
FUF est une implémentation étendue du formalisme des grammaires d'unification fonctionnelles (FUGs : functional unification grammars) introduit par Martin Kay, spécialisé dans la tâche de génération de langage naturel. Il ajoute les fonctionnalités suivantes au formalisme de base :
Types et héritage.
Installation de contrôle étendu (maintient de l'objectif, recherche inverse intelligente).
Syntaxe modulaire.
Ces extensions permettent le développement de grandes grammaires qui peuvent être traitées efficacement et peuvent être maintenues à jour et comprises plus facilement. SURGE est une grande grammaire syntaxique de réalisations de l'anglais, écrite en FUF. SURGE est développée pour servir de composant de génération syntaxique de boîte noire dans un système de génération plus grand qui encapsule une connaissance riche de la syntaxe anglaise. SURGE peut aussi être utilisé comme plate-forme pour l'exploration de l'écriture de la grammaire dans une perspective de génération.
Site web : ??? www.cs.kun.nl/agfl
Semble être obsolète ??? N'est plus sur le site, bien que le projet parent se poursuive toujours.
The Grammar Workbench (L'atelier de grammaire), ou GWB en abrégé, est un environnement pour le développement aisé de grammaires Affix dans le formalisme AGFL. Ses buts sont :
de permettre à l'utilisateur d'introduire, inspecter et modifier une grammaire ;
d'effectuer des vérifications de cohérence sur la grammaire ;
de calculer des propriétés de la grammaire ;
de générer des phrases d'exemple ;
d'aider à effectuer des transformations sur la grammaire.
The GSM Suite (la suite GSM) est une série de programmes pour l'utilisation des machines à état fini en mode graphique. Cette suite consiste en des programmes qui éditent, compilent, et impriment des machines d'état. La suite comprend un programme d'édition, gsmedit, un compilateur, gsm2cc, qui produit une implémentation C++ d'une machine d'état, un générateur PostScript, gsm2ps, et deux autres programmes mineurs. GSM est sous licence publique GNU et est donc libre d'utilisation selon les termes de cette licence.
Site web : isabelle.in.tum.de
Isabelle est un démontreur de théorème générique populaire développé à l'Université de Cambridge et au TU Munich. Les logiques existantes comme Isabelle/HOL fournissent un environnement de démontreur de théorème prêt à être utilisé pour d'assez grandes applications. Isabelle peut également servir comme châssis pour un prototypage rapide de systèmes déductifs. Il est présenté avec une grande bibliothèque comprenant Isabelle/HOL (logique classique d'ordre supérieur), Isabelle/HOLCF (Logique de Scott pour des fonctions calculatoire avec HOL), Isabelle/FOL (logique du premier ordre classique et intuitive), et Isabelle/ZF (ensemble de théories de Zermelo-Fraenkel au dessus de FOL).
Site web : herzberg.ca.sandia.gov/jess/
Jess (le shell système expert Java) est un clone du populaire shell de système expert CLIPS, entièrement écrit en Java. Avec Jess, vous pouvez à votre convenance donner à vos applets l'habilité à raisonner. Jess est compatible avec toutes les versions de Java, à partir de la version 1.0.2. Jess implémente les constructeurs suivants de CLIPS : defrules, deffunctions, defglobals, deffacts, et deftemplates.
Site web : www.ibiblio.org/pub/Linux/apps/cai/
Learn (apprendre) est programme d'apprentissage vocal avec un modèle de mémoire.
Site web : lisa.sourceforge.net
LISA (Lisp-based Intelligent Software Agents : agents logiciels intelligents basés sur Lisp) est un système de règles de production lourdement influencé par JESS (Java Expert System Shell). Il a en son squelette un moteur de raisonnement basé sur l'algorithme de filtrage de Rete. LISA fournit également l'habilité à raisonner sur d'ordinaires objets CLOS.
Site web : nicole.sourceforge.net
NICOLE (Nearly Intelligent Computer Operated Language Examiner) est une théorie ou une expérimentation qui, si on donne à un ordinateur suffisamment de combinaisons sur la manière dont les mots, groupes de mots ou phrases sont liés les uns aux autres, peut vous répondre. C'est un essai pour simuler une conversation en apprenant comment les mots se rapportent à d'autres mots. Un humain communique avec NICOLE via le clavier et NICOLE répond avec ses propres phrases qui sont automatiquement générées, basées sur ce que NICOLE a stocké dans sa base de données. Chaque nouvelle phrase qui a été écrite et que NICOLE ne connaît pas est ajoutée à la base de donnée de NICOLE, ce qui étend la base de connaissances de NICOLE.
Site web : nltk.sourceforge.net
NLTK, la boîte à outils de langage naturel (the Natural Language Toolkit), est une suite de librairies et de programmes en Python pour le traitement statistique et symbolique du langage naturel. NLTK contient des démonstrations graphiques et des échantillons de données. Il est accompagné d'une documentation fournie, y compris des tutoriels explicant les concepts sous-jacents des tâches de traitement du langage réalisées par l'outil.
NLTK convient parfaitement aux étudiants qui apprennent le traitement du langage naturel, ou qui réalisent une recherche dans le TLN ou un domaine approchant, tels que la linguistique, les sciences cognitives, l'intelligence artificielle, l'extraction de données, et l'apprentissage par machines. NLTK a été utilisé avec succès comme outil d'apprentissage, outil d'étude individuel, et comme une plateforme de prototypage et de construction de systèmes de recherche.
Site web : www-unix.mcs.anl.gov/AR/otter/
Notre système de déduction automatisé actuel Otter est conçu pour démontrer les théorèmes de logique du premier ordre avec une égalité. Les règles d'inférence d'Otter sont basées sur la résolution et la paramodulation, et il comprend des procédures pour la réécriture de termes, l'ordonnancement de termes, la complétion Knut-Bendix, le pesage, et les stratégies pour diriger et restreindre les recherches de preuves. Otter peut aussi être utilisé comme un calculateur symbolique et a un système de programmation équationnelle incorporé.
Site web :pvs.csl.sri.com
PVS est un système de vérification : c'est à dire un langage de spécification intégré à des outils de support et à un démontreur de théorème. Il est prévu pour capturer la plus sophistiquée des méthodes formelles mécanisées et pour être suffisamment robuste pour pouvoir être utilisé pour des applications significatives. PVS est un prototype de recherche : il évolue et s'améliore au fur et à mesure que nous développons ou appliquons de nouvelles capacités, et lorsque la charge en utilisation réelle expose de nouveaux besoins.
Site web : www.cse.buffalo.edu/sneps
Site FTP : ftp.cse.buffalo.edu/pub/sneps
Le but à long terme du groupe de recherche SNePS est la conception et la construction d'un langage naturel utilisant un agent cognitif informatisé, et d'effectuer la recherche dans l'intelligence artificielle, les linguistiques calculatoires, et la science cognitive nécessaire pour cette entreprise. Les trois parties sur lesquelles le groupe met l'accent sont la représentation du savoir, le raisonnement, et la compréhension et la génération du langage naturel. Le groupe est largement connu pour son développement du système de représentation/raisonnement du savoir SNePS, et pour Cassie, son agent cognitif informatisé.
Site web : sitemaker.umich.edu/soar
Soar a été développé pour être une architecture cognitive générale. Nous avons l'ultime intention de permettre à l'architecture Soar de :
travailler sur l'ensemble des taches attendues d'un agent intelligent, des routines jusqu'aux problèmes extrêmement difficiles avec réponse ouverte ;
représenter et utiliser les formes appropriées du savoir, comme les formes procédurales, déclaratives, épisodiques et possiblement iconiques ;
se servir de tout l'éventail des méthodes de résolution de problèmes ;
interagir avec le monde extérieur et
apprendre tous les aspects des tâches et leurs performances sur celles-ci.
En d'autres termes, notre intention est de donner à Soar toutes les compétences requises d'un agent globalement intelligent.
Site web : wwwhome.cs.utwente.nl/~tcm/
Site FTP : ftp.cs.utwente.nl/pub/tcm/
TCM (Toolkit for Conceptual Modeling : boîte à outil pour la modélisation conceptuelle) est notre suite d'éditeurs graphiques. TCM contient des éditeurs graphiques pour des diagrammes entité-relation, des diagrammes classe-relation, des diagrammes de flux de données et d'évènements, des diagrammes de transition d'état, des diagrammes de structure de procédé de Jackson et des diagrammes de réseau systèmes, d'arbres de décomposition de fonction et d'éditeurs de tables variés, tels qu'un éditeur de table fonction-entité ou un éditeur de table de décomposition de fonction. TCM est facile d'accès et procède à de nombreuses vérifications de consistance, dont certaines sont effectuées immédiatement, d'autre pendant la requête.
Site web : yale.cs.uni-dortmund.de/index.html
Yale (Yet Another Learning Environment : Encore un autre environnement d'apprentissage) est un environnement pour les expériences d'apprentissage des machines. Les expériences peuvent être faites d'un grand nombre d'opérateurs emboîtés les uns dans les autres de manière arbitraire et leur installation est décrite par des fichiers XML qui peuvent être aisément créés à l'aide de l'interface graphique. Les applications de YALE couvrent à la fois les tâches d'apprentissage de recherche et du monde réel.
Site web : lucy.cs.waikato.ac.nz/~ml
WEKA (Waikato Environnement for Knowledge Analysis : Environnement Waikato pour l'analyse de connaissance) est la pointe de la technologie de l'application des techniques d'apprentissage de machines à des problèmes pratiques. C'est un banc d'essai logiciel complet qui permet d'analyser les données du monde réel. Il intègre différents outils d'apprentissage machine avec un squelette identique et une interface utilisateur uniforme. Il a été conçu selon la méthode de "plus c'est simple, mieux c'est" qui permet à l'utilisateur d'expérimenter de façon interactive avec un outil d'apprentissage machine simple avant de se tourner vers des solutions plus complexes.
Le connexionnisme est un terme technique pour un groupe de techniques liées. Ces techniques comprennent des notions comme les Réseaux de Neurones Artificiels, des Réseaux Sémantiques et quelques autres idées similaires. Dans cette section je me concentre essentiellement sur les réseaux de neurones (bien que je cherche aussi des ressources sur les autres techniques). Les réseaux neuronaux sont des programmes conçus pour simuler le fonctionnement du cerveau. Ils consistent en un réseau de petits nœuds basés sur les mathématiques, qui fonctionnent ensemble afin de former des schémas d'information. Ils ont un potentiel énorme et semblent actuellement rencontrer un grand succès dans le traitement de l'image et le contrôle de robots.
Ce sont des bibliothèques de code ou de classes à utiliser dans la programmation dans le domaine du connexionnisme. Elles ne sont pas destinés à être des applications autonomes, mais plus des applications pour construire vos propres applications.
Ce logiciel implémente les modèles Bayésiens flexibles pour des applications de régression et de classification qui sont basés sur les réseaux neuronaux à perception multi-couche ou sur les transformations Gaussiennes. L'implémentation utilise les méthodes de Monte Carlo de chaîne de Markov. Les modules logiciels qui sont compatibles avec l'échantillonnage des chaînes de Markov sont incluses dans la distribution, et peuvent être utiles à d'autres applications.
BELIEF (croyance) est une implémentation Common Lisp de la fusion et de l'algorithme de propagation de Dempster et Kong pour des Modèles de Fonction de Croyances Graphique et l'algorithme de Lauritzen et Spiegelhalter pour des Modèles Probabilistes Graphiques. Il comprend du code pour manipuler les modèles de Croyance graphiques comme les réseaux Bayésiens et les diagrammes de Relevance (un sous-ensemble des diagrammes d'Influence) en utilisant à la fois les fonctions de croyance et les probabilités comme des représentations basiques de l'incertitude. Il utilise la version de Shenoy et de Shafer de cet algorithme, donc l'une de ses caractéristiques uniques est le fait qu'il supporte à la fois les distributions de probabilité et les fonctions de croyance. Il possède aussi un support limité des modèles de second ordre (distributions de probabilité sur les paramètres).
Site web : arctrix.com/nas/python/bpnn.py
Un simple ANN à propagation arrière en Python.
Site web : www.isi.ee.ethz.ch/~haenggi/CNNsim.html
Un site plus récent : www.isi.ee.ethz.ch/~haenggi/CNNsim_adv_manual.html
Version Java : www.ce.unipr.it/research/pardis/CNN/cnn.html
Réseaux neuronaux cellulaires (CNN : Cellular Neural Networks) est un paradigme d'informatique parallèle massive défini dans des espaces discrets de dimension N.
Site web : strout.net/conical/
CONICAL est une bibliothèque de class en C++ pour construire des simulations communes à la neuroscience informatique. Actuellement, elles se concentrent sur la modélisation compartimentale, avec des caractéristiques proches de GENESIS et NEURON. Un modèle de NEURON est fait de compartiments, souvent avec une forme cylindrique. Quand ils sont assez petits, ces cylindres à possibilité d'extension peuvent approximer quasiment toutes les géométries. Les classes futures pourront accepter les cinématiques de réaction-diffusion et bien plus. Une caractéristique clef de CONICAL est sa compatibilité à travers les plates-formes, il a été entièrement codéveloppé et testé sous Unix, DOS et Mac OS.
Site web : www.voltar-confed.org/jneural/
L'architecture neuronale de Jet est un châssis C++ pour faire des projets de réseau neuronaux. Le but de ce projet était de faire une architecture neuronale rapide et flexible qui n'est pas limité à une sorte de réseau, et de s'assurer que l'utilisateur final pourra facilement écrire des applications utiles. De même, toute la documentation est facile d'accès.
Site web : joone.sourceforge.net
Joone est un châssis de réseau neuronal pour créer, entraîner et tester des réseaux neuronaux. Le but est de créer un environnement distribué pour des utilisateurs enthousiastes ou professionnels, basé à la fois sur JavaSpaces et sur les dernières technologies Java. Joone est composé d'un moteur central qui est le fulscrum de toute application qui existe déjà ou qui va être développé. Le moteur neuronal est modulaire, de taille réglable, multi-tâches et robuste. Tout le monde peut écrire de nouveaux modules pour implémenter de nouveaux algorithmes ou de nouvelles architectures à partir des simples composants distribués avec le moteur central. L'idée principale est de créer les bases pour promouvoir un million d'applications sur l'IA qui résolveront les problèmes autour du cœur de la structure.
Site FTP : ftp.cs.ucla.edu/pub/
Une classe Matrice C++ simple, rapide et efficace conçue pour les scientifiques et les ingénieurs. La classe Matrice est tout à fait adaptée à des applications avec des algorithmes mathématiques complexes. A titre d'exemple de l'utilité la classe Matrice, elle a été utilisé pour implémenter l'algorithme de rétropropagation de l'erreur pour un réseau neuronal artificiel à réaction positive multi-couche.
:TODO:
:TODO:
Site web : iridia.ulb.ac.be/pulcinella/Welcome.html
Pulcinella est écrit en Common Lisp, et semble être une bibliothèque de fonctions Lisp pour la créer, modifier et évaluer des systèmes valués. Alternativement, l'utilisateur peut choisir d'interagir avec Pulcinella via une interface graphique (disponible uniquement dans le CL Allegro). Pulcinella fournit les primitives pour construire et évaluer des modèles incertains en accord avec plusieurs calculs incertains, comprenant la théorie de la probabilité, la théorie de la possibilité, et la théorie des fonctions de croyance de Dempster-Shafer, et la théorie de la possibilité par Zadeh, Dubois et Prade. Un manuel est disponible sur demande.
Site web : www.sentinelchicken.org/projects/scnANNlib/
SCN Artificial Neural Network Library (Bibliothèque de réseau neuronal artificiel SCN) fournit un programmateur avec une API simple orientée objet pour construire des ANNs. Actuellement, la bibliothèque est compatible avec les réseaux non récursifs avec un nombre de couches arbitraires, chacune avec un nombre de nœuds arbitraires. Des installations existent pour s'entraîner avidement, et il existe des plans pour étendre gracieusement les fonctionnalités de la bibliothèque dans ses versions futures.
Cette entrée, un peu différemment des autres, est une référence à une collection de logiciels plutôt qu'à une seule application. Elle a été développée par le UTCS Neural Net Research Group (Groupe de recherche sur les réseaux neuronaux UTCS). Voici un résumé des logiciels disponibles :
Traitement du langage naturel
MIR — Prototypage rapide basé sur TCL/TK pour le traitement des phrases
SPEC — Analyse grammaticale des phrases complexes
DISCERN — Traitement d'histoires basées sur les scripts, comprenant :
PROC — Analyse grammaticale, génération, réponse à des questions
HFM — Organisation de la mémoire épisodique
DISLEX — Traitement lexical
DISCERN — Le modèle intégré complet
FGREPNET — Apprentissage des représentations distribuées
Auto-organisation
LISSOM — Carte auto-organisante avec des connections latérales.
FM — Cartes auto-organisantes génériques
Neuroévolution
Sous-populations disciplinées (ESP : Enforced Sub-Populations) pour les taches de décision séquentielle.
Equilibrage de pôle double non markoviens.
Neuroévolution adaptive et symbiotique (SANE : Symbiotic, Adaptive NeuroEvolution, prédécesseur d'ESP)
JavaSANE — Application Java pour appliquer SANE à de nouvelles tâches.
SANE-C — Version C, prédécesseur de JavaSANE.
Equilibrage de pôles — SANE de niveau neuronal sur la tâche d'équilibrage de pôle.
Programme de neuroévolution d'augmentation de topologies (NEAT : NeuroEvolution of Augmenting Topologies) pour l'évolution de réseau neuronaux utilisant une structure.
Site web : www.dontveter.com/nnsoft/nnsoft.html
Exemples de codes de réseaux neuronaux tirés du livre The Pattern Recognition Basics of AI. Ce sont des exemples simples de codes de ces divers réseaux neuronaux. Ils fonctionnent correctement comme un bon point de départ pour des expérimentations simples et pour apprendre à quoi ressemble le code derrière les simulateurs. Les types de réseaux disponibles sur le site (codés en C++) sont :
le paquetage Backprop
Les algorithmes du plus proche voisin
L'algorithme d'activation interactive
Les algorithmes des machines de Hopfield et de Boltzman
Le classificateur de schéma linéaire
ART I
La mémoire associative bi-directionnelle
Le réseau à rétropropagation et à réaction positive.
L'informatique évolutive est en réalité un terme général pour un grand nombre de techniques de programmation, y compris des algorithmes génétiques, systèmes adaptatifs complexes, programmation évolutive, etc. L'initiative principale de toutes ces techniques est l'idée d'évolution. L'idée qu'un programme pouvant évoluer vers un certain objectif puisse être écrit. Cet objectif peut être n'importe où entre la résolution d'un problème scientifique et la victoire dans un jeu.
:TODO:
Aussi connus sous le nom d'agents intelligents ou simplement agents, ce domaine de recherche en IA traite de petites applications destinées à aider l'utilisateur(trice) dans son travail. Ils peuvent être mobiles (capables de stopper leur exécution sur une machine et de la relancer sur une autre) ou statiques (en demeurant dans une seule machine). Ils sont le plus souvent spécifiques à une tâche (donc relativement simples) et conçus pour aider l'utilisateur à la manière d'un assistant. Jusqu'à présent, l'utilisation la plus courante (c'est à dire la plus largement répandue) de ce type d'application concerne les robots d'indexation, que beaucoup de moteurs de recherche utilisent (ex.: webcrawler).
Agent est le prototype d'un système "Information Agent". Il est à la fois multiplateforme et multilangue, car il stocke les informations récoltées dans de simples chaînes de caractères condensées. Il peut être condensé et transporté à travers le réseau dans n'importe quel format, car l'agent peut s'autobloquer dans son état initial.
Site Web : en.afit.af.mil/ai/agentool.htm
Site de téléchargement : en.afit.af.mil/ai/registration.htm
Autre cadre de développement d'agent conçu en Java. Il est assez unique dans le fait qu'il s'appuie sur l'utilisation d'une interface graphique pour concevoir le système qui va "synthétiser semi-automatiquement des systèmes multiagents pour répondre à ces exigences". Il vous faut un navigateur compatible java pour pouvoir télécharger le logiciel. :P
Site Web : www.trl.ibm.com/aglets/index_e.htm
Un aglet est un objet Java qui peut se déplacer d'un hôte à un autre sur Internet. Cela veut dire qu'un aglet s'exécutant sur une machine peut brusquement arrêter son exécution, s'expédier sur une machine distante, et reprendre son déroulement sur son nouvel hôte. Quand l'aglet se déplace, il emporte aussi bien son code source que son état (ses données). Un mécanisme de sécurité intégré sécurise l'accueil d'aglets d'origine incertaine pour l'hôte. L'API d'Aglet Java (J-AAPI) est un standard proposé au public pour interfacer les aglets et leur environnement. J-AAPI contient des fonctions pour initialiser les aglets, gérer les messages et expédier, retirer, activer ou désactiver, cloner, ou se débarrasser de l'aglet. J-AAPI est simple, souple, et stable. Les développeurs d'applications peuvent coder des aglets multiplateformes en considérant qu'ils peuvent fonctionner sur n'importe quelle machine supportant J-AAPI.
Site Web : www.alicebot.org
Le logiciel ALICE implémente l'AIML (Artificial Intelligence Markup Language), un langage à balise non standard en évolution, permettant de créer des robots de "chat". La caractéristique de base de sa conception est minimaliste. Comparé à d'autres langages de robot de "chat", l'AIML est peut-être le plus simple. Le langage de filtrage est très simple, ne permettant par exemple qu'un seul caractère joker ('*') de comparaison par filtre. L'AIML est un langage XML, ce qui implique qu'il obéit à certaines méta-règles grammaticales. Le choix d'une syntaxe XML rend possible l'intégration avec d'autres outils tels que des éditeurs XML. Une autre motivation du choix du XML est son apparence familière, particulièrement pour les personnes expérimentée en HTML.
Ara est une plateforme d'exécution sûre et portable d'agents mobiles dans les réseaux hétérogènes. Dans ce contexte, les agents mobiles sont des programmes ayant la capacité de changer de machine hôte pendant leur exécution tout en préservant leur état interne. Cela leur permet de gérer des opérations localement, plutôt que de devoir les effectuer à distance. Par rapport aux plateformes du même type, le but précis d'Ara est de fournir des fonctionnalités complètes d'agent mobile, tout en maintenant autant que possible des modèles et langages de programmation établis.
Site Web : www.bluefire.nu/droidbattles/
Jeu de programmation d'IA où l'on conçoit un robot en choisissant du matériel et en programmant son unité centrale, puis en faisant des compétitions avec d'autres robots. Les compétitions peuvent engager des équipes et des règles spéciales pour un jeu.
Le matériel disponible pour concevoir votre robot comprend des armes, un moteur, des scanners, un microprocesseur, etc. Le langage de programmation dépend du type de votre CPU et est similaire à un langage d'assemblage.
Site Web : www2.toshiba.co.jp/beegent/index.htm
Bee-gent est un nouveau type de cadre de développement car c'est un système d'agent à 100%. Par opposition à d'autres systèmes qui ne font qu'une utilisation partielle des agents, Bee-gent "agentifie" complètement la communication qui a lieu entre les applications logicielles. Les applications deviennent des agents, et tous les messages sont transportés par les agents. Ainsi, Bee-gent permet aux développeurs de construire des systèmes ouverts, distribués et souples, qui permettent une utilisation optimale des applications existantes.
Site Web : bond.cs.ucf.edu/
Encore un autre système d'agent en Java...
Bond est un système d'objets distribués conçu en Java et un cadre d'agent. Il met en application un logiciel médian basé sur des messages et des services associés tels qu'un annuaire, la persistance, la surveillance et la sécurité. Bond permet de construire facilement des applications réparties multiagents. Une autre application future de Bond est le Laboratoire Virtuel supportant l'annotation d'informations et l'informatique répartie à grande échelle.
Site Web : www.erikyyy.de/cadaver/
Cadaver simule en temps réel des cyborgs et la nature. Le champ de bataille est constitué de forêts, de blé, d'eau, d'herbe, de carcasses (bien sûr) et de plein d'autres choses. Le serveur de jeu contrôle le jeu et les règles. Vous démarrez le serveur et connectez quelques clients. Les clients communiquent avec le serveur en utilisant un protocole très primitif. Ils peuvent donner l'ordre aux cyborgs de moissonner le blé, d'attaquer des ennemis ou de couper du bois. Le jeu n'est pas destiné à être joué par des humains! Il y a beaucoup trop de choses à contrôler. Réservé aux experts : vous pouvez uniquement vous connecter au serveur par telnet et entrer les commandes manuellement. Mais l'idée est plutôt que vous écriviez des clients dotés d'une intelligence artificielle pour battre les autres intelligences artificielles. Vous pouvez sélectionner un langage (et un système d'exploitation) de votre choix pour effectuer cette tâche. Il n'y a qu'à écrire un programme qui communique sur les canaux d'entrée et de sortie standard. Puis vous pouvez employer des programmes tels que "socket" pour connecter vos clients au serveur. Il n'est PAS nécessaire d'écrire du code TCP/IP, bien que je l'ai fait :) La bataille ne sera pas ennuyeuse, donc vous disposez du client appelé "spyboss" qui affiche graphiquement l'action à l'écran.
Site Web : www.cougaar.org/
Cougaar est une architecture Java pour la construction d'applications à base d'agents distribués à grande échelle. C'est le produit de plusieurs années de recherche dans le cadre du projet DARPA sur les systèmes d'agents à grande échelle, et il inclut non seulement l'architecture du noyau mais aussi un ensemble de composants de démonstration, de visualisation et d'administration pour simplifier le développement d'applications complexes et distribuées. [Encore un autre système d'agents conçu en Java — ed.]
Site Web : agent.cs.dartmouth.edu/software/agent2.0/
Site FTP : agent.cs.dartmouth.edu/pub/agents/
Un agent transportable est un programme qui peut migrer d'une machine à une autre dans un réseau hétérogène. Le programme choisit où et quand il va migrer. Il peut suspendre son exécution à un certain point, se déplacer sur une autre machine et reprendre l'exécution sur la nouvelle machine. Par exemple, un agent transportant un courrier électronique migre d'abord vers le routeur et ensuite vers la boîte mail du destinataire. L'agent peut effectuer arbitrairement un traitement complexe sur chaque machine afin de s'assurer que le message atteint le bon destinataire.
Site Web : www.boswa.com/misc/dunce/
Dunce est un simple robot de "chat" (IA conversationnelle) et un langage pour programmer ce type de robots. Il emploie un filtrage d'expressions rationnelles de base et un mécanisme semi-neuronal de lancement de règles et de réponses (avec des cycles accélération / ralentissement d'activité).
Site Web : fipa-os.sourceforge.net/
Site Web secondaire : www.nortelnetworks.com/products/announcements/fipa/
FIPA-OS est l'implémentation "open source" des éléments obligatoires contenus dans la spécification FIPA nécessaires à l'interopérabilité des agents. En plus d'être compatible avec le concept d'interopérabilité de FIPA, FIPA-OS fournit également une architecture basée sur des composants permettant le développement d'agents spécifiques à un domaine, pouvant utiliser les services des agents de la plateforme FIPA. Il est implémenté en Java.
FM — Le projet FishMarket mené par l' "Artificial Intelligence Research Institute" (IIIA-CSIC) tente d'apporter sa contribution dans cette direction en développant FM, une maison de ventes aux enchères électronique gérée par des agents, qui a été transformée en banc d'essai pour les marchés d'enchères électroniques. Le cadre, conçu et mis en application comme extension de FM96.5 (une version Java de la maison de ventes de Fishmarket), permet de définir des scénarii de transactions basés sur les enchères à la criée (enchères hollandaises). FM fournit un cadre où les concepteurs d'agent peuvent réaliser des expériences contrôlées de telle manière qu'une multitude de scénarii de marchés expérimentaux — que nous considérons comme scénarii de compétition du fait de la nature concurrentielle du domaine — d'un réalisme et d'une complexité plus ou moins forts peuvent être établis, activés, et enregistrés ; et de telle manière que les agents hétérogènes (humains et logiciels) d'échange (acheteur et vendeur) peuvent être comparés, accordés et évalués.
Site Web : www.gnu.org/software/robots/robots.html
GNU Robots est un jeu / divertissement où il vous faut construire un programme pour un petit robot, puis le regarder explorer un monde. Le monde en question est rempli de méchants qui peuvent vous blesser, d'objets dans lesquels vous pouvez frapper, et de nourriture que vous pouvez manger. Le but de ce jeu est de collecter autant de prix que possible avant d'être tué par un ennemi ou d'être à court d'énergie. Les robots peuvent être écrits en script "Guile" ou en utilisant une interface graphique.
Site Web : www.grasshopper.de/
Autre système d'agent en Java. Possède de nombreuses fonctionnalités et est activement développé. Commercial mais libre. Orienté à l'origine vers les systèmes embarqués.
Site Web : hive.sourceforge.net/
Hive est une plateforme logicielle en Java pour créer des applications réparties. En utilisant Hive, les programmeurs peuvent facilement créer des systèmes qui se connectent et utilisent des données provenant d'internet. Au fond, Hive est un environnement d'évolution pour les agents distribués, qui communiquent et se déplacent pour accomplir des tâches. Nous essayons de rendre Internet vivant.
Site Web : www.nar.fujitsulabs.com/
Site sur SourceForge : sourceforge.net/projects/networkagent/
Inter-Agent Communication Model (ICM, Modèle de Communication Inter-agents) est un mécanisme de communication pouvant être utilisé pour envoyer des messages entre agents en mode asynchrone. Son domaine d'application prévu est le mécanisme de transport pour les langages de communication d'agent (ACLs), comme KQML et ACL de FIPA.
Site Web : jacomma.sourceforge.net/
Site sur SourceForge : sourceforge.net/projects/jacomma/
Jacomma est une plateforme / un cadre de développement pour développer des agents d'information distribués, mobiles et réactifs, avec des capacités de communication hétérogène, en Java et Jpython.
Jacomma fournit un cadre de développement et un environnement d'exécution, qui repose sur l'infrastructure "Inter-Agent Communication Model". ICM définit un protocole de communication, une architecture de stockage et d'expédition de messages, et une infrastructure de communication bas niveau pour l'échange de messages. La communication est réellement asynchrone, basée sur des sockets TCP.
Il y a une rubrique sur ICM dans ce guide, vous pouvez également le trouver via un lien à partir de ce site.
Site Web : sharon.cselt.it/projects/jade/
JADE (Java Agent DEvelopment Framework) est un cadre de développement logiciel complètement implémenté en langage Java. Cela simplifie l'implémentation de systèmes multiagents à travers un logiciel médian dont on est assuré qu'il est conforme aux spécifications de la FIPA, et à travers un ensemble d'outils permettant le débuggage et la phase de déploiement. La plateforme d'agents peut être distribuée entre diverses machines (qui n'ont même pas besoin de partager le même système d'exploitation) et sa configuration peut être réalisée au moyen d'une interface graphique distante. La configuration peut même être changée au cours de l'exécution, en déplaçant les agents d'une machine à une autre, au fur et à mesure que cela est nécessaire.
Site Web : www.marcush.net/IRS/irs_downloads.html
JAM accepte aussi bien les modes de raisonnement descendant (à base de buts à atteindre) que les modes de raisonnement ascendant (à partir des données). JAM choisit ses objectifs et plans selon la priorité maximale si le raisonnement métaniveau n'est pas utilisé, ou sur les plans de raisonnement métaniveau développés par l'utilisateur si ceux-ci existent. Pour JAM, la conceptualisation des objectifs et l'accomplissement des objectifs est définie plus classiquement (UMPRS est plus basé sur les performances comportementales que véritablement sur les objectifs) et fait la distinction entre les plans pour atteindre un objectif et les plans qui encodent simplement les comportements. Les objectifs-type implémentés incluent la réalisation (atteindre un état donné du système), la maintenance (atteindre de nouveau cet état donné du système), et la performance. L'exécution simultanée d'objectifs multiples est possible, avec une capacité de suspension et de reprise pour chaque processus d'objectif (c-à-d d'intention). Les plans de JAM ont des propriétés explicites de condition à priori et de fonctionnement qui restreignent leur applicabilité, une propriété de condition à posteriori et une section des propriétés du plan sont utilisées pour définir des caractéristiques spécifiques à un plan ou un domaine. Les constructions de plan disponibles incluent : l'ordonnancement, l'itération, les objectifs partiels, les segments de plan atomiques (c-à-d non-interruptible), l'exécution conditionnelle non déterministe et déterministe à n-branche, l'exécution parallèle de segments de plan multiples, la synchronisation basée sur l'état donné du système ou les objectifs, une section de manipulation des défaillances explicite, et la définition de primitives de fonction Java au moyen de sa construction dans JAM aussi bien que l'invocation de membres de classe prédéfinies (c-à-d propriétaire) via les capacités de réflexion de Java, sans avoir à le construire dans JAM.
Site Web : java.stanford.edu/
JATLite fournit un ensemble de paquetages Java qui facilite la conception de systèmes multiagents en Java. JATLite fournit seulement un ensemble petit et léger de paquetages, de sorte que les développeurs puissent se débrouiller avec tous les paquetages avec un minimum d'efforts. Pour plus de souplesse, JATLite fournit quatre couches différentes, d'une implémentation abstraite à une implémentation "Router". Un utilisateur peut accéder à n'importe quelle couche fournie. Chaque couche est basée sur un ensemble de postulats différents. L'utilisateur peut choisir la couche appropriée selon les postulats de la couche et de l'application de l'utilisateur. La page d'introduction présente les fonctionnalités de JATLite et l'ensemble des postulats de chaque couche.
Site Web : waitaki.otago.ac.nz/JATLiteBean/
Interface de JATLite améliorée et maniabilité accrue, comprenant l'envoi, la réception et l'analyse lexicale des messages KQML
Architecture extensible pour la gestion des messages et l'administration "thread of control" (NdT : unité d'exécution) des agents
Fonctions utiles pour l'analyse lexicale du contenu de messages KQML simples
JATLiteBean permet la transmission automatique aux agents animateurs de l'information sur les capacités des agents
Gestion automatique, facultative de la directive "forward"
Analyseur lexical des fichiers génériques de configuration
Vérificateur syntaxique de KQML
Site Web : www-cdr.stanford.edu/ABE/JavaAgent.html
Le JAT fournit un modèle pleinement fonctionnel, écrit entièrement en langage Java, qui permet de construire des agents logiciels qui communiquent en poste-à-poste ("peer-to-peer") avec une communauté d'autres agents répartis sur Internet. Bien que des portions du code utilisé dans chaque agent soient portables, les agents JAT ne sont pas mobiles mais restent statiques sur une seule machine. Ce comportement est en opposition à beaucoup d'autres technologies "agent". (Cependant, en utilisant le RMI Java, les agents JAT pourraient se déplacer dynamiquement sur une machine extérieure par l'intermédiaire d'un agent résidant sur cette seconde machine). Actuellement, tous les messages d'agent emploient KQML comme protocole de haut niveau ou comme emballeur de message. Le JAT possède une fonctionnalité pour échanger dynamiquement les "Ressources", qui peuvent inclure des classes Java (ex.: nouveaux langages ou interpréteurs, services distants, etc.), des fichiers de données et des informations intégrés dans les messages KQML.
Khepera Simulator est un paquetage logiciel du domaine public écrit par Olivier MICHEL pendant la préparation de son doctorat, au Laboratoire I3S, URA 1376 du CNRS et de l'Université de Nice-Sophia Antipolis, en France. Il permet d'écrire son propre contrôleur en langage C ou C++ pour le robot mobile Khepera, de le tester dans un environnement simulé, et comporte une belle interface graphique X11 colorée. De plus, si vous possédez un robot Khepera, le simulateur peut commander le vrai robot en utilisant le même algorithme de contrôle. Il est principalement destiné aux chercheurs étudiant les agents autonomes.
Site Web : lyntin.sourceforge.net/
Lyntin est un client "Mud" (Multi-User Dialog, dialogue multi-utilisateur) extensible et un cadre de développement d'agents autonomes, ou de robots, aussi bien que tout ce qui approche le "mudding" en général. Lyntin est basé sur du Python, langage de programmation amusant, dynamique et orienté objet, basé sur TinTin++, un beau client "mud".
Site Web : mole.informatik.uni-stuttgart.de/
Mole est un système d'agent compatible avec les agents mobiles programmés en Java. Les agents de Mole sont un regroupement d'objets, qui n'ont pas de référence vers l'extérieur, et qui dans l'ensemble travaillent sur des tâches données par l'utilisateur ou par d'autres agents. Ils ont la capacité d'évoluer sur un réseau d'"emplacements" de façon autonome. Ces "emplacements" sont une abstraction de nœuds réels, qui existent dans le réseau sous-jacent. Ils peuvent accéder à des ressources de nature locale, en communiquant avec les agents dédiés représentant ces services. Les agents sont capables d'utiliser les services fournis par d'autres agents et de fournir également des services.
Site Web : www.logilab.fr/narval.html et www.logilab.org/projects/narval
Narval signifie Assistant Réseau pour la Visualisation de Ressources et Langage d'Agent ("Network Assistant for Ressources Visualization and Agent Language"). C'est un assistant personnel en réseau basé sur l'intelligence artificielle et les technologies d'agent. Il exécute des recettes (séquences d'actions) pour effectuer ses tâches. Il est très facile de définir une nouvelle action grâce à du XML et de l'implémenter en utilisant Python. Les recettes peuvent être codées et déboguées au moyen d'une interface graphique.
Site Web : www.nevrax.org/
NeL est en fait une bibliothèque de développement de jeux (pour les jeux multijoueurs massifs), mais je le signale ici car il devrait inclure une bibliothèque d'IA assez considérable. Voici une notice tirée du livre blanc :
Le but de cette bibliothèque d'IA est de fournir une approche pragmatique pour créer une plateforme d'agents distribués. Elle est centrée sur les agents ; des entités individuelles communiquant indépendamment de l'endroit, en utilisant un modèle action-réaction.
Site Web : www.ai.sri.com/~oaa/
"Open Agent Architecture" (Architecture Ouverte d'Agents) est un cadre dans lequel une communauté d'agents logiciels s'exécutant sur des machines distribuées peuvent travailler ensemble sur des tâches assignées par des participants de la communauté, humains ou non. La coopération distribuée et la communication haut-niveau sont deux idées centrales à l'origine d'OAA.
Il définit un langage de communication inter-agent et est compatible avec de multiples plateformes et langages de programmation.
Site Web : utenti.quipo.it/claudioscordino/pai.html
PAI ("Programmable Artificial Intelligence", Intelligence Artificielle Programmable) est un programme capable de soutenir une conversation dans sa langue maternelle, l'anglais. Ecrit en C++.
Penguin est un module Perl version 5. Il vous fournira un ensemble de fonctions qui vous permettront de :
envoyer du code Perl crypté, avec signature numérique vers une machine distante où il sera exécuté.
recevoir du code et, selon le signataire du message, l'exécuter dans un compartiment arbitrairement sécurisé et limité.
Site Web : ps-i.sourceforge.net/
Ps-i est un environnement permettant d'effectuer des simulations basées sur des agents. Il est multiplateforme, et un exécutable est disponible pour Win32. Ses fonctionnalités sont :
langage déclaratif pour la spécification des modèles
langage de script Tcl/Tk conforme aux normes industrielles avec optimisation intégrée des sous-programmes, évaluation spéculative, de plus les utilisateurs du compilateur JIT xf86 pourront créer des modèles complexes sans dégradation de performance
interface conviviale
sauvegarde et restauration du déroulement du programme
changement des paramètres du modèle à la volée
visualisation des données : affichage d'agent par champs avec de multiples formes et couleurs, fenêtre de statistiques, visionneur d'agents, explorateur de sous-programmes et outil de mise en surbrillance d'agents
Site Web : www.lysator.liu.se/realtimebattle/
RealTimeBattle (Bataille Temps Réel) est un jeu de programmation dans lequel les robots, contrôlés par des programmes, se battent les uns contre les autres. L'objectif est de détruire ses ennemis, à l'aide du radar pour observer les alentours et du canon pour tirer.
Le jeu se déroule en temps réel, le programme du robot s'exécutant en tant que processus fils de RealTimeBattle.
Les robots communiquent avec le programme principal via l'entrée et la sortie standard.
Les robots peuvent être construits dans presque n'importe quel langage de programmation.
Autant de robots que voulu peuvent concourir simultanément si le système d'exploitation le permet.
Un langage de transmission de messages simple est utilisé pour communiquer, ce qui facilite le début de la construction de robots.
Les robots se comportent comme des objets physiques réels.
Vous pouvez créer vos propres arènes.
Hautement configurable.
Site Web : www.remem.org/
Remembrance Agents (les Agents du Souvenir) sont un ensemble d'applications qui veillent sur l'utilisateur et suggèrent des informations concernant la situation actuelle. Tandis que les moyens mnémoniques basés sur des requêtes aident à la remémoration directe, les agents de souvenir sont une mémoire associative étendue. Par exemple, la version du traitement de texte de RA met continuellement à jour une liste de documents en rapport avec ce qui est saisi ou lu dans un tampon d'emacs. Ces documents suggérés peuvent être n'importe quel fichier texte qui pourrait être en rapport avec ce que vous êtres en train d'écrire ou de lire. Ils pourraient être de vieux courriers électroniques liés au courrier que vous êtes en train de lire, ou des résumés de la recherche et des articles de journaux qui traitent du même sujet que ce que vous écrivez.
Site Web : robotournament.sourceforge.net/
RoboTournament est un jeu inspiré de RoboRally où les joueurs programment leurs robots pour vaincre leurs adversaires. Les fonctionnalités de RoboTournament sont : types de jeu multiples : match à mort, rallye et capture de drapeau. Multijoueurs via TCP/IP, six armes y compris le BFG, un éditeur de cartes, et une grande variété d'éléments de tableau de bord.
Site Web : www.informatik.uni-bremen.de/simrobot/index_e.htm
Site FTP : ftp.uni-bremen.de/pub/ZKW/INFORM/simrobot/
SimRobot est un programme de simulation de robots avec capteurs dans un environnement 3D. Ecrit en C++, il fonctionne sous Unix et X11 et requiert la boîte à outils graphique Xview.
Simulation de la cinématique du robot
Définition de scène construite hiérarchiquement par l'intermédiaire d'une langue de définition simple
Divers capteurs intégrés : appareil photo, œil à facettes, mesure de distances, capteur de luminosité, etc.
Les objets sont définis comme des polyèdres
Emetteur défini abstraitement : peut être interprété par exemple comme lumière ou bruit
Images d'appareil-photo calculées selon les algorithmes de raytracing ou de Z-buffer que l'on connaît par l'infographie
Interface logicielle de capteur/moteur spécifique pour communiquer avec la simulation
Mappage de textures sur les surfaces de l'objet : bitmaps dans divers formats
Visualisation complète de la scène : rendu en fil de fer sans lignes cachées, ni valeurs de capteur ou d'acteur
Le contrôle des agents et l'opération dans l'environnement sont aussi bien interactifs que traités par lots
Détection des collisions
Capacité d'extension grâce à des types d'objet définis par l'utilisateur
Communication par socket possible vers, par exemple, le logiciel de traitement d'image Khoros
Site Web : wearables.essex.ac.uk/sulawesi/
Un cadre de développement appelé Sulawesi a été conçu et implémenté pour aborder ce qui est considéré comme des défis importants dans les interfaces utilisateur tout usage [NdT : en anglais le terme wearable est utilisé, pour exprimer la possibilité d'un système que l'on peut emporter sur soi, intégré ou non aux vêtements] : la capacité d'accepter une entrée venant de n'importe quel nombre de modalités, et d'effectuer au besoin une traduction vers n'importe quel nombre de sorties modales. Cela est fait principalement au moyen d'un ensemble d'agents qui agissent par anticipation sur l'entrée.
Site Web : www.nyx.net/~tpoindex/
TclRobots est un jeu de programmation, semblable à « Core War ». Pour jouer à TclRobots, vous devez écrire un programme en Tcl qui contrôle un robot. La mission du robot est de survivre à une bataille contre d'autres robots. Deux, trois ou quatre robots combattent pendant une bataille, chacun utilisant un programme différent (ou éventuellement le même programme dans différents robots). Chaque robot est équipé avec un radiomètre à balayage, un canon, et un mécanisme de déplacement. Un duel ne s'arrête que lorsqu'il ne reste qu'un seul robot opérationnel. Les robots peuvent combattre individuellement, ou par équipe. Un tournoi peut avoir lieu avec n'importe quel nombre de programmes de robot, chaque robot jouant contre tous les autres dans une poule, en face à face individuel. Un simulateur de bataille est disponible pour aider à la mise au point des programmes de robot.
Le programme TclRobots fournit un environnement physique, imposant certains paramètres de jeu auxquels tous les robots doivent adhérer. TclRobots fournit également une vue de la bataille, et une interface de contrôle pour l'utilisateur. Conditions pour utiliser TclRobots : un interpréteur "wish" conçu pour Tcl 7.4 et Tk 4.0.
Site Web : www.csee.umbc.edu/tkqml/
TKQML est une application / un ajout KQML à Tcl/Tk, ce qui permet aux systèmes basés sur Tcl de communiquer facilement avec un puissant langage de communication d'agent.
Site Web : www.tacoma.cs.uit.no/
Un agent est un processus qui peut migrer à travers un réseau informatique dans le but de satisfaire des requêtes émises par des clients. Les agents sont une manière attrayante de décrire les calculs distribués sur tout le réseau.
Le projet TACOMA se concentre sur le support des systèmes d'exploitation pour les agents et sur la manière dont les agents peuvent être utilisés pour résoudre des problèmes traditionnellement destinés aux systèmes d'exploitation. Nous avons implémenté une série de systèmes prototypes pour accueillir des agents.
TACOMA version 1.2 est basé sur UNIX et TCP. Le système est compatible avec des agents écrits en C, Tcl/Tk, Perl, Python, et Scheme (Elk). Il est implémenté en C. Cette version de TACOMA a été rendue publique en Avril 1996.
Nous nous concentrons actuellement sur les problèmes d'hétérogénéité, de tolérance aux anomalies, de sécurité et de gestion. En outre, plusieurs applications de TACOMA sont en construction. Nous avons implémenté StormCast 4.0, un vaste système en réseau de surveillance météorologique sur Internet, en utilisant TACOMA et Java. Nous sommes actuellement en cours d'évaluation de l'application, et nous prévoyons de construire une nouvelle version de StormCast qui devrait être achevée en Juin 1997.
Site Web : www.advogato.org/proj/Ummon/
Ummon est un robot conversationnel avancé et "open source". Le principe général du robot est qu'il ne possède aucune connaissance initiale en vocabulaire ou grammaire ; il apprend tout à la volée. De nombreuses techniques d'IA seront explorées au cours du développement d'Ummon pour arriver à une communication "humaine" réaliste avec le support de différentes personnalités paramétrables.
Site Web : www.marcush.net/IRS/
UMPRS supporte le mode de raisonnement descendant, avec objectifs à atteindre et il choisit ses objectifs et plan selon la priorité maximale. L'exécution de plusieurs buts simultanément est possible, ainsi que la suspension et reprise pour chaque tâche de but (c-à-d d'intention). Les plans d'UMPRS ont un attribut intégré de précondition/moteur d'exécution qui restreint leur applicabilité. Les plans de construction disponibles comprennent : l'ordonnancement, l'itération, la définition de sous-objectifs, les blocs atomiques (c-à-d non-interruptible), l'exécution conditionnelle déterministe à n-branches, une section de gestion de pannes explicite, et la définition de fonction primitive en C++.
(Tcl/Tk)
Site Web : www.vise.cs.uit.no/vise/
Ce qui motive le projet Secrétaire Virtuelle est la construction d'agents logiciels intelligents basés sur des modèles utilisateurs, qui pourraient dans la plupart des cas remplacer les hommes pour des tâches de secrétariat ; ces agents seraient basés sur l'informatique mobile moderne et les réseaux informatiques. Le projet comporte 2 différentes phases : la première phase (ViSe1) se concentre sur le filtrage des informations et la migration de processus, son but étant de créer un environnement sécurisé pour les agents logiciels en utilisant le concept des modèles utilisateur ; la seconde phase (ViSe2) est axée sur la coopération efficace et intelligente des agents dans un environnement distribué, son but étant de construire des agents coopératifs pour obtenir un niveau d'intelligence élevé. (codé en Tcl/TclX/Tix/Tk)
Site Web : zhar.net/projects/vworld/
Vworld est un environnement simulé, écrit en prolog, pour la recherche avec des agents autonomes. Il est actuellement plus ou moins en version bêta. Il fonctionne bien avec SWI-prolog, et devrait fonctionner avec Quitnus-prolog, avec seulement quelques modifications. Il est destiné à être utilisé comme outil pédagogique pour des projets d'élèves traitant de prolog et des agents autonomes. Il est livré avec trois mondes ou environnements de démonstration, ainsi qu'avec des exemples d'agents qui leurs sont destinés. Il y a deux version maintenant. L'une d'elles est écrite pour SWI-prolog et l'autre pour LPA-prolog. Globalement, la documentation est faite (dans l'optique d'un cadre étudiant/professeur), et une interface graphique est prévue.
Site Web : www-2.cs.cmu.edu/~softagents/webmate/
WebMate est un agent personnel pour la recherche et la navigation sur le World-Wide Web. Il vous accompagne quand vous surfez sur Internet et vous fournit ce que vous désirez. Ses fonctionnalités comprennent :
Amélioration des recherches, dont la recherche parallèle, affinage des mots-clés de la recherche en utilisant notre technologie d'extraction de mots-clés appropriés, retour d'information pertinente, etc.
Assistant à la navigation, comprenant l'apprentissage de votre centre d'intérêt actuel, avec recommandation de nouveaux URLs selon votre profil et les ressources sélectionnées, gestion de vos signets de Netscape ou IE, envoie de la page actuellement affichée à vos amis, etc.
Navigation hors ligne, y compris le téléchargement des pages suivant la page affichée pour une navigation hors ligne.
Filtrage des en-têtes HTTP, comprenant l'enregistrement des en-têtes HTTP et de toutes les transactions effectuées entre le navigateur et les serveurs WWW, etc.
Vérification de la page HTML et détection des erreurs et liens morts, etc.
Programmation en Java, indépendant du système d'exploitation, fonctionnant en multiprocessus
Site Web : more.btexact.com/projects/agents/zeus/
La construction de systèmes multiagents implique une longue période de développement et exige des solutions à quelques difficultés techniques considérables. C'est ce qui a motivé le développement de la boîte à outils ZEUS, qui fournit une bibliothèque de composants logiciels et des outils qui facilitent la conception, le développement et le déploiement rapide de systèmes d'agent.