La Plateforme AMINE

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