Guide Utilisateur AROM v2.0 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Chapitre 2. Représenter des connaissances avec AROM | Avance rapide | Suivant |
En AROM, les associations jouent un rôle aussi important dans la représentation de connaissances que les classes. Elles sont semblables aux associations du modèle d'UML : une association représente un ensemble de liens similaires entre n (n >= 2) classes, distinctes ou non. Un lien est un n-uplet d'objets appartenant aux extensions (ensembles d'instances) des classes reliées par l'association. Une association définit ainsi un sous-ensemble du produit cartésien des classes qu'elle relie. En AROM, chaque association possède un nom.
Une association est décrite par ses rôles et ses variables. Un rôle r d'une association correspond à une connexion entre l'association et une des classes connectées, appelée classe correspondante du rôle et notée C(r). Chaque association n-aire possède donc n rôles et la valeur de chaque rôle ri (1<= i<= n) est une instance de la classe correspondante C(ri). Chaque rôle possède un nom et une multiplicité. La multiplicité d'un rôle r a le même sens qu'en UML. Il s'agit d'un intervalle d'entiers tel que, si l'on fixe la valeur des n-1 rôles différents de r, le nombre d'instances de C(r) pouvant apparaître dans le rôle r doit appartenir à cet intervalle. La multiplicité est décrite par la facette multiplicity: pour laquelle est donnée la valeur minimum (min:) et la valeur maximum (max:). Pour cette dernière, on utilise, comme en UML, le symbole * pour dénoter une valeur infinie. Outre la facette multiplicity:, la facette documentation: permet d'associer une documentation à un rôle.
Une variable d'association représente une propriété associée à un lien. D'un point de vue mathématique, une variable v d'une association dont les rôles sont r1,r2,...,rn, est définie comme une fonction :
où T est un type d'AROM et oi un objet de la classe C(ri). Les variables d'association disposent des mêmes facettes que les variables de classe.
Un tuple d'une association n-aire possédant m variables vi (1<= i <= m) est le (n+m)-uplet formé des n objets du lien et des valeurs des m variables de l'association :
Une association étant un ensemble de liens, deux tuples ne peuvent pas contenir le même lien.
Les associations sont organisées en hiérarchies grâce à une relation de spécialisation. La spécialisation d'associations, comme celles des classes, est simple en AROM. Elle permet de greffer sur une hiérarchie d'associations un héritage de rôles, de variables et de facettes. Une association A2 spécialise une association A1 par au moins une des opérations suivantes :
Spécialisation de la classe correspondante d'un rôle de A1 ;
Modification ou ajout d'une facette à une variable ou à un rôle de A1;
Ajout d'une variable à A1.
La spécialisation d'association correspond à l'inclusion ensembliste des liens. Autrement dit, les liens d'une association appartiennent à l'ensemble des liens de sa super-association, si elle existe. En conséquence, la spécialisation d'association par ajout de rôle n'est pas autorisée en AROM : elle reviendrait à considérer l'inclusion de n+1-uplets dans un ensemble de n-uplets. L'arité d'une association est donc préservée dans toute sa hiérarchie.