You are on page 1of 134

La plateforme AMINE

Adil KABBAJ INSEA, Rabat, Maroc

Plan
1. La thorie des Graphes Conceptuels (GC) (de John Sowa, 1984, 2000) 2. Mon travail sur la thorie des GC (1985-2005) 3. La plateforme AMINE (2005-prsent) 4. Perspective 5. Conclusion

La thorie des GC
Comme fondement de la Science Cognitive
Philosophie

Psychologie

Neurologie

Philosophie de l'Esprit, Epistmologie, Logique

Psychologie Cognitive

Neuroscience

Intelligence Artificielle

Science Cognitive

Linguistique Computationnelle

Informatique

Science Sociale Anthropologie

Linguistique

La thorie des GC
Comme thorie pour la reprsentation des Connaissances
Rseaux Smantiques Smantique du Langage Naturel Smantique des BD Equivalence avec la logique des prdicats

Comme extension de la logique de Peirce

La thorie des GC
Notations des GC Logique Rgles de formation des GC

Hirarchie des Types (Ontologie)

GC

Oprations sur les GC Acteurs et Graphe de Flux de Donnes

Structures Conceptuelles

Hirarchie des types (Ontologie)

Forme graphique

John is going to Boston by Bus


Forme linaire

CG/GC

Forme CGIF

GC compos/emboit
Tom believes that Mary wants to marry with the Sailor

Smantique dune Histoire

CG avec acteurs

Structures Conceptuelles
Vhiculent des connaissances gnrales sur les constituants dune ontologie (sur les types, les proprits, les relations, les individus, etc.)
Dfinition dun type de concept Canon pour un type de concept Schmas (Situations) pour un type de concept Description dun individu Prototype pour un type de concept Dfinition dun type de relation Canon pour un type de relation

Dfinition dun type de concept

Dfinition dun type de concept (ex 2):


type secondary_market is : [security] -attr->[already_issued], <-operate_with-[financial_market :super ]

Canon pour un type de concept


Canon pour le type Enseigner : [Enseignant]<-agnt-[Enseigner]-obj->[Cours]
[PES: Hamid]<-agnt-[Enseigner]-obj[StructureDeDonnees]-attr->[Complexe], -rcpt[Groupe: {*}] [Mecanicien: Hamid]<-agnt-[Enseigner]-obj[Boxe], -rcpt[Groupe: {*}]

Schmas pour un type de concept


Schmas pour le type secondary_market :
[loan] -attr->[already_issued], <-trade-[secondary_market]
Schma #1

[situation : [security]-convert_into->[cash]] -rcpt->[investor], Schma #2 <-provide-[secondary_market] [investment] -attr->[new], <-support-[secondary_market]

Schma #3

Description dun individu


Individual Pinchos is: [Restaurant: Pinchos]<-lieu-[Vendre]-obj->[Sandwitch: S], -recette->[Consommateur: C]; <-lieu-[Manger]-obj->[Sandwitch: S], -agnt->[Consommateur: C]; -poss->[Italien], -chrc->[ChaineResto]

Description dun prototype


prototype for Elephant(x) is: [Elephant: x]-chrc->[Height: 3.3m], -chrc->[Weight: 5400kg], -chrc->[Dark_Gray]

Dfinition dun type de relation


relationType frereDe(x, y) is : [Man:x]<-filsDe-[Person]-filsDe->[Person: y]

Canon dun type de relation


Canon for relation obj : [Action]-obj->[Object]

Canon for relation instr: [Action]-instr->[Instrument]

Rgles de formation (des GC)


Crer une copie dun GC Restreindre/Gnraliser un type, un rfrent, ou une relation Eliminer un concept ou une relation Joindre deux GC sur la base de deux concepts identiques (des deux GC) Etc.

Oprations sur les GC: Oprations Conceptuelles de haut niveau


