• Aucun résultat trouvé

4.3 Regrouper et caract´eriser les descriptions des entit´es

4.3.1 Les cat´egories d’entit´es

Nous avons vu que tous les composants du syst`eme multi-agents sont au mˆeme niveau d’abs- traction, c’est `a dire sont des entit´es. Nous ne diff´erencions pas a priori les agents des messages ou des autres objets. De fa¸con `a trouver un premier niveau d’information concernant les classes des entit´es, nous construisons des cat´egories d’entit´es. Pour cela, nous utilisons l’information structurelle d’existence des propri´et´es observables : si une valeur est d´efinie pour cette propri´et´e, alors nous disons que cette propri´et´e existe.

Nous d´efinissons l’ensemble Pω des propri´et´es effectivement d´ecrites d’une entit´e ω tel que : ω∈ Ω, Pω = {pj ∈ P |pj(ω) 6= null}

Pω est l’ensemble des propri´et´es pj de l’entit´e ω dont la valeur est diff´erente de null. Par exemple, soit a un agent utilisateur de la cit´e digitale, Pa = {id, nom, dispo, age, sexe, lieu} est l’ensemble de ses propri´et´es.

Nous appelons Pdescription de ω l’ensemble de propri´et´es Pω. De fa¸con g´en´erale, une Pdes- cription Pi est un sous-ensemble de propri´et´es de P .

Une cat´egorie est un sous-ensemble d’entit´es d´ecrites par un mˆeme sous-ensemble de pro- pri´et´es. Formellement, une cat´egorie Cat est donc une application de l’ensemble des propri´et´es P vers l’ensemble des parties de Ω telle que :

P 7→ P(Ω), Cat(Pi) = {ω ∈ Ω|∀pj ∈ Pi, pj(ω) 6= null}

Une cat´egorie Cat(Pi) est un sous-ensemble de Ω, elle contient toutes les entit´es ω telles que leur Pdescription contient Pi.

Dans l’exemple de la cit´e digitale, la cat´egorie de Pa est l’ensemble des agents utilisateur, puisque tous les agents utilisateur poss`edent les propri´et´es {id, nom, dispo, age, sexe, lieu} dans leurs descriptions, et seulement les agents utilisateur puisque les agents organisation ne sont pas d´ecrits par les propri´et´es {dispo, age, sexe, lieu}.

La cat´egorie d’une Pdescription Pi contient toutes les entit´es poss´edant au moins les pro- pri´et´es Pi, ainsi que les ´eventuelles entit´es ωj telle que Pi ⊂ Pwj. Dans l’exemple pr´ec´edent, Cat(Pa) contient tous les agents utilisateur. Si nous d´efinissons une Pdescription Pω = {id, nom}, celle-ci contiendra non seulement les agents utilisateur, mais ´egalement les agents organisation puisque les agents des deux cat´egories poss`edent ces propri´et´es.

Pour r´ecapituler, un ensemble d’entit´es peut ˆetre d´efini de deux fa¸cons, soit par une Pdes- cription soit par une assertion. Par exemple, si l’assertion d’un filtre fa d´ecrivant l’agent est [id = “a3”], la Pdescription de faest Pfa = {id}. La cat´egorie d’une Pdescription contient toutes les entit´es poss´edant au moins les propri´et´es de la Pdescription Pfa. L’extension d’une assertion contient toutes les entit´es poss´edant au moins toutes les propri´et´es test´ees dans l’assertion Pfa et dont chacune des propri´et´es satisfait les tests. Par exemple, E(fa) contient uniquement l’agent ayant sa propri´et´e id ´egale `a “a3”, tandis que Cat(Pfa) contient toutes les entit´es poss´edant la

4.3. Regrouper et caract´eriser les descriptions des entit´es propri´et´e id.

Op´erations sur les ensembles de propri´et´es

Nous avons vu qu’un ensemble de propri´et´es est la description en intension d’une cat´egorie d’entit´es, et qu’un filtre doit inclure plusieurs descriptions en intention d’entit´es : la classe d’agent devant recevoir le message, la classe de messages concern´ee, et les entit´es du contexte. La d´efinition d’un filtre donne la Pdescription des cat´egories d’entit´es concern´ees avec Pfa, Pfm et PfC.

Par exemple, si une connexion est li´ee `a la valeur de la position d’un agent, alors la Pdescrip- tion en intension du filtre correspondant Pfa contient la propri´et´e lieu. Lorsque la Pdescription du filtre est restreinte `a cette seule propri´et´e, alors toutes les entit´es ayant cette propri´et´e dans leur description, par exemple certains messages, feront ´egalement partie de l’extension du filtre dans Ω. La recherche des agents concern´es par un filtre ne doit donc ˆetre effectu´ee que parmi l’ensemble A des agents, soit {ω|ω ∈ Cat(Pfa) ∩ A}. De la mˆeme fa¸con, la re- cherche des messages concern´es par un filtre est effectu´ee parmi l’ensemble des messages M, soit {ω|ω ∈ Cat(Pfm) ∩ M}.

A chaque filtre f correspond un tuple hCat(Pfa) ∩ A, Cat(Pfm) ∩ M, h∀ω ∈ C, Cat(Pasω)ii. Les deux premiers ´el´ements du tuple sont les agents et messages potentiellement concern´es par f . Le troisi`eme ´el´ement du tuple est lui-mˆeme un tuple, car les conditions sur le contexte d’un filtre forment une horde. Ce tuple contient les contextes potentiels h∀ω ∈ C, Cat(Pasω)i de f, autrement dit toutes les combinaisons d’entit´es dont la description correspond aux propri´et´es test´ees dans les assertions asω.

Pour simplifier la notation, nous notons dans la suite Cat(Pfa) `a la place de Cat(Pfa) ∩ A, et de la mˆeme fa¸con Cat(Pfm) `a la place de Cat(Pfm) ∩ M.

Le tuple hCat(Pfa), Cat(Pfm), h∀ω ∈ C, Cat(Pasω)ii permet de regrouper a priori les entit´es dont la Pdescription est valide pour le filtre. Les entit´es pouvant ˆetre ´ecart´ees des tests sont celles qui ne poss`edent pas les propri´et´es Pfa, Pfm ou Pasω, respectivement pour les agents, messages ou entit´es du contexte.

