Ce package contient les interfaces qui définissent les opérations de manipulation de la facette Fonctionnality des agents.
Les fonctionnalités d'un agent sont exprimées par un ensemble de noms de compétence (skill en anglais). A tout moment, l'agent peut déclarer qu'il dispose d'une nouvelle compétence.
Il peut également à tout moment indiquer qu'il en perd une.
Cette facette est "exposée", cela signifie que la consultation de cette facette est possible pour n'importe quel agent du space.
Pour cela, tout agent peut obtenir le descripteur en lecture ({@link Ubiquity.agent.fonctionnality.RFonctionnality}) des fonctionnalités d'un autre agent via la
méthode {@link Ubiquity.agent.identity.RIdentity#getFonctionnality()}.
Par contre, les opérations en écriture ne sont possibles que pour l'agent qui porte cette facette (ou le code ayant enregistré cet agent sur le spot local).
En effet, le descripteur en écriture ({@link Ubiquity.agent.fonctionnality.WFonctionnality}) ne peut s'obtenir que sur l'handle de l'agent via la méthode {@link Ubiquity.agent.AHandle#myFonctionnality()}.
NB : seul l'agent lui même, et le code ayant procédé à son enregistrement, possèdent une référence sur cet handle.
Pour un composant agent conçu en héritant de la classe {@link Ubiquity.util.component.BaseAgentComponent}, ce descripteur en écriture est aussi disponible sous l'attribut this.fonctionnality.