Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cogitant::OpeRuleApply Class Reference

Application d'une règle sur un graphe. More...

#include "cogitant/operule.h"

Inheritance diagram for cogitant::OpeRuleApply:
cogitant::Operation cogitant::OperationBase cogitant::ObservableObject cogitant::CogitantObject

Public Member Functions

Error check ()
 Vérification des paramètres. More...
 
void run ()
 Lancement de l'opération. More...
 
Constructeurs - destructeur.
 OpeRuleApply (Environment *env)
 Constructeur. More...
 
 ~OpeRuleApply ()
 Destructeur. More...
 
Entrée des paramètres.
void setParamGraph (Graph *g)
 Graphe sur lequel la règle doit être appliquée. More...
 
void setParamRule (Rule const *r)
 Règle à appliquer. More...
 
void setParamProjection (Projection const *p)
 Projection définissant l'application de la règle. More...
 
void setParamModifyConceptTypes (bool modify)
 Est-ce que l'application d'une règle est susceptible de changer les étiquettes des sommets du graphe sur lequel a été projeté un sommet de la règle qui est un point d'attache. More...
 
bool modifyConceptTypes () const
 Lecture de la configuration sur la modification des types des sommets concepts du graphe. More...
 
void setParamResultAddedNodes (GraphSubset *addednodes)
 Récupération des identificateurs des GraphObject ajoutés suite à l'application de la règle. More...
 
void setParamOpeDisjointSum (OpeDisjointSum *opedisjointsum)
 Opération de somme de deux graphes. More...
 
Accès aux résultats.
GraphgetResult () const
 
- Public Member Functions inherited from cogitant::Operation
Environmentenvironment () const
 Environnement. More...
 
void setEnvironment (Environment *env)
 Modification de l'environnement sur lequel est défini l'opération. More...
 
 Operation (Environment *env)
 Constructeur. More...
 
 Operation (Operation const &o)
 Constructeur par recopie. More...
 
 ~Operation ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::OperationBase
void stop ()
 Stopper l'opération dès que possible. More...
 
bool isStopped () const
 Est-ce que l'opération a été stoppée. More...
 
 OperationBase ()
 Constructeur. More...
 
 OperationBase (OperationBase const &o)
 Constructeur par recopie. More...
 
 ~OperationBase ()
 Destructeur. More...
 
- Public Member Functions inherited from cogitant::ObservableObject
 ObservableObject ()
 Constructeur. More...
 
 ObservableObject (ObservableObject const &o)
 Constructeur par recopie. More...
 
 ~ObservableObject ()
 Destructeur. More...
 
ObserverSet const & observers () const
 Accès à l'ensemble des observateurs. More...
 
bool hasObservers () const
 Existence d'observateurs. More...
 
bool hasObservers (ObserverMessage::Type mt) const
 Existence d'observateurs qui écoutent le type de message passé. More...
 
void attachObserver (Observer *obs)
 Ajoute un nouvel observateur à l'objet. More...
 
void detachObserver (Observer *obs)
 Supprime le lien entre l'observateur et l'objet. More...
 
void notifyObservers (ObserverMessage const *msg)
 Envoie le message de modification à tous les observateurs. More...
 
- Public Member Functions inherited from cogitant::CogitantObject
 CogitantObject ()
 Constructeur. More...
 
 CogitantObject (CogitantObject const &o)
 Constructeur par recopie. More...
 
virtual ~CogitantObject ()
 Destructeur. More...
 
PropertySetproperties ()
 Accès à l'ensemble des propriétés. More...
 
virtual std::string toString () const
 Transformation en chaîne de caractères. More...
 
std::string className () const
 Nom de la classe. More...
 
PropertySet const * properties () const
 Accès en lecture seule à l'ensemble des propriétés. More...
 
bool hasProperties () const
 Existence de propriétés. More...
 
CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 

Protected Member Functions

void modifyConceptRun (iSet chypo, iSet cconc)
 Modifie (si nécessaire) l'étiquette du sommet du graphe concerné par le point d'attache passé. More...
 
- Protected Member Functions inherited from cogitant::Operation
void setProgress (unsigned int current, unsigned int max)
 Progression actuelle de l'opération. More...
 
- Protected Member Functions inherited from cogitant::ObservableObject
virtual ObserverSetallocObservers () const
 Fonction créant l'instance d'une sous classe de ObserverSet pour la représentation de l'ensemble des observateurs de l'objet. More...
 
ObserverSetobservers ()
 Accès à l'ensemble des observateurs. More...
 
- Protected Member Functions inherited from cogitant::CogitantObject
virtual PropertySetallocProperties () const
 Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More...
 

Protected Attributes

Graphio_g
 Le graphe.
 
Rule const * i_r
 La règle.
 
Projection const * i_p
 La projection.
 
GraphSubseto_addednodes
 Les sommets ajoutés par l'application de la règle.
 
OpeDisjointSumi_opedisjointsum
 L'opération de somme disjointe utilisée.
 
bool i_modifyconcepts
 Utilisation du type des sommets concepts et des marqueurs individuels des points d'attache pour modifier l'étiquette du sommet du graphe sur lequel la règle s'applique.
 
- Protected Attributes inherited from cogitant::OperationBase
bool m_stop
 Arrêt de l'exécution de l'opération demandé. More...
 

Additional Inherited Members

- Public Types inherited from cogitant::OperationBase
typedef unsigned int Error
 Résultat de la vérification des arguments d'une opération. More...
 
- Static Public Attributes inherited from cogitant::Operation
static const Error PROJBACKTRACKCHOICE_EMPTYLIST
 Impossible d'enlever un élément à une liste vide. More...
 