Dans l’exemple de la cit´e digitale, pour le filtre fgroupe, les entit´es concern´ees par le filtre sont :

ha ∈ Cat({dispo, lieu}), m ∈ cat({lieu}), hC ∈ P(Ω)ii

Nous illustrons ces ensembles d’entit´es grˆace `a la figure 4.4. L’objectif est de trouver les agents appartenant `a E(fa) qui re¸coivent effectivement les messages E(fm) grˆace au filtre fgroupe. Deux ensembles d’entit´es sont repr´esent´es : les agents A et les messages M. Les agents sont soit des agents utilisateur, qui poss`edent les propri´et´es lieu et dispo, soit des agents organisation, qui ne poss`edent aucune de ces deux propri´et´es. Certains messages poss`edent la propri´et´e lieu. Les autres entit´es ne sont pas repr´esent´ees car le filtre fgroupe ne contient pas de conditions sur le contexte.

extension M

A

messages m tels que lieu(m)6= null

fgroupe(a, m, C) =h[dispo(a) = true] ∧ [lieu(a) =?x], [lieu(m) =?x], ∅, “groupe”, 0, “a1”i utilisateurs organisations fa fm Pfm Pfa E(fa) Cat(Pfm) Cat(Pfa) E(fm) cat´egorie Pdescription d’une assertion

Figure 4.4 – Entit´es li´ees au filtre fgroupe

cherche directement les agents appartenant `a E(fa) et les messages appartenant `a E(fm), il est n´ecessaire de parcourir les ensembles A et M. Or, `a chacune des assertions fa et fm correspond une Pdescription, respectivement Pfa et Pfm. Les ensembles d’entit´es Cat(Pfa) et Cat(Pfm) permettent de regrouper les agents et messages poss´edant les propri´et´es test´ees dans le filtre. Les agents n’appartenant pas `a Cat(Pfa) ne peuvent pas recevoir de message via ce filtre, et les messages n’appartenant pas `a Cat(Pfm) ne peuvent pas ˆetre transmis par ce filtre. Dans le filtre fgroupe, Cat(Pfa) contient les agents utilisateur, et Cat(Pfm) contient les messages poss´edant la propri´et´e lieu.

De cette fa¸con, les cat´egories d’entit´es peuvent ˆetre classifi´ees a priori, grˆace `a la syntaxe du filtre. Au moment de la transmission des messages, au lieu de rechercher les r´ecepteurs E(fa) dans A, nous pouvons restreindre cette recherche `a Cat(Pfa), et de la mˆeme fa¸con pour la recherche des messages fm. Les algorithmes utilisant les cat´egories pour classifier les entit´es sont d´etaill´es dans la section 4.4.

Les op´erations sur les Pdescriptions sont les op´erations ensemblistes. Nous ´etudions l’impact de ces op´erations sur les cat´egories des Pdescriptions.

La cat´egorie r´esultant de l’union des propri´et´es de deux Pdescriptions P1 et P2 est ω ∈ Cat(P1∪ P2) ⇔ Pω ⊃ (P1∪ P2). Une entit´e appartient `a la cat´egorie de l’union si elle poss`ede au moins les deux ensembles de propri´et´es d’origine.

Par d´efinition, la Pdescription d’une entit´e contient toutes les propri´et´es de cette entit´e. La cat´egorie de l’union de deux Pdescriptions dont l’intersection est vide ne contient donc aucune des entit´es des ensembles initiaux.

4.3. Regrouper et caract´eriser les descriptions des entit´es {id, nom, age, dispo, lieu}, et la cat´egorie des agents organisation {id, nom, type}.

L’union des Pdescriptions P∪agents des agents utilisateur et organisation est donc : P∪agents= {id, nom, dispo, age, sexe, lieu} ∪ {id, nom, type} ⇔

P∪agents= {id, nom, dispo, type, age, sexe, lieu}

La cat´egorie de P∪agentsne contient paradoxalement aucun agent. Si l’op´eration d’union est utile pour obtenir l’ensemble des propri´et´es utilis´ees dans le syst`eme par certaines classes d’entit´es, elle ne permet pas de regrouper les entit´es.

La cat´egorie r´esultant de l’intersection des propri´et´es de deux Pdescriptions P1 et P2 est ω ∈ Cat(P1∩ P2) ⇔ Pω ⊃ (P1 ∩ P2). Une entit´e appartient `a la cat´egorie de l’intersection si elle poss`ede au moins l’intersection des deux ensembles de propri´et´es d’origine. La cat´egorie de l’intersection de deux Pdescriptions contient donc les entit´es des deux ensembles de d´epart, ainsi que toute autre entit´e r´epondant `a cette nouvelle Pdescription.

Dans l’exemple, l’intersection P∩agents des deux Pdescriptions pr´ec´edentes est P∩agents= {id, nom, dispo, age, sexe, lieu} ∩ {id, nom, type} ⇔

P∩agents= {id, nom}

La cat´egorie de P∩agentscontient cette fois tous les agents. L’intersection donne donc l’ensemble des propri´et´es grˆaces auxquelles il est possible de contacter `a la fois les agents utilisateur et les agents organisation.