134
La plateforme AMINE Adil KABBAJ INSEA, Rabat, Maroc

La Plateforme AMINE

Embed Size (px)

Citation preview

Page 1: La Plateforme AMINE

La plateforme AMINE

Adil KABBAJINSEA, Rabat, Maroc

Page 2: La Plateforme AMINE

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

Page 3: La Plateforme AMINE

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

Page 4: La Plateforme AMINE

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

Page 5: La Plateforme AMINE

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

Page 6: La Plateforme AMINE

Hiérarchie des types (Ontologie)

Page 7: La Plateforme AMINE

CG/GC

John is going to Boston by Bus

Forme graphique

Forme linéaire

Forme CGIF

Page 8: La Plateforme AMINE
Page 9: La Plateforme AMINE
Page 10: La Plateforme AMINE

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

Page 11: La Plateforme AMINE
Page 12: La Plateforme AMINE
Page 13: La Plateforme AMINE
Page 14: La Plateforme AMINE

Sémantique d’une Histoire

Page 15: La Plateforme AMINE
Page 16: La Plateforme AMINE

CG avec acteurs

Page 17: La Plateforme AMINE
Page 18: La Plateforme AMINE

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

Page 19: La Plateforme AMINE

Définition d’un type de concept

Page 20: La Plateforme AMINE

Définition d’un type de concept (ex 2):

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

Page 21: La Plateforme AMINE

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: {*}]

Page 22: La Plateforme AMINE

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

Page 23: La Plateforme AMINE

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]

Page 24: La Plateforme AMINE

Description d’un prototype

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

Page 25: La Plateforme AMINE

Définition d’un type de relation

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

Page 26: La Plateforme AMINE

Canon d’un type de relation

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

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

Page 27: La Plateforme AMINE

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.

Page 28: La Plateforme AMINE

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.

Page 29: La Plateforme AMINE

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]

Page 30: La Plateforme AMINE

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]

Page 31: La Plateforme AMINE

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]

Page 32: La Plateforme AMINE

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]

Page 33: La Plateforme AMINE

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]

Page 34: La Plateforme AMINE

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}

Page 35: La Plateforme AMINE

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

Page 36: La Plateforme AMINE

La plateformeAMINE:

Plateforme pour le développement des Systèmes et des Agents

Intelligents

Page 37: La Plateforme AMINE

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:

Page 38: La Plateforme AMINE

Architecture de la Plateforme AMINE

Page 39: La Plateforme AMINE

AMINE Platform Suite

Page 40: La Plateforme AMINE

• 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.

Page 41: La Plateforme AMINE

• 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

Page 42: La Plateforme AMINE

Tour Guidé de Amine

Page 43: La Plateforme AMINE

Niveau Ontologie et BCPart 1: Structures

Page 44: La Plateforme AMINE

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

Page 45: La Plateforme AMINE

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

Page 46: La Plateforme AMINE

Représentation des Connaissances: GC

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

Page 47: La Plateforme AMINE
Page 48: La Plateforme AMINE
Page 49: La Plateforme AMINE

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

Page 50: La Plateforme AMINE

Analyseur syntaxico-sémantique du langage naturel (contrôlé)

Page 51: La Plateforme AMINE

Structures conceptuelles en ACE

Page 52: La Plateforme AMINE

Spécification de règles en ACE(traduites en règles PROLOG+CG)

Page 53: La Plateforme AMINE

Q/R en ACE

Page 54: La Plateforme AMINE

Opérations sur les GC (offerts par AMINE)

• Editeur pour les opérations sur les GC

Page 55: La Plateforme AMINE
Page 56: La Plateforme AMINE

Niveau Ontologie/BC:Part 2: Processus

• Recherche d’Information (et Q/R)• Elaboration: Exploiter le mécanisme d’héritage• Explicitation

Page 57: La Plateforme AMINE
Page 58: La Plateforme AMINE

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

Page 59: La Plateforme AMINE

• L’ontologie “ManOntology2” contient-elle un type avec comme définition:

[Human]-sexOf->[Sex: male] ?

Page 60: La Plateforme AMINE
Page 61: La Plateforme AMINE
Page 62: La Plateforme AMINE
Page 63: La Plateforme AMINE
Page 64: La Plateforme AMINE

• Le cas où l’information est plus spécifique• Le cas où l’information est plus général

Page 65: La Plateforme AMINE

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].

Page 66: La Plateforme AMINE

• 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].

Page 67: La Plateforme AMINE

Le Processus d’Elaboration (Héritage)

Page 68: La Plateforme AMINE

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):

Page 69: La Plateforme AMINE

