e-TI
e-revue en Technologies de l'Information
Pr�c�dent Bas de page Suivant Signaler cette page Version imprimable



Premier Num�ro > R&D;

Article

Amine : une plate-forme pour le d�veloppement de syst�mes et d?agents intelligents


Adil Kabbaj, INSEA, BP 6217, Rabat, Maroc, akabbaj@insea.ac.ma.
Karim Bouzouba, EMI, Universit� Mohamed V ? Agdal, Av. Ibn Sina, BP 765, Rabat, Maroc, karim.bouzoubaa@emi.ac.ma.

Date de publication : 28 octobre 2005

R�sum�

Cet article pr�sente Amine, une plate-forme open-source et multicouche, impl�ment�e en Java et d�di�e au d�veloppement de syst�mes intelligents et au d�velopphttps://?agents (https://sourceforge.net/projects/amine-platform). La plate-forme Amine est compos�e de quatre couches : une couche ��noyau�� qui permet la cr�ation, l?�dition, la mise � jour et la manipulation d?ontologies multilingues, une couche alg�brique qui offre un ensemble de classes (structure + op�rations)�; une couche de programmation et une quatri�me couche permettant le d�veloppement d?agents et de syst�mes multi-agents. La couche de programmation fournit trois paradigmes de programmation�: un paradigme de programmation bas�e sur la m�moire, un paradigme de programmation � base de r�gles incorpor� dans le langage PROLOG+CG et un paradigme de programmation visuelle � base d'activation et de propagation, incorpor� dans le langage SYNERGY.

Abstract

This paper presents an overview of Amine ; a multi-layer and open-source platform, implemented in Java and dedicated to the development of intelligent systems and agents. Amine is composed of four layers : a) a kernel layer that enables the creation, edition, update and manipulation of multi-lingua ontologies, b) an algebraic layer that offers a set of elementary data types, structured types and various matching-based operations, c) a programming layer that provides three programming paradigms: i) an ontology or memory-based programming paradigm which is concerned by incremental and automatic integration of knowledge in an ontology (or agent memory), ii) a pattern-matching and rule-based programming paradigm, embedded in PROLOG+CG language, and iii) an activation and propagation-based programming paradigm, embedded in SYNERGY language, and d) an agent and multi-agent systems layer that enables the development of agent-based applications.


Table des mati�res

Texte int�gral

Un syst�me intelligent est un programme informatique pr�sentant une certaine forme d?intelligence. Le d�veloppement de tels syst�mes a d�but� vers les ann�es 50. Nous pouvons identifier quatre p�riodes dans le d�veloppement de tels syst�mes, chaque p�riode a permis d?explorer diff�rents types de syst�mes intelligents�:

  • Exploration de processus intelligents et d�veloppement des premiers syst�mes intelligents,

  • Syst�mes � bases de connaissances et de m�ta-connaissances, et syst�mes intentionnels,

  • Syst�mes intelligents autonomes,

  • Agents autonomes int�gr�s.

Durant ces p�riodes, diff�rents outils de d�veloppement ont vu le jour : les langages de programmation d�di�s tels que Lisp et Prolog, les formalismes de repr�sentation (frames, scripts, r�seau s�mantique), les coquilles de d�veloppement de syst�mes experts et les coquilles de d�veloppement d?agents intelligents. Chaque outil de d�veloppement ou formalisme de repr�sentation r�pond � un besoin sp�cifique. Par ailleurs, pour le raisonnement s�mantique, les graphes conceptuels (GC) sont des formalismes de repr�sentation de connahttps:// tr�s largement utilis�s (Sowa 1984, 2000). CoGITaNT <https://cogitant.sourceforge.net> et CharGer <https://www.cs.uah.edu/~delugach/CharGer/> sont des outils d?�dition et de manipulation des GC. Cependant, ces outils ne fournissent pas de m�canisme d?inf�rence afin de mener des raisonnements.

Une ontologie repr�sente l?ensemble des concepts (ou cat�gories) et des relations utilis�s pour formuler des propositions � propos d?un domaine donn�. Une grande vari�t� d?ontologies ont �t� d�velopp�es�: une ontologie linguistique comme WordNet (www.cogsci.princeton.edu/~wn), une ontologie encyclop�dique comme CYC (www.cyc.com), et des milliers d?ontologies pour diff�rents domaines. L?importance des ontologies a �t� r�v�l�e avec le d�veloppement du web s�mantique. Le web s�mantique permet de structurer le contenu s�mantique des documents web et ainsi permettre � des programmes et � des agents d?interpr�ter leur contenu et de raisonner � partir de ces documents.