LOpration de Matching (Appariement): opration fondamentale pour la manipulation des structures conceptuelles Matcher/Comparer deux GCs pour
Trouver linformation commune (un sous-graphe) Trouver si un GC est plus gnral (ou spcifique) quun autre GC Fusionner deux GCs Extraire un GC dun autre Etc.

La jointure de deux GC
Jointure de deux GC => un GC qui runit l information contenue dans les deux.
G1 : [Personne]agnt-[Conduire]-obj[Voiture] G2 : [Garon: Hicham]agnt-[Conduire]-manr[Vite] Resultat : [Garon: Hicham]agnt-[Conduire]-obj[Voiture], -manr[Vite]

La gnralisation de deux GC
Gnraliser deux GC => Trouver le GC qui reprsente l information commune aux deux.
G1 : [Garon: Hicham]agnt-[Conduire]-obj [Voiture]-chrc[Couleur = rouge] G2 : [Fille: Chama]agnt-[Conduire]-obj[Camion], -manr[Vite] Resultat : [Personne]agnt-[Conduire]-obj[Vehicule]

GC G1 est plus gnral que GC G2


Projeter un GC sur un autre. Ex1 :
G1 : [Homme: Khalid]<-filsDe-[Femme: Souad]-attr->[Gentile]
G2 : [Personne]<-filsDe-[Personne]

Ex2: G1 : [Homme: Khalid]<-filsDe-[Femme: Souad] <-filsDe-[Homme: Bouazza] agnt-[Aimer]-obj[Femme: Souad]


G2 : [Personne]<-filsDe-[Personne]

Contracter un GC dun autre GC


Type Sponsor-art(x) est : [Personne : x]agnt-[Donner]-obj[Argent] -rcpt[Artiste]

[Riche]attr-[Homme: Hicham]agnt-[Donner]-obj[Argent] -rcpt[Artiste] En contractant la dfinition de Sponsor-art, on aura :


[Sponsor-art : Hicham]-attr[Riche]

Exemple plus complexe de la contraction


Contraction partielle :
[Riche]attr-[Homme: Hicham] agnt-[Donner]-obj[Argent] -rcpt[Paintre: Aicha]
Le rsultat serait : [Riche]attr-[Sponsor-art: Hicham]agnt-[Donner] -rcpt[Paintre: Aicha]

Infrence avec les GC - Exemple


REGLES: [CITIZEN : x]<-memberOf-[COUNTRY : Oz] if [PERSON: x]<-AGNT-[Being_Born]-LOC->[COUNTRY : Oz].
[CITIZEN : x]<-memberOf-[COUNTRY : Oz] if [PERSON: x]<-childOf-[PERSON: y], [CITIZEN : y]<-memberOf-[COUNTRY : Oz]. [CITIZEN : x]<-memberOf-[COUNTRY : Oz] if [PERSON : x]<-RCPT-[NATURALIZE]-LOC->[COUNTRY : Oz].

FAITS: [PERSON : Tinman]-childOf->[GIRL : Dorothy], <-AGNT-[Being_Born]-LOC->[COUNTRY : Oz]. REQUETE: ?- [CITIZEN : x]<-memberOf-[COUNTRY : Oz]. {x= Tinman}; {x = Dorothy}

Mon travail sur la thorie des GC (1985-2005)


Formulation algorithmique de diffrentes oprations sur les GC Dveloppement dune extension du langage PROLOG intgrant les GC Dveloppement dun langage visuel pour les GC actifs: CAL et ensuite SYNERGY Dveloppement dun algorithme dintgration dynamique de linformation (formule en GC) en mmoire (BC) Dveloppement dun modle dontologie fonde sur la thorie des GC

La plateforme AMINE:
Plateforme pour le dveloppement des Systmes et des Agents Intelligents

Architecture gnrale dun Systme Intelligent


Connaissances Langage (Formalisme) de Reprsentation et de Manipulation des Connaissances Bases de Connaissances