• [PetrolEngine #0] - -fuel->[Gasoline], -force->[Average], <-engn-[Bus]• Elle peut être elle-même élaborée davantage

en joignant la définition de Gasoline:

Page 70: La Plateforme AMINE

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

Page 71: La Plateforme AMINE

Elaboration via les définitions et les situations

Page 72: La Plateforme AMINE

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:

Page 73: La Plateforme AMINE
Page 74: La Plateforme AMINE

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

Page 75: La Plateforme AMINE

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

Page 76: La Plateforme AMINE

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

Page 77: La Plateforme AMINE

Construction dynamique & automatique d’une hiérarchie de GCs par classification ou par généralisation

Page 78: La Plateforme AMINE

[Cat]<-agnt-[Chase]- -obj->[Mouse],

-manr->[Furiously]

Intégration par Classification

On ne génère pasde généralisation

Page 79: La Plateforme AMINE

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

Page 80: La Plateforme AMINE

S1

S2

S3

S4

S1

S2

S1

S3

S5

Page 81: La Plateforme AMINE

S5

S6

S6

Page 82: La Plateforme AMINE

Inférence basée sur la mémoire (Ontologie & BC)

DéductionAbductionAnalogie

Page 83: La Plateforme AMINE

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

Page 84: La Plateforme AMINE

La déduction• Utilisons l’ontologie « CatMouse3.xml »

Page 85: La Plateforme AMINE

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.

Page 86: La Plateforme AMINE

DéductionLe système prend connaissance d’une proposition:

Page 87: La Plateforme AMINE

• 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

Page 88: La Plateforme AMINE
Page 89: La Plateforme AMINE

L’abduction• On utilise la même ontologie « CatMouse3 »• Reformulation des deux règles indexées sous

« Strong » et « Cat »

Page 90: La Plateforme AMINE

Abduction

• Le système prend connaissance de la proposition:

Page 91: La Plateforme AMINE

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

Page 92: La Plateforme AMINE
Page 93: La Plateforme AMINE

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.

Page 94: La Plateforme AMINE

Analogie

• Le système prend connaissance de la proposition suivante:

Page 95: La Plateforme AMINE

• 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

Page 96: La Plateforme AMINE
Page 97: La Plateforme AMINE

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.

Page 98: La Plateforme AMINE

Analogie

• La proposition à intégrer est la suivante:a Country c1 wants to possess Tomatos owned by another Country c2.

Page 99: La Plateforme AMINE
Page 100: La Plateforme AMINE

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

Page 101: La Plateforme AMINE

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

Page 102: La Plateforme AMINE

PROLOG+CGExemple 2: TLN

GC comme donnée « primitive » de PROLOG

Page 103: La Plateforme AMINE

Objet & Méthode JAVA

Opération sur les GC (offerte par AMINE

Page 104: La Plateforme AMINE

Traitement du Langage Naturel avec PROLOG+CG

Page 105: La Plateforme AMINE

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)

Page 106: La Plateforme AMINE

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é

Page 107: La Plateforme AMINE

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

Page 108: La Plateforme AMINE

Expression en GC –Activation « Backward/EnArrière »

(exple_expr2.cgif)

Page 109: La Plateforme AMINE

GC avec fonctions définies

Définition deRecursiveFactorial

Page 110: La Plateforme AMINE

GC avec fonctions définies (suite)

Page 111: La Plateforme AMINE

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

Page 112: La Plateforme AMINE

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

Schema/Situation for Age

Page 113: La Plateforme AMINE

Schema/Situation for Hire

Page 114: La Plateforme AMINE

BD utilisée

Page 115: La Plateforme AMINE

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

Page 116: La Plateforme AMINE

Programmation parActivation et par

Propagation

Jointure du schéma pour Hire

Page 117: La Plateforme AMINE

• 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

Page 118: La Plateforme AMINE

Niveau Agent & Systèmes Multi-Agents dans AMINE

Page 119: La Plateforme 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

Page 120: La Plateforme AMINE

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.

Page 121: La Plateforme AMINE

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);

Page 122: La Plateforme AMINE

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]");

Page 123: La Plateforme AMINE

Langage de description des agents et de l’environnement:

PROLOG+CG

Page 124: La Plateforme AMINE

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 ].

Page 125: La Plateforme AMINE

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].

Page 126: La Plateforme AMINE

// 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

Page 127: La Plateforme AMINE

// 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],!.

Page 128: La Plateforme AMINE
Page 129: La Plateforme AMINE
Page 130: La Plateforme AMINE
Page 131: La Plateforme AMINE

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

Page 132: La Plateforme AMINE

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

Page 133: La Plateforme 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

Page 134: La Plateforme AMINE

Merci pour votre attention