5.4. Nommage des C-types

Par défaut, le système de types définit des C-types dits simples tels que les entiers, les réels, les booléens ou les chaînes de caractères. De plus, il permet à l'utilisateur de faire référence à une Structure AROM afin de désigner le C-type représentant cette Structure dans le système de types. D'autre part, l'utilisateur peut créer des nouveaux C-types construits, tels que des listes ou des ensembles, en spécifiant un nom référençant ce nouveau C-type. Chaque C-type est donc nommé et il est référencé auprès du système de types. En effet, le système de types permet d'obtenir tout C-type d'après son nom.

Pour les C-types simples, aucun problème ne se pose puisqu'ils sont définis par des singletons. Les noms des instances de ces C-type sont: integer, float, boolean ou string.

Par contre, les C-types construits admettent une multitude, voire une infinité, d'instances (ListCT de string, ListCT de integer[10..30], ...). Par défaut aucun C-type construit n'est défini, leur création se fait via le système de types, auquel on spécifie le nom du C-type. Ainsi, une fois un C-type créé, il est toujours possible d'y accéder via le système de types, à partir de son nom. Dans cette configuration, on voit qu'il est tout à fait possible de créer plusieurs instances de C-types, égaux dans leur définition mais ayant un nom différent. Aucune détection n'est faite dans ce sens par le système de types. Néanmoins, la méthode d'égalité vérifiera si les définitions des C-types sont égaux sans considérer le nom.

Il existe une autre règle de nommage-création. En effet, les C-types peuvent avoir n'importe quel nom à partir du moment où il est conforme aux règles de nommage d'AROM. Mais si celui-ci est composé de list-of ou set-of plus un nom d'un autre C-type, si le système de type n'a pas déjà référencé ce C-type, il le créera. Ainsi, si on demande au système de type le C-type list-of integer et que celui-ci n'est pas référencé, un CType ListCT basé sur le δ-type issu de integer est créé et référencé.

Lors de la création d'un C-type à partir d'une structure AROM, c'est le fully qualified name de cette structure qui sera utilisé pour référencer le C-type. En effet, le système de types étant le même pour toutes les bases AROM, l'utilisation du nom simple pourrait provoquer une situation de conflit si deux structures AROM appartenant à des bases différentes avaient le même nom. De la même façon que précédement, si l'on souhaite obtenir un C-type multivalué basé sur un Structure C-type, il faut utiliser le fully qualified name après l'identifiant list-of ou set-of .

Afin de simplifier l'accès aux C-type, il est possible d'y accéder non pas depuis le module de types mais depuis une base de connaissances. Ainsi, les noms simples des Structures AROM peuvent être utilisés soit pour accéder aux structures C-types soit pour accéder aux C-types multivalués basés sur les structres C-types.

Enfin, cette simplification du nom utilisé peut également être utilisé au niveau du fichier txta ou dans une interface utilisateur. Pour un C-type donné, il est possible de connaître, en plus de son nom unique, son nom usuel. Celui-ci est accessible depuis le système de types.