De nombreux langages pour le web s�mantique ont ainsi �t� d�finis ces derni�res ann�es. Des outils d?�dition et de gestion de documents ont �t� d�velopp�s afin de valider ces langages. A titre d?exemple, on peut citer les langages XOL (XML based ontology exchange language) (www.ai.sri.com/~pkarp/xol/), Topic Maps (un standard ISO pour la description de repr�sentations de connaissances) (www.topicmaps.org), RDF/RDFS (https://e Description Framework et RDF Schema) (www.w3.org/RDF/), DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) (www.daml.org), et OWL (Web Ontology Language) (www.w3.org/TR/owl-features/).

Il est �galement possible de raisonner sur les ontologies en utilisant un moteur d?inf�rencehttps://l tel que JESS (herzberg.ca.sandia.gov/jess/), ou des outils d?inf�rence caract�ristiques du web s�mantique fond�s sur des logiques de description (dl.kr.org/) tels que RACER (www.sts.tu-harburg.de/~r.f.moeller/racer/). Il existe aussi des �diteurs d?ontologies comme Prot�g�-2000 (protege.stanford.edu/) qui permet de construire une ontologie selon les langages pr�cit�s et d?int�grer des moteurs d?inf�rence comme JESS ou RACER.

L?apport de la plate-forme Amine dans le domaine d?ontologies se r�sume par les points suivants�:

  • un m�ta-mod�le fond� sur les structures conceptuelles de la th�orie des graphes conceptuels (GC)�;

  • l?emploi des GC comme langage de repr�sentation de connaissances�;

  • un processus d?int�gration automatique de nouvelles connaissances � l?ontologie�;

  • des processus de base pour l?exploration d?une ontologie�;

  • l?usage d?une ontologie � partir du langage Prolog+CG (qui permet l?inf�rence)�;

  • L?utilisation des outils sur les ontologies � une plate-forme ihttps://

  • Pohttps://onstruction de syst�mes multi-agents, SMA, plusieurs plates-formes ont vu le jour. JADE �<https://jade.cselt.it/> ou Jason <https://jason.sourceforge.net> en sont des exemples. Cependant, ces outils ne g�rent que la communication entre agents sans possibilit� de manipulation des graphes conceptuels ou d?utilisation d?une ontologie particuli�re.

    Ainsi, disposer d'un environnement de d�veloppement int�gr� reste un souci constant pour le d�veloppement de divers syst�mes intelligents. La plate-forme Amine vise � offrir un tel environnement. Elle comprend des outils de d�finition et de manipulation d'ontologies pouvant �tre exprim�s par plusieurs formalismes de repr�sentation et par des moteurs d?inf�rence incluant un langage de programmation logique et conceptuel. Il s?agit d?une plate-forme open-source1 et multicouche, impl�ment�e en Java et d�di�e au d�veloppement de syst�mes intelligents et au d�veloppement d?agents (Kabbaj et al. 2005). La figure 1 montre l?architecture de la version courante, Amine 3. �Elle est compos�e de quatre couches. La premi�re constitue le noyau et concerne la cr�ation et la manipulation d?ontologies multilingues. La deuxi�me couche alg�brique fournit plusieurs types de donn�es �l�mentaires, et compos�es et plusieurs op�rations associ�es. La troisi�me couche offre des m�canismes d?inf�rence. La quatri�me offre la possibilit� d?impl�menter les concepts d'agents et syst�mes multi-agents.

    Figure 1. L?architecture de la plate-forme Amine

    Les quatre couches forment une hi�rarchie�: chaque couche est construite sur la base et utilise les couches inf�rieures. Pour offrir une conception et une impl�mentation d?Amine avec un haut niveau de modularit� chaque couche peut �tre utilis�e de mani�re ind�pendante.

    Amine peut �tre vu comme un environnement de programmation bas� sur l?ontologie ou comme la base d?une machine virtuelle intelligente. La s�mantique des cat�gories (types) utilis�es par le syst�me/agent est pr�cis�e dans l?ontologie gr�ce � la couche noyau. Diff�rentes structures (AmineList, Term, CG) peuvent �tre utilis�es par le syst�me ainsi que plusieurs op�rations bas�es sur l?appariement �-matching- gr�ce � la couche alg�brique. Les �l�ments de ces structures peuvent �tre des cat�gories mentionn�es dans l?ontologie. La couche programmation fournit trois paradigmes de programmation o� l?ontologie, les structures et les op�rations peuvent �tre utilis�es. L?ontologie, les structures, les op�rations bas�es sur l?appariement et les paradigmes de programmation sont les ingr�dients permettant la formulation et le d�veloppement de plusieurs strat�gies d?inf�rence (induction, d�duction, abduction, analogie) et de processus cognitifs. Ils sont aussi des ingr�dients n�cessaires au d�veloppement de la m�moire dynamique. Et tel que �nonc� par Michalski, ?Apprentissage = M�moire + Inf�rences? (Michalski 1994), tous ces ingr�dients, avec les strat�gies d?inf�rence, les capacit�s de m�moire et d?apprentissage, forment les composantes fondamentales d?une machine virtuelle intelligente.

    Amine fournit �galement plusieurs interfaces utilisateurs graphiques (IUG). La figure 2 en pr�sente la fen�tre principale ��Amine Suite Panel�� qui permet l?acc�s � toutes les IUG, ainsi que l?acc�s � quelques exemples d?ontologie et � des tests qui illustrent l?utilisation des structures fournies et leur API.

    Figure2. Fen�tre principale d?Amine ��Amine Suite Panel���

    La suite de cet article est organis�e comme suit. La deuxi�me section introduit bri�vement la couche noyau. La troisi�me section pr�sente la couche alg�brique. La section quatre pr�sente la derni�re version de �Prolog+CG (les composants DynamicOntology (Bouzouba et Kabbaj 2004) et SYNERGY (Kabbaj 1999) ne sont pas d�crits dans cet article). La cinqui�me section d�crit notre approche du d�veloppement d?applications fond�es sur les agents. La sixi�me section conclut et expose quelques orientations pour nos travaux futurs.

    La couche noyau permet la cr�ation et la manipulation d?ontologies multilingues (Bouzouba et Kabbaj, 2004). Rappelons qu?une ontologie repr�sente l?ensemble des concepts (ou des cat�gories) et des relations utilis�es pour formuler des propositions � propos d?un domaine donn� (Sowa 2000). Ce catalogue de cat�gories et de relations est organis� en g�n�ral dans une hi�rarchie appel�e hi�rarchie de types. Cette d�finition d?ontologie peut �tre �tendue en fournissant � chaque type toutes les connaissances sp�cifiques acquises par le syst�me. Ces connaissances peuvent �tre organis�es en termes de structures conceptuelles (SC) � l?aide d?une d�finition, d?un canon (description des contraintes respect�es par le type) et de sch�mas (description de situations) associ�s. Les individus (instances) peuvent �tre associ�s � leur type. �Ainsi, une ontologie dans Amine est un graphe de n?uds qui repr�sentent les structures conceptuelles. Actuellement, cinq types de n?uds sont d�finis.

    • N?ud type�: le n?ud repr�sente un type (une cat�gorie). Ce n?ud peut contenir la d�finition du type ou le canon du type.

    • N?ud Individu�: le n?ud repr�sente un individu (ou instance) et peut contenir sa propre description.

    • N?ud Situation�: le n?ud contient la description d?une situation. Une situation peut �tre sp�cifique ou g�n�rique et peut �tre index�e sous plusieurs types ou individus.

    • N?ud contexte�: le n?ud contient la description d?un contexte. Ce type de n?ud est utilis� pour la repr�sentation et l?int�gration de descriptions compos�es (tel que les GCs compos�s).

    • N?ud m�taphore�: le n?ud repr�sente une m�taphore.

    La figure 3 fournit une image d?�cran d?une ontologie �dit�e avec Amine. L?ontologie est visualis�e dans la fen�tre principale avec une structure hi�rarchique. Trois n?uds repr�sentent des SC de l?ontologie (chaque type de n?ud est repr�sent� par une couleur diff�rente). Trois types de relations sont possibles�:

    • lien de sp�cialisation not� ?s-> : un type peut �tre sp�cialis� par d?autres types�;

    • lien individuel not� ?i->�: un type peut �tre reli� � plusieurs individus�;

    • lien d?utilisation not� ?u->�: un type peut �tre reli� � plusieurs situations.

    �Le contenu d?un n?ud est visualis�, si cela est souhait�, dans une autre fen�tre. La figure 3 montre d?une part le contenu du type "Homme"�: le n?ud contient une d�finition "personne de sexe m�le" et ne contient pas de canon et, d?autre part deux situations associ�es � ce type�: la situation "Homme qui boit de l?eau" et la situation "Homme qui conduit la voiture". Amine permet aussi de visualiser et d?explorer graphiquement une ontologie.

    Figure 3: Un exemple d?une ontologie dans Amine

    Cette couche fournit diff�rents types de structure et d?op�ration.

    - Structure�: en plus des objets Java �l�mentaires et des objets �l�mentaires propres � Amine, les structures de collection2 et les structures complexes3 sont fournies.

    - Op�ration�: en plus des op�rations particuli�res de chaque type de structure, un ensemble d?op�rations de base4 et un ensemble d?op�rations d?appariement5 sont fournis.

    Ces op�rations sont d�finies respectivement dans AmineObject et dans des interfaces Java impl�ment�es par les structures d?Amine. Toute classe de Java qui impl�mente AmineObject et les interfaces d?appariement deviendra un membre entier de la plate-forme ce qui am�liore l?ouverture d?Amine envers Java.

    Des versions ant�rieures de Prolog+CG ont d�j� �t� pr�sent�es dans (Kabbaj et Moulin 2001, Kabbaj et al. 2001, Kabbaj et Janta 2000). Rappelons trois caract�ristiques cl�s de Prolog+CG�:

    • un GC, simple ou compos�, est une structure primitive dans Prolog+CG, tels qu?une liste ou un terme. Un GC peut �tre utilis� comme une structure ou comme une repr�sentation d?un but�;

    • par un m�canisme d?indexation suppl�mentaire des r�gles. Prolog+CG offre une extension de Prolog fond�e sur l?objet�;

    • Prolog+CG offre une interface avec Java. Les objets Java peuvent �tre cr��s et les m�thodes peuvent �tre appel�es � partir d?un programme Prolog+CG. Aussi, Prolog+CG peut �tre activ� � partir de classes Java.

    Ces trois caract�ristiques cl�s sont toujours pr�sentes dans la version actuelle de Prolog+CG mais la r�-ing�nieurie de Prolog+CG, qui �tait n�cessaire pour son int�gration dans Amine, a induit quelques changements dans le langage. Voici les quatre modifications les plus int�ressantes.

    • La hi�rarchie des types et les SC n?est plus exprim�e � l?int�rieur d?un programme Prolog+CG. Les programmes Prolog+CG sont interpr�t�s selon une ontologie courante. La hi�rarchie des types et les SC sont lisibles directement � partir de cette ontologie (qui les contient). Aussi, Prolog+CG tente d?interpr�ter chaque identifiant dans un programme selon le lexique courant de l?ontologie courante. Si l?identifiant n?est pas trouv�, alors il est consid�r� comme un simple identifiant (sans aucune s�mantique associ�e)�;

    • La notion de projet est introduite. L?utilisateur peut consulter plusieurs programmes, et non plus un seul, � la fois ;

    • Prolog+CG h�rite des deux premi�res couches d?Amine. Toutes les structures et les op�rations d�finies dans Amine le sont �galement dans Prolog+CG. L?utilisateur peut manipuler l?ontologie courante et les lexiques associ�s selon leur API. Les op�rations, impl�ment�es en tant que m�thodes, peuvent �tre utilis�es gr�ce � la nouvelle interface entre Prolog+CG et Java�;

    • L?interface entre Prolog+CG et Java est plus simple. L?appel d?une m�thode dans Prolog+CG est tr�s similaire � son appel dans Java comme illustr� par les exemples�suivants.
      length(L, s) :- ����� // Supposons que la valeur de L est une AmineList,
      s is L:size(). � // appel de la m�thode Java size() et assignation du
      // r�sutat � la variable s.
      maxJoin(G1, G2, G3) :- ��� // appel de la m�thode maximalJoin sur G1 et G2, et
      G3 is G1:maximalJoin(G2). // assignation du r�sultat � G3

    Au lieu de d�velopper notre propre environnement de d�veloppement agent en Java, nous avons opt� pour l?int�gration d?un environnement open-source dans Amine. Nous explorons actuellement6 l?utilisation de JADE (jade.tilab.com), un environnement de d�veloppement agent open-source bas� sur Java. Il offre la possibilit� de cr�er des agents avec diff�rents types de comportement et diff�rentes capacit�s de communication. La premi�re application d�velopp�e porte sur l?utilisation de JADE et Amine dans le but de simuler une situation de tutorat o� des �tudiants interagissent avec leur enseignant. Les �tudiants posent des questions et l?enseignant r�pond. L?enseignant a un acc�s � une ontologie et conna�t quelles primitives (m�thodes du noyau) utiliser pour r�pondre � des questions particuli�res. Une autre application en cours de d�veloppement teste le cas d?un syst�me multi-agents qui poss�de des agents cognitifs simulant un conte.

    Cet article fournit un aper�u de la plate-forme Amine : plate-forme open source, impl�ment�e en Java et d�di�e au d�veloppement de syst�mes intelligents et au d�veloppement d?agents. Amine poss�de une architecture multicouche compos�e de quatre couches et de plusieurs IUG. Ces couches forment une hi�rarchie, chaque couche est construite � partir des couches inf�rieures Cependant, une couche peut �tre utilis�e sans les couches sup�rieures.

    Le travail futur aura trait � l?am�lioration de la plate-forme et au d�veloppement d?applications dans diff�rents domaines, notamment le traitement du langage naturel, la r�solution de probl�mes et la planification, les syst�mes � base de cas et les syst�mes multi-agents.



Bibliographie

Bouzouba K., Kabbaj A. (2004) Construction et manipulation d'ontologies multi-lingue, s�mantique et dynamique dans Amine Platform, Conf�rence Pl�ni�re sur les Technologies de l?Information et de la Communication COPSTIC, Rabat, Morocco, Janvier.

Kabbaj A. (1999) Synergy: a conceptual graph activation-based language, in Proc. Of the 7th International Conference on Conceptual Structures ICCS.

Kabbaj, A. et al. (2001) Uses, Improvements and Extensions of Prolog+CG: Case studies, in Proc. Of the International Conference on Conceptual structures ICCS, San Francisco, August.

Kabbaj, A., Bouzouba, K., Soudi, A. (2005) Amine Platform: an Artificial Intelligence Environment for the Development of Intelligent Systems, Information and Communication Technologies International Symposium, Tetuan, Maroc, June.

Michalski R. S. (1994) Inferential Learning Theory: Developing Theoretical Foundations for Multistrategy Learning? in Machine Learning: A Multistrategy Approach, Vol. 4, R. S. Michalski and G. Tecuci (Eds.), San Mateo, CA, Morgan Kaufmann.

Sowa, J. F. (2000) Knowledge Representation: Logical, Philosophical, and Computational Foundations, Brooks Cole Publishing.

Notes de bas de page

1�https:///sourceforge.net/projects/amine-platform
2�AmineList qui �tend la classe ArrayList de Java et AmineSet qui �tend la classe HashSet de Java
3�Term, Concept, Relation et Conceptual Graph
4�clear(), clone(), toString()
5�match(), equal(), unify(), subsume(), maximalJoin(), generalize()
6�Dans le contexte du DESA intitul� ?L?utilisation d?Amine dans le d�veloppement d?applications bas�es sur les agents? de ElHari

Pour citer cet article


Adil Kabbaj et Karim Bouzouba. �Amine : une plate-forme pour le d�veloppement de syst�mes et d?agents intelligents�. e-TI, Premier Num�ro, 28 octobre 2005, https://www.revue-eti.netdocument.php?id=364.




Revue �lectronique internationale
publi�e par SIR de l'Ecole Mohammadia d'Ing�nieurs(Maroc)
en partenariat avec l'ENSIAS (Maroc), Cnam(France), ENIT(Tunisie) et Khawarizmi'c(Maroc)
avec le soutien de l'Agence universitaire de la Francophonie.

Ecole Nationale Sup�rieure d'Informatique et d'Analyse des Syst�mes���� Conservatoire National des Arts et M�tiers���� Ecole Nationale d'Ing�nieurs de Tunis���� Ecole Mohammadia d'Ing�nieurs���� laboratoire de Systèmes d'Information répartis���� Agence Universitaire de la Francophonie���� Maroc Telecom���� khawarizm'ic����
ISSN 1114-8802