Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.
This page is available in English.

Conventions

Classes

Toutes les classes de la plate-forme sont définies dans l'espace de nom (namespace) cogitant, il est donc nécessaire de les préfixer pour les utiliser (exemple: cogitant::Graph) ou d'utiliser la directive :

using namespace cogitant;

Les classes permettant la communication client serveur sont dans l'espace de nom cogitantcs et les classes permettant l'affichage graphique sont dans l'espace de nom cogitantdisplay.

Les classes sont nommées comme en Java, c'est à dire qu'elles commencent par une majuscule et la première lettre de chaque "sous-mot" du nom de la classe est en majuscule. Il n'y a évidemment pas de caractères accentués, et le caractère "_" n'est utilisé que pour séparer le nom de la classe de sa méthode d'implémentation. Ainsi, la classe des objets étiquetés dans un graphe est nommée cogitant::LabeledGraphObject (et non Labeled_Graph_Object), alors que l'implantation au plus simple de la classe cogitant::Set (qui est abstraite) est nommée cogitant::Set_Simple.

Méthodes

Les méthodes sont aussi nommées comme en Java, c'est à dire qu'elles commencent par une minuscule et la première lettre de chaque "sous-mot" du nom de la méthode est en majuscule. Par exemple, la méthode de la classe cogitant::Environment permettant de créer un nouveau graphe est nommée cogitant::Environment::newGraph().

Fichiers

Les fichiers headers sont stockés dans le répertoire cogitant d'un répertoire présent dans les chemins de recherche (/usr/local/include par défaut sous Unix). De cette façon, pour inclure un fichier de la plate-forme, il est nécessaire d'utiliser la directive include de la façon suivante (par exemple) :

#include "cogitant/graph.h"

Les fichiers headers correspondant aux classes orientées recherche d'information sont dans le sous répertoire ir (exemple : #include "cogitant/ir/thesaurus.h"), ceux des classes client-serveur sont dans le sous-répertoire cs, et ceux des classes d'affichage dans le sous répertoire display. Enfin un fichier entête particulier "cogitant/cogitant.h" regroupe la plupart des fichiers de la bibliothèque et peut être utilisé seul dans la plupart des cas.

Divers

La plupart des accesseurs aux membres des différentes classes existent en deux versions de même nom. Une version retourne une référence sur un objet pouvant être modifié, alors qu'une seconde version retourne une référence sur un objet constant, cette deuxième variante étant la seule à pouvoir être appelée sur une instance constante (méthode déclarée const). Par exemple la classe cogitant::Rule possède deux méthodes cogitant::Rule::hypothesis() qui retournent le graphe conceptuel hypothèse de la règle. Une de ces deux méthodes est const et retourne un pointeur sur un graphe constant (ne pouvant être modifié), alors que l'autre retourne un pointeur sur un graphe pouvant être modifié. Évidemment seule la première peut être appelée sur une règle ne pouvant être modifiée (ceci est vérifié au moment de la compilation).

Un certain nombre de classes contiennent des ensembles d'objets (un cogitant::Support contient un ensemble de cogitant::ConceptType, un cogitant::Graph contient un ensemble de cogitant::GraphObject, ...). Dans ces cas, la classe conteneur est munie de plusieurs méthodes permettant d'accéder aux éléments contenus, chacun de ces éléments étant repéré par un identificateur unique (de type cogitant::iSet). Un premier couple de méthodes permet d'accéder aux ensembles (par exemple cogitant::Support::conceptTypes() ou cogitant::Graph::nodes()) alors qu'un second couple de méthodes de même nom permet d'accéder directement à un élément de l'ensemble par son identificateur (par exemple cogitant::Support::conceptTypes(cogitant::iSet) ou cogitant::Graph::nodes(cogitant::iSet)).