static const Error OBJECTTYPE
 Un (identifiant d') objet parmi les paramètres n'est pas du bon type. More...
 
static const Error WRONGEDGES
 Un graphe parmi les paramètres de l'opération possède des arêtes pendantes. More...
 
- Static Public Attributes inherited from cogitant::OperationBase
static const Error CHECKOK
 Pas d'erreur. More...
 
static const Error ARGUMENTS
 Certains paramètres de l'opération n'ont pas été fixés. More...
 
static const Error UNUSED
 Symbole d'erreur inutilisé. More...
 

Detailed Description

Application d'une règle sur un graphe.

Par l'exécution de cette opération, le graphe io_g est modifié suite à l'application de la règle i_r selon la projection i_p (de l'hypothèse de i_r dans i_g).
L'application d'une règle correspondant à la somme disjointe de la conclusion de la règle et du graphe, il est nécessaire de passer comme paramètre à l'opération un pointeur sur une OpeDisjointSum (i_opedisjointsum) pour effectuer cette opération.
Habituellement, il n'est pas nécessaire d'utiliser directement les méthodes de cette opération, et il est plus simple d'utiliser la méthode Environment::ruleApply().

Constructor & Destructor Documentation

◆ OpeRuleApply()

cogitant::OpeRuleApply::OpeRuleApply ( Environment env)

Constructeur.

◆ ~OpeRuleApply()

cogitant::OpeRuleApply::~OpeRuleApply ( )

Destructeur.

Member Function Documentation

◆ check()

Error cogitant::OpeRuleApply::check ( )
virtual

Vérification des paramètres.

Retourne Operation::CHECKOK si l'opération peut être exécutée (méthode run()) ou un code d'erreur dans le cas contraire.

Implements cogitant::OperationBase.

◆ modifyConceptRun()

void cogitant::OpeRuleApply::modifyConceptRun ( iSet  chypo,
iSet  cconc 
)
protected

Modifie (si nécessaire) l'étiquette du sommet du graphe concerné par le point d'attache passé.

Dans le cas d'un point d'attache tel que le type du sommet dans la conclusion n'est pas le même que le type du sommet de l'hypothèse, l'application de la règle peut modifier le sommet du graphe sur lequel le sommet de l'hypothèse a été projeté. Les types du sommet de la conclusion doivent être rajoutés. Cette méthode se charge de ce traitement en utilise la projection (application de la règle), le graphe et la règle concernés par l'opération. Même chose dans le cas d'un marqueur individuel présent dans la conclusion et sommet générique dans le sommet du graphe.

Parameters
chypoidentifiant du point d'attache dans l'hypothèse de la règle
cconcidentifiant du point d'attache dans la conclusion.

◆ modifyConceptTypes()

bool cogitant::OpeRuleApply::modifyConceptTypes ( ) const
inline

Lecture de la configuration sur la modification des types des sommets concepts du graphe.

◆ run()

void cogitant::OpeRuleApply::run ( )
virtual

Lancement de l'opération.

Cette méthode ne retourne rien mais le résultat de l'opération peut être récupéré avec les méthodes getResultxxx() (différentes selon les sous classes de Operation).

Implements cogitant::OperationBase.

◆ setParamGraph()

void cogitant::OpeRuleApply::setParamGraph ( Graph g)
inline

Graphe sur lequel la règle doit être appliquée.

◆ setParamModifyConceptTypes()

void cogitant::OpeRuleApply::setParamModifyConceptTypes ( bool  modify)
inline

Est-ce que l'application d'une règle est susceptible de changer les étiquettes des sommets du graphe sur lequel a été projeté un sommet de la règle qui est un point d'attache.

Dans le cas ou le type de concept d'un sommet point d'attache est différent dans l'hypothèse et dans la conclusion de la règle, l'application de la règle va ajouter au type du sommet du graphe qui est l'image par la projection de ce sommet de l'hypothèse le type du sommet de la conclusion (créant donc ainsi un type conjonctif, éventuellement). Même chose dans le cas d'un marqueur individuel présent dans la conclusion de la règle, sur un point d'attache qui se projette sur un sommet concept générique. L'appel à cette méthode permet de choisir ce comportement (true comportement par défaut) ou empêche la modification des sommets.

Parameters
modifyModification éventuelle de l'étiquette des sommets du graphe images des sommets de l'hypothèse de la règle qui sont points d'attache.

◆ setParamOpeDisjointSum()

void cogitant::OpeRuleApply::setParamOpeDisjointSum ( OpeDisjointSum opedisjointsum)
inline

Opération de somme de deux graphes.

Cette opération est utilisée pour rajouter au graphe la conclusion de la règle.

◆ setParamProjection()

void cogitant::OpeRuleApply::setParamProjection ( Projection const *  p)
inline

Projection définissant l'application de la règle.

Parameters
pune projection de l'hypothèse de la règle sur le graphe. p doit effectivement être une telle projection sous peine d'obtenir un comportement incorrect. Aucune vérification n'est faite, il a appartient donc à l'utilisateur de s'assurer que la projection passée est une projection de l'hypothèse de la règle sur le graphe.

◆ setParamResultAddedNodes()

void cogitant::OpeRuleApply::setParamResultAddedNodes ( GraphSubset addednodes)
inline

Récupération des identificateurs des GraphObject ajoutés suite à l'application de la règle.

Parameters
addednodesSi cette méthode est appelée avec une valeur non NULLe, le GraphSubset sera complété par l'appel à run() : il contiendra en plus les sommets rajoutés par l'application de la règle (Si ce GraphSubset n'était pas vide, les sommets qui le composaient sont conservés dans le GraphSubset).

◆ setParamRule()

void cogitant::OpeRuleApply::setParamRule ( Rule const *  r)
inline

Règle à appliquer.