Classification/Catgorisation et Intgration des Connaissances en Mmoire

Ontologie

Structures Conceptuelles

+
Noyau
Oprations Cognitives/Conceptuelles

Reprsentation & Organisation des Connaissanes Mmoire

Processus de Haut Niveau:

+
(Modes de) Raisonnements/ Infrences

-Rsolution de Problmes, -Jeux, -Planification, -Comportement, -Communication et Traitement du Langage, -Etc.

+
Stratgies dApprentissage

Architecture de la Plateforme AMINE

AMINE Platform Suite

Le Site Web ddi AMINE: Amine Web Site Utilisation acadmique mondiale de AMINE (par =/= groupes et =/= tudiants en M.Sc. et Ph.D.)
Groupe Canadien Groupe Danois qui a dvelopp aussi un site tutoriel sur les GC, sur Prolog+CG et sur Amine Groupe Anglais Plusieurs individus de Taiwan, France, Australie, Egypte, etc.

Exemple de doctorat utilisant AMINE:

The Transaction Graph for Requirements Capture in Semantic Enterprise Architectures


(software engineering) Ph.D. Thesis of Ivan Launders, Sheffield Hallam University , 2011

Tour Guid de Amine

Niveau Ontologie et BC Part 1: Structures

Ontologie - Structure (dans AMINE)


Ontologie selon la thorie des GC = Hirarchie des Types (& Individus) + Structures Conceptuelles Ontologie dans la plateforme Amine Editeur dontologies dAmine Processus manipulant les ontologies Exemples

Niveau Algbrique de AMINE: Reprsentation des Connaissances Structures et Oprations


Objets lmentaires (Nombre, Booleen, Chaine, etc.) Objets composs (Ensemble, Liste, Terme) Objets composs: GC

Reprsentation des Connaissances: GC


Editeur (multi-lingues) et multi-notations pour les GC

Reprsentation des Connaissances dans AMINE (extension)


Intgration dans AMINE du langage naturel contrl ACE (Attempt to Controlled English)
Toute information, dans AMINE, peut tre formule directement en GC ou en ACE mme les structures conceptuelles (Dfinition, Canon, Situation, Rgles, etc.) Ajout dun nouveau onglet (ACE) lditeur des GC Cration dune ontologie pour ACE (> 50 000 concepts et relations), partir de WordNet

Analyseur syntaxico-smantique du langage naturel (contrl)

Structures conceptuelles en ACE

Spcification de rgles en ACE (traduites en rgles PROLOG+CG)

Q/R en ACE

Oprations sur les GC (offerts par AMINE)


Editeur pour les oprations sur les GC

Niveau Ontologie/BC: Part 2: Processus

Recherche dInformation (et Q/R) Elaboration: Exploiter le mcanisme dhritage Explicitation

Recherche dinformation (Q/R)


Chercher un type ayant une dfinition quivalente celle spcifie Chercher une situation ayant une description quivalente celle spcifie

Lontologie ManOntology2 contient-elle un type avec comme dfinition: [Human]-sexOf->[Sex: male] ?

Le cas o linformation est plus spcifique Le cas o linformation est plus gnral

Recherche dune situation


Le cas dune description plus spcifique
Ex: Est-ce que la situation suivante existe [Strong]<-attr-[Cat]<-agnt-[Eat]-obj->[Mouse] ?
No, but the specified situation is more specific than the following description that exists in the ontology/KB/memory: [Cat]<-agnt-[Eat]-obj->[Mouse].

La situation est plus gnrale:


Ex:
[Cat]<-agnt-[Eat]-obj->[Mammal] ? It does not exist in the ontology/KB/memory but it is more general than the following description that exists in the ontology/KB/ memory: [Cat]<-agnt-[Eat]-obj->[Mouse].

Le Processus dElaboration (Hritage)

