View
168
Download
1
Category
Preview:
Citation preview
La plateforme AMINE
Adil KABBAJINSEA, Rabat, Maroc
Plan
1. La théorie des Graphes Conceptuels (GC) (de John Sowa, 1984, 2000)
2. Mon travail sur la théorie des GC (1985-2005)3. La plateforme AMINE (2005-présent)4. Perspective5. Conclusion
La théorie des GC• Comme fondement de la Science Cognitive
Philosophie
Philosophie de l'Esprit, Epistémologie, Logique
Psychologie
Psychologie Cognitive
Neurologie
Neuroscience
Informatique
Intelligence Artificielle Science
Cognitive
Linguistique
LinguistiqueComputationne
lle
Science Sociale
Anthropologie
La théorie des GC
• Comme théorie pour la représentation des Connaissances– Réseaux Sémantiques– Sémantique du Langage Naturel– Sémantique des BD– Equivalence avec la logique des prédicats
• Comme extension de la logique de Peirce
La théorie des GC
GCHiérarchie des Types
(Ontologie)
Structures Conceptuelles
Notations des GC
Opérations sur les GC
Acteurs et Graphe de Flux de Données
Règles de formationdes GC
Logique
Hiérarchie des types (Ontologie)
CG/GC
John is going to Boston by Bus
Forme graphique
Forme linéaire
Forme CGIF
GC composé/emboitéTom believes that Mary wants to marry with the Sailor
Sémantique d’une Histoire
CG avec acteurs
Structures Conceptuelles
• Véhiculent des connaissances générales sur les constituants d’une ontologie (sur les types, les propriétés, les relations, les individus, etc.)– Définition d’un type de concept– Canon pour un type de concept– Schémas (Situations) pour un type de concept– Description d’un individu– Prototype pour un type de concept– Définition d’un type de relation– Canon pour un type de relation
Définition d’un type de concept
Définition d’un 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: {*}]
Schémas pour un type de conceptSchémas pour le type secondary_market :[loan] - -attr->[already_issued], <-trade-[secondary_market]
[situation : [security]-convert_into->[cash]] - -rcpt->[investor], <-provide-[secondary_market]
[investment] - -attr->[new], <-support-[secondary_market]
Schéma #1
Schéma #2
Schéma #3
Description d’un 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 d’un prototype
prototype for Elephant(x) is: [Elephant: x]- -chrc->[Height: 3.3m], -chrc->[Weight: 5400kg], -chrc->[Dark_Gray]
Définition d’un type de relation
relationType frereDe(x, y) is : [Man:x]<-filsDe-[Person]-filsDe->[Person: y]
Canon d’un type de relation
Canon for relation obj : [Action]-obj->[Object]
Canon for relation instr: [Action]-instr->[Instrument]
Règles de formation (des GC)
• Créer une copie d’un GC• Restreindre/Généraliser un type, un référent,
ou une relation• Eliminer un concept ou une relation• Joindre deux GC sur la base de deux concepts
identiques (des deux GC)• Etc.
Opérations sur les GC: Opérations Conceptuelles de haut niveau
• L’Opération de Matching (Appariement): opération fondamentale pour la manipulation des structures conceptuelles
• Matcher/Comparer deux GCs pour …– Trouver l’information commune (un sous-graphe)– Trouver si un GC est plus général (ou spécifique) qu’un
autre GC– Fusionner deux GCs– Extraire un GC d’un autre– Etc.
La jointure de deux GC
• Jointure de deux GC => un GC qui réunit l ’information contenue dans les deux.
G1 : [Personne]agnt-[Conduire]-obj[Voiture]
G2 : [Garçon: Hicham]agnt-[Conduire]-manr[Vite]
Resultat : [Garçon: Hicham]agnt-[Conduire]--obj[Voiture],-manr[Vite]
La généralisation de deux GC
• Généraliser deux GC => Trouver le GC qui représente l ’information commune aux deux.
G1 : [Garçon: 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 général 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 d’un autre GC
[Riche]attr-[Homme: Hicham]agnt-[Donner]- -obj[Argent] -rcpt[Artiste]
En contractant la définition de Sponsor-art, on aura :
[Sponsor-art : Hicham]-attr[Riche]
Type Sponsor-art(x) est : [Personne : x]agnt-[Donner]-
-obj[Argent]-rcpt[Artiste]
Exemple plus complexe de la contraction
• Contraction partielle :[Riche]attr-[Homme: Hicham]
agnt-[Donner]--obj[Argent]-rcpt[Paintre: Aicha]
Le résultat serait :[Riche]attr-[Sponsor-art: Hicham]agnt-[Donner]
-rcpt[Paintre: Aicha]
Inférence avec les GC - ExempleREGLES:
[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 théorie des GC(1985-2005)
• Formulation algorithmique de différentes opérations sur les GC
• Développement d’une extension du langage PROLOG intégrant les GC
• Développement d’un langage visuel pour les GC actifs: CAL et ensuite SYNERGY
• Développement d’un algorithme d’intégration dynamique de l’information (formulée en GC) en mémoire (BC)
• Développement d’un modèle d’ontologie fondée sur la théorie des GC
La plateformeAMINE:
Plateforme pour le développement des Systèmes et des Agents
Intelligents
Architecture générale d’un Système Intelligent
Connaissances
OntologieBases de
ConnaissancesStructures
Conceptuelles
Représentation & Organisation des Connaissanes
Mémoire
Langage (Formalisme) de Représentation et de
Manipulation des Connaissances
Opérations Cognitives/Conceptuelles
+ Classification/Catégorisation et Intégration des
Connaissances en Mémoire
+
(Modes de) Raisonnements/ Inférences
+
Stratégies d’Apprentissage
+
Noyau
-Résolution de Problèmes,-Jeux,-Planification,-Comportement,-Communication et Traitement du Langage,-Etc.
Processus de Haut Niveau:
Architecture de la Plateforme AMINE
AMINE Platform Suite
• Le Site Web dédié à AMINE: Amine Web Site• Utilisation académique mondiale de AMINE
(par =/= groupes et =/= étudiants en M.Sc. et Ph.D.) – Groupe Canadien– Groupe Danois … qui a développé 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 BCPart 1: Structures
Ontologie - Structure (dans AMINE)
• Ontologie selon la théorie des GC = Hiérarchie des Types (& Individus) + Structures Conceptuelles
• Ontologie dans la plateforme Amine• Editeur d’ontologies d’Amine• Processus manipulant les ontologies• Exemples
Niveau Algébrique de AMINE: Représentation des Connaissances Structures et Opérations
• Objets élémentaires (Nombre, Booleen, Chaine, etc.)
• Objets composés (Ensemble, Liste, Terme)• Objets composés: GC
Représentation des Connaissances: GC
• Editeur (multi-lingues) et multi-notations pour les GC
Représentation des Connaissances dans AMINE (extension)
• Intégration dans AMINE du langage naturel contrôlé ACE (Attempt to Controlled English)– Toute information, dans AMINE, peut être
formulée directement en GC ou en ACE– … même les structures conceptuelles (Définition,
Canon, Situation, Règles, etc.)– Ajout d’un nouveau onglet (ACE) à l’éditeur des GC– Création d’une ontologie pour ACE (> 50 000
concepts et relations), à partir de WordNet
Analyseur syntaxico-sémantique du langage naturel (contrôlé)
Structures conceptuelles en ACE
Spécification de règles en ACE(traduites en règles PROLOG+CG)
Q/R en ACE
Opérations sur les GC (offerts par AMINE)
• Editeur pour les opérations sur les GC
Niveau Ontologie/BC:Part 2: Processus
• Recherche d’Information (et Q/R)• Elaboration: Exploiter le mécanisme d’héritage• Explicitation
Recherche d’information (Q/R)
• Chercher un type ayant une définition équivalente à celle spécifiée
• Chercher une situation ayant une description équivalente à celle spécifiée
• L’ontologie “ManOntology2” contient-elle un type avec comme définition:
[Human]-sexOf->[Sex: male] ?
• Le cas où l’information est plus spécifique• Le cas où l’information est plus général
Recherche d’une situation
• Le cas d’une description plus spécifique– 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 générale:– 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 d’Elaboration (Héritage)
Le Processus d’élaboration
• Exploration ascendante de l’Ontologie/KB• Le processus cherche à fournir une
formulation plus élaborée de la proposition spécifiée au départ.
• Ex: [Bus]-engn->[PetrolEngine]
• Cette proposition peut être élaborée en lui joignant la définition de Bus (exploitant ainsi la connaissance héritée):
• [PetrolEngine #0] - -fuel->[Gasoline], -force->[Average], <-engn-[Bus]• Elle peut être elle-même élaborée davantage
en joignant la définition de Gasoline:
• [PetrolEngine #0] - -fuel->[Gasoline]-state->[state = Volatile], -force->[Average], <-engn-[Bus]
Elaboration via les définitions et les situations
Le processus d’Explicitation
• Exploration descendante de l’Ontologie/KB• Suite à un dialogue avec l’utilisateur, le
processus cherche à fournir une description plus précise de la proposition initiale:
• Ex:
Niveau Apprentissage et Inférence dans AMINE
• Construction dynamique d’une ontologie/BC– Par Classification & par Généralisation
• Inférence basée ontologie/BC– Déduction– Abduction– Analogie
Construction dynamique et incrémentale d’une Ontologie/BC
• Construction dynamique par classification• Construction dynamique par généralisationÞ Intégration dynamique, automatique et incrémentale
de Connaissance en mémoire (ontologie/KB): Définition Situation/schéma Règle
Construction dynamique de la mémoire
• L’intégration => comparaison de la nouvelle information avec les informations existantes– Cinq (5) cas possibles:
Pas pour classification
Construction dynamique & automatique d’une hiérarchie de GCs par classification ou par généralisation
[Cat]<-agnt-[Chase]- -obj->[Mouse],
-manr->[Furiously]
Intégration par Classification
On ne génère pasde généralisation
SIT#1: [Human]<-agnt-[Chase]-
-thme->[Human],-arnd->[Desk]
SIT#0: [Robot]<-agnt-[Wash] -thme->[Truck]
SIT#2: [Cat:Yojo]<-agnt-[Chase]- -manr->[Vigorous], -thme->[Mouse]-attr->[Brown]
Création de Sit #3 par généralisation:
[Animal]<-agnt-[Chase] -thme->[Animal]
Intégration parGénéralisation
S1
S2
S3
S4
S1
S2
S1
S3
S5
S5
S6
S6
Inférence basée sur la mémoire (Ontologie & BC)
DéductionAbductionAnalogie
Introduction
• Dans l’approche classique, les faits et les règles à utiliser sont fournis au moteur d’inférence
• Chez l’Humain, les faits et les règles sont contenus dans la mémoire,
• Le moteur d’inférence devrait chercher et identifier lui-même les faits et les règles à activer
La déduction• Utilisons l’ontologie « 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.
DéductionLe système prend connaissance d’une proposition:
• Cette assimilation peut le conduire à des inférences déductives– Le système simule l’intégration de la proposition P
en mémoire (à partir des éléments pertinents)– A la rencontre d’une règle R, si la partie condition
de R est plus générale que P alors on applique R; on effectue la jointure de P avec la partie conclusion de R
– Le résultat d’une étape d’inférence devient lui-même une nouvelle proposition à intégrer
L’abduction• On utilise la même ontologie « CatMouse3 »• Reformulation des deux règles indexées sous
« Strong » et « Cat »
Abduction
• Le système prend connaissance de la proposition:
Abduction
• Application du même principe qu’avec la déduction,
• Sauf qu’au niveau de l’interprétation des règles:– Si la partie conclusion d’une règle activée est plus
générale que la proposition, alors on tente la jointure de la partie condition de la règle avec la proposition
L’analogie• On utilise la même ontologie « CatMouse3 »• La règle suivante sera utilisée:
If a Human h (want to) Cut an Apple a, then he/she has to cut the apple a with a Knife.
Analogie
• Le système prend connaissance de la proposition suivante:
• Le principe est le même sauf qu’il y aurait dans ce cas une interprétation analogique des règles:– Une fois une règle R est localisée:– On applique l’opération de projection entre la
proposition P et la partie condition de la règle afin de:
• Vérifier une certaine similarité entre les deux proposition (en vérifiant que P se projette sur Cond/R
• Etablir une correspondance/mapping entre P et Cond/R
Autre exemple de l’Analogie• La règle qui sera utilisée 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 à intégrer 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 donnée « primitive/basique » de PROLOG &– Buts Prolog représentés en GC=> extension de l’opération d’unification et de l’interpréteur de
PROLOG
• SYNERGY = CG + Activation/Propagation Based Computing
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}
Le langage PROLOG+CGExemple 1: Programme purement GC
PROLOG+CGExemple 2: TLN
GC comme donnée « primitive » de PROLOG
Objet & Méthode JAVA
Opération 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 utilisés pour représenter une
connaissance déclarative et aussi une connaissance procédurale et comportementale (action, opération, expression, procédure, fonction, tâche, processus, etc.)
• Les GCs deviennent des structures exécutables• Programmation par activation et par propagation• Programmation dirigée par les données (forward activation)• Programmation dirigée par les buts (backward activation)• Programmation parallèle (simulée)
Formulation en GC des connaissances procédurales
• Un concept peut représenter non seulement une « information statique; une donnée » mais aussi une connaissance procédurale (une action, une opération, …); il agit comme un processus avec un cycle de vie qui lui est propre
• Une relation peut représenter non seulement une relation conceptuelle « statique » mais aussi une relation « procédurale, active »: in, out, grd, next
• Parallélisme par défaut, utilisation de « next » pour imposer la séquentialité
Expression en GC –Activation « Forward/EnAvant »(arithmeticOpers.cgif)
Expression en GC –Activation « Backward/EnArrière »
(exple_expr2.cgif)
GC avec fonctions définies
Définition deRecursiveFactorial
GC avec fonctions définies (suite)
Programmation dynamique avec les GC
• Programmation dynamique dans le sens où le programme, représenté par un GC, peut se modifier durant son exécution; une auto-modification du programme
Exemple (complet): La BC(dynamicDB.cgif)
Schema/Situation for Age
Schema/Situation for Hire
BD utilisée
Modification dynamique du programme… par jointure de GC (situations contenus dans la BC)
Programme = Graphe dynamique& Exécutable
La requête
Jointure du schéma pour Age
Programmation parActivation et par
Propagation
Jointure du schéma pour Hire
• Composition dynamique d’une tâche ou d’un processus à partir de sous-tâches ou sous processus
ConclusionProgrammation dynamique avec SYNERGY –
Une piste très prometteuse, qui reste à explorer
Niveau Agent & Systèmes Multi-Agents dans AMINE
Agents dans Amine: un cadre
AmineAgent
AmineJadeAgent
PPCGAmineJadeAgent
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(); }
Chaque agent lui est associé un interpréteur Prolog+CG
Le « corps » est en Jade &« l’esprit » en Amine !!
JADE: Java Agent Development Environment
Un exemple de SMA avec Amine: LE SMA Renaldo
• Renaldo est un SMA qui simule une histoire d’enfants.• L’environnement de l’histoire est la forêt• Et les agents correspondent aux personages de
l’histoire: l’ours John, l’oiseau Arthur, l’abeille Betty• Chaque agent possède un ensemble d’attributs et
d’attitudes; des connaissances, des croyances, des buts, des plans, des actions, etc.
Création 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 arrayString[] args = {arg1, arg2}; // call the constructor of a MAS by specifying its name and the
agent arguments array. MAS Renaldo will create the two agentsnew 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 l’environnement:
PROLOG+CG
Description de l’Environnement// The fact that Food honey is at position (3, 11) with quantity 100Environment( 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 BearEnvironment( 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 FoodEnvironment( Trajectory ):: [ Trajectory = "Food1"]- -has-> [ List = [ [5,5] , [3,5] , [4,7] , [2,9], [3,11] ] ], -obj-> [ Object = "honey" ], -typeOf-> [ Type = Food ].
Description de l’agent 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 agentBear( 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].
// Goal of an AnimalAnimal(_Agent, Goal)::[Animal : _Agent]<-pat-[SatisfyHungry]-intensityOf->[Hungry = _Level] :- Animal(_Agent, Plan)::[Animal : _Agent]<-actor-[Plan2_SatisfyHungry]-intensityOf->[Hungry = _Level]. // Plan for SatisfyHungryAnimal( _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 déterminer sa position -obj-> [Food = _Food], -locatedIn-> [Position = _FoodPosition], Animal( _Agent, Procedure ):: [Animal : _Agent] <-actor- [Trajectory]- -id-> [Name = "Final"], Se déplacer à 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], !.
Description de l’agent John –Connaissances comportementales: Buts/Plans/Actions
// Another plan is to ask a friendAnimal( _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 opérations sur les GC– Utilisation des stratégies d’apprentissage et d’inférence– 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 opérationnelle et plus professionnelle
– Au niveau du développement/extension d’AMINE– Au niveau de l’utilisation d’AMINE
Invitation
• AMINE possède un grand avenir SI il est retravaillé, développé, étendu et utilisé dans différentes applications réelles
• C’est ce que votre équipe peut apporter
Merci pour votre attention
Recommended