Le Processus dlaboration
Exploration ascendante de lOntologie/KB Le processus cherche fournir une formulation plus labore de la proposition spcifie au dpart. Ex: [Bus]-engn->[PetrolEngine]

Cette proposition peut tre labore en lui joignant la dfinition de Bus (exploitant ainsi la connaissance hrite):

[PetrolEngine #0] -fuel->[Gasoline], -force->[Average], <-engn-[Bus] Elle peut tre elle-mme labore davantage en joignant la dfinition de Gasoline:

[PetrolEngine #0] -fuel->[Gasoline]-state->[state = Volatile], -force->[Average], <-engn-[Bus]

Elaboration via les dfinitions et les situations

Le processus dExplicitation
Exploration descendante de lOntologie/KB Suite un dialogue avec lutilisateur, le processus cherche fournir une description plus prcise de la proposition initiale: Ex:

Niveau Apprentissage et Infrence dans AMINE


Construction dynamique dune ontologie/BC
Par Classification & par Gnralisation

Infrence base ontologie/BC


Dduction Abduction Analogie

Construction dynamique et incrmentale dune Ontologie/BC


Construction dynamique par classification Construction dynamique par gnralisation Intgration dynamique, automatique et incrmentale de Connaissance en mmoire (ontologie/KB):
Dfinition Situation/schma Rgle

Construction dynamique de la mmoire


Lintgration => comparaison de la nouvelle information avec les informations existantes
Cinq (5) cas possibles:
Pas pour classification

Construction dynamique & automatique dune hirarchie de GCs par classification ou par gnralisation

Intgration par Classification


[Cat]<-agnt-[Chase]-

-obj->[Mouse], -manr->[Furiously]

On ne gnre pas de gnralisation

Intgration par Gnralisation

SIT#0: [Robot]<-agnt-[Wash] -thme->[Truck] SIT#1: [Human]<-agnt-[Chase]-thme->[Human], -arnd->[Desk]

SIT#2: [Cat:Yojo]<-agnt-[Chase]-manr->[Vigorous], -thme->[Mouse]-attr->[Brown]


Cration de Sit #3 par gnralisation: [Animal]<-agnt-[Chase] -thme->[Animal]

S1

S3

S3

S2

S1

S5

S1

S2

S4

S6
S5

S6

Infrence base sur la mmoire (Ontologie & BC)


Dduction Abduction Analogie

Introduction
Dans lapproche classique, les faits et les rgles utiliser sont fournis au moteur dinfrence Chez lHumain, les faits et les rgles sont contenus dans la mmoire, Le moteur dinfrence devrait chercher et identifier lui-mme les faits et les rgles activer

La dduction
Utilisons lontologie CatMouse3.xml

Rule #1: if a cat eat then the cat is strong.

Rule #2: if the cat is strong then the color of the cat is black.

Dduction
Le systme prend connaissance dune proposition:

Cette assimilation peut le conduire des infrences dductives


Le systme simule lintgration de la proposition P en mmoire ( partir des lments pertinents) A la rencontre dune rgle R, si la partie condition de R est plus gnrale que P alors on applique R; on effectue la jointure de P avec la partie conclusion de R Le rsultat dune tape dinfrence devient luimme une nouvelle proposition intgrer

Labduction
On utilise la mme ontologie CatMouse3 Reformulation des deux rgles indexes sous Strong et Cat

Abduction
Le systme prend connaissance de la proposition:

Abduction
Application du mme principe quavec la dduction, Sauf quau niveau de linterprtation des rgles:
Si la partie conclusion dune rgle active est plus gnrale que la proposition, alors on tente la jointure de la partie condition de la rgle avec la proposition

Lanalogie
On utilise la mme ontologie CatMouse3 La rgle suivante sera utilise:

If a Human h (want to) Cut an Apple a, then he/she has to cut the apple a with a Knife.

Analogie
Le systme prend connaissance de la proposition suivante:

Le principe est le mme sauf quil y aurait dans ce cas une interprtation analogique des rgles:
Une fois une rgle R est localise: On applique lopration de projection entre la proposition P et la partie condition de la rgle afin de:
Vrifier une certaine similarit entre les deux proposition (en vrifiant que P se projette sur Cond/R Etablir une correspondance/mapping entre P et Cond/R

Autre exemple de lAnalogie


La rgle qui sera utilise est la suivante:
If a Man m1 wants to possess a Bicycle b which is owned by another Man m2, then the Man m1 must offer money to the Man m2, and then he must persuade him that his Bicycle b is bad.

Analogie
La proposition intgrer est la suivante:
a Country c1 wants to possess Tomatos owned by another Country c2.

Niveau Programmation dans AMINE : Les langages PROLOG+CG & SYNERGY


PROLOG+CG = PROLOG + CG + Objets + AMINE + JAVA
GC comme donne primitive/basique de PROLOG & Buts Prolog reprsents en GC => extension de lopration dunification et de linterprteur de PROLOG

SYNERGY = CG + Activation/Propagation Based Computing

Le langage PROLOG+CG Exemple 1: Programme purement GC


REGLES: [CITIZEN : x]<-memberOf-[COUNTRY : Oz] :[PERSON: x]<-AGNT-[Being_Born]-LOC->[COUNTRY : Oz].
[CITIZEN : x]<-memberOf-[COUNTRY : Oz] :[PERSON: x]<-childOf-[PERSON: y], [CITIZEN : y]<-memberOf-[COUNTRY : Oz]. [CITIZEN : x]<-memberOf-[COUNTRY : Oz] :[PERSON : x]<-RCPT-[NATURALIZE]-LOC->[COUNTRY : Oz].

FAITS: [PERSON : Tinman]-childOf->[GIRL : Dorothy], <-AGNT-[Being_Born]-LOC->[COUNTRY : Oz]. REQUETE: ?- [CITIZEN : x]<-memberOf-[COUNTRY : Oz]. {x= Tinman}; {x = Dorothy}

PROLOG+CG Exemple 2: TLN


GC comme donne primitive de PROLOG

Objet & Mthode JAVA

Opration sur les GC (offerte par AMINE

Traitement du Langage Naturel avec PROLOG+CG

Le langage SYNERGY
SYNERGY: Langage de programmation par activation des GCs Les GCs peuvent tre utiliss pour reprsenter une connaissance dclarative et aussi une connaissance procdurale et comportementale (action, opration, expression, procdure, fonction, tche, processus, etc.) Les GCs deviennent des structures excutables Programmation par activation et par propagation Programmation dirige par les donnes (forward activation) Programmation dirige par les buts (backward activation) Programmation parallle (simule)

Formulation en GC des connaissances procdurales


Un concept peut reprsenter non seulement une information statique; une donne mais aussi une connaissance procdurale (une action, une opration, ); il agit comme un processus avec un cycle de vie qui lui est propre Une relation peut reprsenter non seulement une relation conceptuelle statique mais aussi une relation procdurale, active : in, out, grd, next Paralllisme par dfaut, utilisation de next pour imposer la squentialit

Expression en GC Activation Forward/EnAvant (arithmeticOpers.cgif)

Expression en GC Activation Backward/EnArrire (exple_expr2.cgif)

GC avec fonctions dfinies

Dfinition de RecursiveFactorial

GC avec fonctions dfinies (suite)

Programmation dynamique avec les GC


Programmation dynamique dans le sens o le programme, reprsent par un GC, peut se modifier durant son excution; une automodification du programme

Exemple (complet): La BC (dynamicDB.cgif)

Schema/Situation for Age

Schema/Situation for Hire

BD utilise

La requte

Programme = Graphe dynamique & Excutable

Modification dynamique du programme par jointure de GC (situations contenus dans la BC) Jointure du schma pour Age

Programmation par Activation et par Propagation

Jointure du schma pour Hire

Conclusion
Programmation dynamique avec SYNERGY Une piste trs prometteuse, qui reste explorer Composition dynamique dune tche ou dun processus partir de sous-tches ou sous processus

Niveau Agent & Systmes MultiAgents dans AMINE

Agents dans Amine: un cadre


public interface AmineAgent { public void setup(); public void satisfyGoal(String goal); public void send(AmineAgent receiver, String content); public void send(String receiver, String content); public Object sendAndWait(AmineAgent receiver, String content); public Object sendAndWait(String receiver, String content); public void listen(); JADE: Java Agent AmineAgent }

Development Environment

AmineJadeAgent
Le corps est en Jade & lesprit en Amine !!

PPCGAmineJadeAgent
Chaque agent lui est associ un interprteur Prolog+CG

Un exemple de SMA avec Amine: LE SMA Renaldo


Renaldo est un SMA qui simule une histoire denfants. Lenvironnement de lhistoire est la fort Et les agents correspondent aux personages de lhistoire: lours John, loiseau Arthur, labeille Betty Chaque agent possde un ensemble dattributs et dattitudes; des connaissances, des croyances, des buts, des plans, des actions, etc.

Cration du SMA (Renaldo)


// Specification of the agents. In our example, we have two agents: John and Arthur. Both are PPCGAmineJadeAgent String arg1 = "John:PPCGAmineJadeAgent(John.pcg Environnement.pcg ontology.xml)"; String arg2 = "Arthur:PPCGAmineJadeAgent(Arthur.pcg Environnement.pcg ontology.xml)"; // put these arguments in an array String[] args = {arg1, arg2}; // call the constructor of a MAS by specifying its name and the agent arguments array. MAS Renaldo will create the two agents new AmineJadeMas("Renaldo", args);

Assigner un objectif/But un agent


// you can retrieve each agent object by calling the static getAgentById method. The Id of the agent is specified as a String PPCGAmineJadeAgent John = (PPCGAmineJadeAgent) AmineJadeMas.getAgentById("John");
John.satisfyGoal("Animal(John, Goal):: [Animal : John]<-pat-[SatisfyHungry]-intensityOf->[Hungry = _Level]");

Langage de description des agents et de lenvironnement: PROLOG+CG

Description de lEnvironnement
// The fact that Food honey is at position (3, 11) with quantity 100 Environment( Food ):: [Food = "honey"] -locatedIn-> [Position = [3,11]], -exists-> [Quantity = 100 ]. Environment( Food ):: [Food = "honey"] -locatedIn-> [Position = [24,6]], -exists-> [Quantity = 250 ]. // The fact that Agent John is at position (5, 5) and it is of type Bear Environment( Agent ):: [Agent = John] -locatedIn-> [CurrentPosition = [5,5]], -typeOf-> [Type = Bear ]. // The fact that trajectory Food1 is defined by the points (5, 5), (3, 5), (4, 7), (2, 9), (3, 11), that there is honey at position (3, 11) which is Food Environment( Trajectory ):: [ Trajectory = "Food1"]-has-> [ List = [ [5,5] , [3,5] , [4,7] , [2,9], [3,11] ] ], -obj-> [ Object = "honey" ], -typeOf-> [ Type = Food ].

Description de lagent John La personnalit, les amis et autres connaissances


Bear( John). Bear( John, Personality):: [Bear : John] <-actor- [Character] -has-> [List = [Naive, dishonest, Vanity, Lasy]]. //knowledge and relationships of the agent Bear( John, Friend, Knowledge ):: [Bear : John] -has-> [List = [ [Agent ] <-typeOf- [ Type = Bird] -actor-> [Name = Arthur], [Agent ] <-typeOf- [ Type = Bee] -actor-> [Name = Betty] ]]. Bear( John, Friend, Knowledge ):: [Type = Agent ] -locatedIn-> [Position = [16,7]], -follow-> [Trajectory = "Agent1"], <-typeOf- [ Type = Bird] -actor-> [Name = Arthur]. Bear( John, Food, Knowledge ):: [Type = Food ] -locatedIn-> [Position = [3,11]], -follow->[Trajectory = "Food1"]. Bear( John, Knowledge ):: [Bear : John] -locatedIn-> [CurrentPosition = [5,5]]. Bear( John, Perception ):: [Bear : John] -has-> [Perception = 2].

Description de lagent John Connaissances comportementales: Buts/Plans/Actions


// Goal of an Animal Animal(_Agent, Goal)::[Animal : _Agent]<-pat-[SatisfyHungry]-intensityOf->[Hungry = _Level] :Animal(_Agent, Plan)::[Animal : _Agent]<-actor-[Plan2_SatisfyHungry]-intensityOf->[Hungry = _Level]. // Plan for SatisfyHungry Animal( _Agent, Plan ):: [Animal : _Agent] <-actor-[Plan1_SatisfyHungry] -intensityOf-> [Hungry = _Level] :getAnimalPosition( _Agent, _CurrentPosition ), Animal( _Agent, Procedure ):: [Animal : _Agent] <-actor- [PerceptionOf]-id-> [Name = "Neigberhood"], Percevoir la nourriture et dterminer sa position -obj-> [Food = _Food], -locatedIn-> [Position = _FoodPosition], Animal( _Agent, Procedure ):: [Animal : _Agent] <-actor- [Trajectory]-id-> [Name = "Final"], Se dplacer la position de la nourriture -locatedIn-> [CurrentPosition = _CurrentPosition], -to-> [TargetPosition = _FoodPosition], getQuantityOfFoodForAnimal( _Agent, _Food, _Level, _Quantity ), Animal( _Agent, PrimitiveAction ):: [Animal : _Agent] <-actor- [Eat] -obj-> [Food = _Food] -numberOf-> [Quantity = _Quantity], -locatedIn-> [Position = _FoodPosition], !.

// Another plan is to ask a friend Animal( _Agent, Plan ):: [Animal : _Agent] <-actor-[Plan2_SatisfyHungry] -intensityOf-> [Hungry = _Level] :getAnimalPosition( _Agent, _CurrentPosition ), print("I am now in "), print (_CurrentPosition), Animal( _Agent, Procedure ):: [Animal : _Agent] <-actor- [PerceptionOf]-id-> [Name = "Neigberhood"], -obj-> [Agent = _OtherAgent], -locatedIn-> [Position = _OtherAgentPosition], Animal( _Agent, Procedure ):: [Animal : _Agent] <-actor- [Trajectory]-id-> [Name = "Final"], -locatedIn-> [CurrentPosition = _CurrentPosition], -to-> [TargetPosition = _OtherAgentPosition], AskAnimalFriendForFood( _Agent,_OtherAgent), Animal( _Agent, Plan ):: [Animal : _Agent] <-actor- [Plan1_SatisfyHungry] -intensityOf-> [Hungry = _Level],!.

Perspective
Les perspectives sont nombreuses:
Utilisation de la couche Ontologie et BC Utilisation des GC et des oprations sur les GC Utilisation des stratgies dapprentissage et dinfrence Utilisation de PROLOG+CG Utilisation de SYNERGY Utilisation de la couche Agent/SMA

N.B.: CG community: Une grande communaut internationale

Conclusion
Beaucoup a t fait Beaucoup reste faire !!
Au niveau du re-engineering de AMINE afin de le rendre plus oprationnelle et plus professionnelle Au niveau du dveloppement/extension dAMINE Au niveau de lutilisation dAMINE

Invitation
AMINE possde un grand avenir SI il est retravaill, dvelopp, tendu et utilis dans diffrentes applications relles Cest ce que votre quipe peut apporter